我知道:
但令我困惑的是:
任何人都可以帮我解决这个问题?
我想找到Lethal Dose(LD50),其置信区间为R.其他软件系列Minitab,SPSS,SAS提供了三种不同版本的置信区间.我在任何包中找不到这样的间隔R(我也使用findFn了sos包中的函数).如果有人指导如何找到这样的间隔,我将非常感激.我基于Delta方法编写了一种类型的间隔(不确定它是否正确)但是想要使用R包中的任何已建立的函数.谢谢
MWE
dose <- c(10.2, 7.7, 5.1, 3.8, 2.6, 0)
total <- c(50, 49, 46, 48, 50, 49)
affected <- c(44, 42, 24, 16, 6, 0)
finney71 <- data.frame(dose, total, affected)
fm1 <- glm(cbind(affected, total-affected) ~ log(dose),
family=binomial(link = logit), data=finney71[finney71$dose != 0, ])
summary(fm1)$coef
Estimate Std. Error z value Pr(>|z|)
(Intercept) -4.886912 0.6429272 -7.601035 2.937717e-14
log(dose) 3.103545 0.3877178 8.004650 1.198070e-15
library(MASS)
xp <- dose.p(fm1, p=c(0.50, 0.90, …Run Code Online (Sandbox Code Playgroud) 我正在使用Vowpal Wabbit对多类图像进行分类.我的数据集类似于http://www.cs.toronto.edu/~kriz/cifar.html,包含3000个训练样本和500个测试样本.这些功能是32*32图像的RGB值.我使用Vowpal Wabbit Logistic损失函数来训练模型100次迭代.在训练过程中,平均损失低于0.02(我认为这个数字非常好吗?).然后我用输出模型预测训练集的标签,并预测预测非常糟糕.几乎所有人都属于第六类.我真的不知道发生了什么,因为在我看来,在训练过程中预测大多是正确的,但是在我用模型预测之后他们突然变成全部6.
这是一个功能示例.
1 | 211 174 171 165 161 161 162 163 163 163 163 163 163 163 163 163 162 161 162 163 163 163 163 164 165 167 168 167 168 163 160 187 153 102 96 90 89 90 91 92 92 92 92 92 92 92 92 92 92 92 91 90 90 90 90 91 92 94 95 96 99 97 98 127 111 71 71 64 66 68 69 …
image classification machine-learning vowpalwabbit logistic-regression
有没有办法让一个实例LogisticRegression()自动规范化为拟合/训练提供的数据z-scores来构建模型?LinearRegression()有一个normalize=True参数,但也许这没有意义LogisticRegression()?
如果是这样,我是否必须手动标准化未标记的输入向量(即重新计算每列的平均值,标准偏差)predict_proba()?如果模型已经执行了可能代价高昂的计算,那将是奇怪的.
谢谢
我是JAGS的新手,我正在尝试进行简单的逻辑回归.我的数据文件非常简单:响应是二进制的,我使用的一个预测器有三个级别.像这样:
col1: 1 2 2 2 1 1 1 2 1 2 ...
col2: HLL, HLL, LHL, LLL, LHL, HLL ...
Run Code Online (Sandbox Code Playgroud)
等级col2是HLL, LHL, LLL.我虚拟编码并创建了一个如下所示的数据框:
(intercept) HLL LHL LLL
1 1 0 0 1
2 1 0 0 1
4 1 0 0 1
5 1 0 1 0
6 1 0 1 0
7 1 0 0 1
Run Code Online (Sandbox Code Playgroud)
myList然后,我的数据文件()如下所示:
List of 5
$ y : num [1:107881] 2 2 2 2 2 2 …Run Code Online (Sandbox Code Playgroud) 我正在绘制逻辑回归的结果,但是我得到的直线不是预期的S曲线:
这是我正在使用的代码:
我从原始x轴创建了一系列数据,将其转换为数据框,然后进行了预测并绘制了线条。
model = glm(SHOT_RESULT~SHOT_DISTANCE,family='binomial',data = df_2shot)
summary(model)
#Eqn : P(SHOT_RESULT = True) = 1 / (1 + e^-(0.306 - 0.0586(SHOT_DISTANCE)))
r = range(df_2shot$SHOT_DISTANCE) # draws a curve based on prediction
x_range = seq(r[1],r[2],1)
x_range = as.integer(x_range)
y = predict(model,data.frame(SHOT_DISTANCE = x_range),type="response")
plot(df_2shot$SHOT_DISTANCE, df_2shot$SHOT_RESULT, pch = 16,
xlab = "SHOT DISTANCE", ylab = "SHOT RESULT")
lines(x_range,y)
Run Code Online (Sandbox Code Playgroud)
旁注:我正在关注本教程:http : //www.theanalysisfactor.com/r-glm-plotting/
任何见解将不胜感激!谢谢!:)
我试图在sklearn版本0.18.1中使用TimeSeriesSplit交叉验证策略和LogisticRegression估算器.我得到一个错误说明:
cross_val_predict仅适用于分区
以下代码段显示了如何重现:
from sklearn import linear_model, neighbors
from sklearn.model_selection import train_test_split, cross_val_predict, TimeSeriesSplit, KFold, cross_val_score
import pandas as pd
import numpy as np
from datetime import date, datetime
df = pd.DataFrame(data=np.random.randint(0,10,(100,5)), index=pd.date_range(start=date.today(), periods=100), columns='x1 x2 x3 x4 y'.split())
X, y = df['x1 x2 x3 x4'.split()], df['y']
score = cross_val_score(linear_model.LogisticRegression(fit_intercept=True), X, y, cv=TimeSeriesSplit(n_splits=2))
y_hat = cross_val_predict(linear_model.LogisticRegression(fit_intercept=True), X, y, cv=TimeSeriesSplit(n_splits=2), method='predict_proba')
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我想绘制相同数据的线性模型(LM)和非线性(GLM)模型.
LM和GLM之间的范围应在16%-84%之间,引用:第3.5节
我已经包含了更完整的代码块,因为我不确定在哪一点上我应该尝试削减线性模型.或者我搞砸了 - 我想用线性模型.
我的目标(摘自以前的引文链接).
这是我的数据:
mydata3 <- structure(list(
dose = c(0, 0, 0, 3, 3, 3, 7.5, 7.5, 7.5, 10, 10, 10, 25, 25, 25, 50, 50, 50),
total = c(25L, 25L, 25L, 25L, 25L, 25L, 25L, 25L, 25L, 25L, 25L, 25L, 25L, 25L, 25L, 25L, 25L, 25L),
affected = c(1, 0, 1.2, 2.8, 4.8, 9, 2.8, 12.8, 8.6, 4.8, 4.4, 10.2, 6, 20, 14, 12.8, 23.4, 21.6),
probability = c(0.04, 0, 0.048, 0.112, …Run Code Online (Sandbox Code Playgroud) 我训练了Logistic模型,交叉验证并使用joblib模块将其保存到文件中.现在我想加载这个模型并用它预测新数据.这是正确的方法吗?特别是标准化.我也应该在我的新数据上使用scaler.fit()吗?在我接下来的教程中,scaler.fit仅用于训练集,所以我在这里有点迷失.
这是我的代码:
#Loading the saved model with joblib
model = joblib.load('model.pkl')
# New data to predict
pr = pd.read_csv('set_to_predict.csv')
pred_cols = list(pr.columns.values)[:-1]
# Standardize new data
scaler = StandardScaler()
X_pred = scaler.fit(pr[pred_cols]).transform(pr[pred_cols])
pred = pd.Series(model.predict(X_pred))
print pred
Run Code Online (Sandbox Code Playgroud) python machine-learning scikit-learn logistic-regression joblib
我正在研究机器学习算法的时间复杂度,但找不到用于预测新输入的Logistic回归的时间复杂度是多少。我已经读到,对于分类而言,O为(c * d),C为类数,d为维数。我知道,对于线性回归,搜索/预测时间复杂度为O(d)。您能否解释一下Logistic回归的搜索/预测时间复杂度是多少?先感谢您
其他机器学习问题的示例:https : //www.thekerneltrip.com/machine/learning/computational-complexity-learning-algorithms/
r ×4
python ×3
scikit-learn ×3
bayesian ×1
drc ×1
ggplot2 ×1
glm ×1
image ×1
jags ×1
joblib ×1
plot ×1
regression ×1
vowpalwabbit ×1