问题标签 [logistic-regression]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1127 浏览

r - 在 R 中读取大数据和逻辑回归

情况:1GB CSV 文件,100000 行,4000 个自变量,1 个因变量。R 在 Windows Citrix 服务器上,具有 16GB 内存。

问题:我花了2个小时!去做:

glm 进程崩溃,程序没有响应,我必须在任务管理器中将其关闭。

0 投票
1 回答
4302 浏览

r - 从逻辑回归列表中提取系数的所有标准误差

我想从逻辑回归模型列表中提取标准误差。

这是逻辑回归函数,以这种方式设计,因此我可以一次运行多个分析:

我在数据框 ldata 中的变量子集上运行它:

我可以像这样提取系数:

但是我如何提取系数的标准误差?我似乎在 str(glmkort) 中找不到它?

这是我正在寻找标准错误的 AGE 的 str(glmkort):

这是我用于示例的数据。为了这个问题,我缩短了它:

0 投票
1 回答
2236 浏览

scikit-learn - sklearn LogisticRegression 不接受 csr_matrix

我是新手,我必须根据 De Pauw 和 Wagacha (1998) 方法(基本上是 char n-gram 上的 maxent)对词典中的单词进行分类。数据非常大(500 000 个条目和数百万个 n-gram)。所以我必须将样本加载为稀疏矩阵。但是我遇到了一个问题。

sklearn.linear_model.LogisticRegression().fit(X,y)说它不接受 scipy.sparse.csr.csr_matrix 训练向量。我收到了这个错误

对于以下脚本:

0 投票
3 回答
1093 浏览

r - Elegantly convert rate summary rows into long binary-response rows?

Background: I am running a little A/B test, with 2x2 factors (foreground's black and background's white, off-color vs normal color), and Analytics reports the number of hits for each of the 4 conditions and at what rate they 'converted' (a binary variable, which I define as spending at least 40 seconds on page). It's easy enough to do a little editing and get in a nice R dataframe:

Naturally, I'd like to look at a logistic regression on something like Rate ~ Black * White but R's glm wants a dataframe of 2046 rows each reporting a TRUE or FALSE conversion value & the values of Black and White. This... is a little more tricky. I googled around and checked SO but while I found some clunky code on how to convert a table of contingency counts to a dataframe, I didn't find anything about percentages/rates.

After a lot of trouble, I came up with a loop over the 4 conditions in which I repeat a dataframe rate * n times with the relevant condition values and the result True and then do the same thing but for (1 - rate) * n and the result False, and then stitch together all 8 dataframes into one giant dataframe:

The resulting dataframe ground looks right:

And likewise, the logistic regression spits out a sane-looking answer:

So my question is: is there any more elegant way of turning my Analytics's rate data into glm input than that awful loop?

0 投票
0 回答
1403 浏览

matlab - Matlab中的逻辑回归,对结果感到困惑

我正在 Matlab 中测试从音频文件创建的 2 个数据集的逻辑回归:

  • 第一个集合是通过 wavread 通过提取每个文件的向量来创建的:该集合是 834 x 48116 矩阵。每个转换示例都是 wav 频率的 48116 向量。

  • 第二组是通过提取元音的 3 个共振峰的频率创建的,其中每个共振峰(特征)都有其频率范围(例如,F1 范围是 500-1500Hz,F2 是 1500-2000Hz 等等)。每个训练示例都是 wav 共振峰的 3 向量。

我正在实现这样的算法:

成本函数和梯度:

其中 X 是数据集,y 是 8 个类的输出矩阵。

分类器:

其中 num_labels = 8,lambda(正则化)为 0.1

在第一组中,MaxIter = 50,我得到了 ~99.8% 的分类准确率。

使用第二组且 MaxIter=50,精度较差 - 62.589928

我曾考虑将 MaxIter 增加到更大的值以提高性能,但是,即使迭代次数非常多,结果也不会高于 66.546763。正则化值 (lambda) 的更改似乎不会以任何更好的方式影响结果。

可能是什么问题呢?我是机器学习的新手,我似乎无法理解究竟是什么导致了这种巨大的差异。对我来说明显突出的唯一原因是第一组的示例是非常长的向量,因此具有更多的特征,而第二组的示例由短的 3 向量表示。这些数据还不足以对第二组进行分类吗?如果是这样,可以做些什么来为第二组获得更好的分类结果?

0 投票
2 回答
57435 浏览

python - Scikit Learn:逻辑回归模型系数:澄清

我需要知道如何以我可以自己生成预测概率的方式返回逻辑回归系数。

我的代码如下所示:

我假设 lr.coeff_ 值将遵循典型的逻辑回归,因此我可以返回这样的预测概率:

但这不是适当的表述。有没有人有从 Scikit Learn LogisticRegression 生成预测概率的正确格式?谢谢!

0 投票
2 回答
39954 浏览

python - scikit-learn 中 LogisticRegression 上的 GridSearchCV

我正在尝试通过使用交叉验证的网格参数搜索来优化 scikit-learn 中的逻辑回归函数,但我似乎无法实现它。

它说逻辑回归没有实现 get_params() 但在文档上它说它确实。我该如何根据我的基本事实优化此功能?

0 投票
1 回答
1713 浏览

machine-learning - Weka 的 SimpleLogistic 函数是否使用正则化?

我想知道 Weka 的简单逻辑函数是否使用正则化。

我在文档中没有看到任何提及它,但我不确定。有人可以证实这一点吗?

*用于构建线性逻辑回归模型的分类器。以简单回归函数作为基学习器的 LogitBoost 用于拟合逻辑模型。要执行的最佳 LogitBoost 迭代次数是交叉验证的,这会导致自动属性选择。有关更多信息,请参阅:

Niels Landwehr、Mark Hall、Eibe Frank (2005)。逻辑模型树。Marc Sumner、Eibe Frank、Mark Hall:加速逻辑模型树归纳。在:第 9 届欧洲数据库中知识发现的原则和实践会议,675-683,2005。

选项

debug -- 如果设置为 true,分类器可能会向控制台输出附加信息。useCrossValidation -- 设置是否要交叉验证 LogitBoost 迭代的次数,或者应该使用训练集上的停止标准。如果未设置(并且没有给出固定的迭代次数),则使用 LogitBoost 迭代次数来最小化训练集上的错误(错误分类错误或概率上的错误取决于 errorOnProbabilities)。

errorOnProbabilities -- 在确定最佳 LogitBoost 迭代次数时,使用概率上的误差作为误差度量。如果设置,则选择最小化均方根误差的 LogitBoost 迭代次数(在训练集或交叉验证中,取决于 useCrossValidation)。weightTrimBeta -- 在 LogitBoost 中设置用于权重修剪的 beta 值。仅在下一次迭代中使用具有上一次迭代权重 (1 - beta)% 的实例。设置为 0 表示不进行权重修剪。默认值为 0。 numBoostingIterations -- 为 LogitBoost 设置固定的迭代次数。如果 >= 0,这将设置要执行的 LogitBoost 迭代次数。如果 < 0,则对数字进行交叉验证或使用训练集上的停止标准(取决于 useCrossValidation 的值)。

useAIC -- AIC 用于确定何时停止 LogitBoost 迭代(而不是交叉验证或训练错误)。

heuristicStop -- 如果 heuristicStop > 0,则启用在交叉验证 LogitBoost 迭代次数时贪婪停止的启发式。这意味着如果在最后一次 heuristicStop 迭代中没有达到新的错误最小值,则 LogitBoost 将停止。建议使用这种启发式方法,它提供了很大的加速,尤其是在小型数据集上。默认值为 50。

maxBoostingIterations -- 设置 LogitBoost 的最大迭代次数。默认值为 500,对于非常小/大的数据集,较低/较高的值可能更可取。*

0 投票
1 回答
18618 浏览

weka - 如何解释 Weka Logistic 回归输出?

请帮助解释 Weka 库中 weka.classifiers.functions.Logistic 产生的逻辑回归结果。

我使用来自 Weka 示例的数字数据:

要创建逻辑回归模型,我使用命令: java -cp $WEKA_INS/weka.jar weka.classifiers.functions.Logistic -t $WEKA_INS/data/weather.numeric.arff -T $WEKA_INS/data/weather.numeric.arff - d ./weather.numeric.model.arff

这里三个论点的意思是:

运行上述命令会产生以下输出:

问题:

1) 报告第一部分:

1.1)我是否正确理解“系数”实际上是在将它们加在一起以产生等于“是”的类属性“play”的值之前应用于每个属性的权重?

2) 报告第二部分:

2.1) “优势比”是什么意思?2.2)它们是否也都与等于“yes”的类属性“play”有关?2.3) 为什么“outlook=overcast”的值比“outlook=sunny”的值大很多?

3)

3.1) 混淆矩阵的含义是什么?

非常感谢你的帮助!

0 投票
1 回答
1961 浏览

r - 无法将学习模型应用于 R 中的测试数据

我正在使用Titanic来自 Kaggle 的数据集,并想学习一个简单的逻辑回归模型。

我在火车和测试数据中读取了, 和train$Survived都是train$Sex因子。test$Survivedtest$Sex

我想执行一个非常简单的逻辑回归,其中 Sex 是唯一的自变量。

对我来说似乎没问题:

问题是,我无法将此学习模型应用于测试数据。当我执行以下操作时:

我得到一个包含 891 个值的向量,它是训练集中训练示例的数量。

我似乎找不到任何有关如何正确执行此操作的信息。

任何帮助将不胜感激!