我正在寻找Python中逻辑回归(非正则化)的良好实现。我正在寻找一个可以为每个向量获得权重的包。任何人都可以建议一个良好的实施/包? 谢谢!
答案 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数组。查看文档 -
希望这样做......
答案 2 :(得分:2)
我认为你想要的是statsmodels
。它对GLM和其他线性方法有很大的支持。如果你来自R,你会发现语法非常熟悉。
答案 3 :(得分:0)
答案 4 :(得分:-2)