Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的加权logistic回归_Python_Regression - Fatal编程技术网

Python中的加权logistic回归

Python中的加权logistic回归,python,regression,Python,Regression,我正在寻找Python中逻辑回归(非正则化)的良好实现。我正在寻找一个包,也可以得到每个向量的权重。有人能提出一个好的实施/方案吗? 谢谢 你认识努比吗?如果没有,请看一下Scipy和matplotlib。看一看我注意到这个问题现在已经很老了,但希望这能帮助一些人。使用sklearn,您可以使用SGDClassizer类创建逻辑回归模型,只需输入“log”作为损失: sklearn.linear_model.SGDClassifier(loss='log', ...). 此类在fit()函数中

我正在寻找Python中逻辑回归(非正则化)的良好实现。我正在寻找一个包,也可以得到每个向量的权重。有人能提出一个好的实施/方案吗?
谢谢

你认识努比吗?如果没有,请看一下Scipy和matplotlib。

看一看

我注意到这个问题现在已经很老了,但希望这能帮助一些人。使用sklearn,您可以使用SGDClassizer类创建逻辑回归模型,只需输入“log”作为损失:

sklearn.linear_model.SGDClassifier(loss='log', ...).
此类在
fit()函数中实现加权样本:

classifier.fit(X, Y, sample_weight=weights)
其中,权重是包含样本权重的数组,样本权重的长度(显然)必须与X中的数据点数相同


有关完整文档,请参阅。

我认为您需要的是
statsmodels
。它非常支持GLM和其他线性方法。如果您来自R,您会发现语法非常熟悉


平衡模式使用y值自动调整权重,与输入数据中的类别频率成反比,作为n_样本/(n_类别*np.bincount(y))

编辑

可以在拟合方法中添加样本权重。您只需传递一个n_样本数组。查阅文件-


希望如此…

pssible在这篇文章中没有任何相关内容,我也尝试过使用scipy,但找不到任何权重的使用…scipy或Numpy dot有任何逻辑回归实现(或者我找不到任何…)。matplotlib主要用于图形、绘图等…谢谢!我看到了,但是它实现了L2正则化逻辑回归(而不是正则逻辑回归),而且它没有实现权重…
sklearn.linear\u模型。逻辑回归是一个类,他的
fit
方法让你定义了权重。@ohe如何?我找到了
fit
方法,但它只接受标签和特征的参数。“不是重量,”肯特蒙斯斯佩森说,“我的回答很老套!此时,
fit
方法采用了
class\u权重
参数。它现在位于th
\uuuu init\uuuu
中。这可能是你在看的东西。@ohe,这解释了很多。谢谢你4年后回来。我认为问题是关于训练的加权实例,而不仅仅是班级权重。至少,这是我一直在寻找的。由Olivier Grisel支持,这对多类问题使用了一对一,看起来它不支持
LogisticRegression
中的
multi\u class='multinomial'
选项,这是指类不平衡,但是如果我们想对每个样品使用单独的重量呢?好问题@mrglud!您可以通过提供权重的dict而不是“平衡”来指定权重。与{class_label:weight}形式的类关联的权重。如果没有给出,所有的类都应该有一个重量。我需要每个样本单独的重量,而不是每个类。我不认为这是现成的。您可能需要使用自己版本的成本函数和梯度下降更新来实现这一点。此statsmodels解决方案是否还会为每个因变量提供p值?
from sklearn.linear_model import LogisticRegression

model = LogisticRegression(class_weight='balanced')

model = model.fit(X, y)