Python中的加权逻辑回归

时间:2011-09-22 10:08:34

标签: python regression

我正在寻找Python中逻辑回归(非正则化)的良好实现。我正在寻找一个可以为每个向量获得权重的包。任何人都可以建议一个良好的实施/包? 谢谢!

5 个答案:

答案 0 :(得分:23)

我注意到这个问题现在已经很老了,但希望这可以帮助别人。使用sklearn,您可以使用SGDClassifier类创建逻辑回归模型,只需将“log”作为丢失传递:

sklearn.linear_model.SGDClassifier(loss='log', ...).

此类在fit()函数中实现加权样本:

classifier.fit(X, Y, sample_weight=weights)

其中weight是一个包含样本权重的数组,这些权重必须(显然)与X中数据点的数量相同。

有关完整文档,请参阅http://scikit-learn.org/dev/modules/generated/sklearn.linear_model.SGDClassifier.html

答案 1 :(得分:5)

“平衡”模式使用y的值自动调整与输入数据中的类频率成反比的权重,如n_samples /(n_classes * np.bincount(y))

from sklearn.linear_model import LogisticRegression

model = LogisticRegression(class_weight='balanced')

model = model.fit(X, y)

修改

可以在fit方法中添加样本权重。你只需要传递一个n_samples数组。查看文档 -

http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html#sklearn.linear_model.LogisticRegression.fit

希望这样做......

答案 2 :(得分:2)

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

statsmodels weighted regression

getting started w/ statsmodels

答案 3 :(得分:0)

答案 4 :(得分:-2)

你知道Numpy吗?如果不是,请查看Scipy和matplotlib。