Python中的加权逻辑回归

use*_*497 15 python regression

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

Wil*_*ing 23

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

sklearn.linear_model.SGDClassifier(loss='log', ...).
Run Code Online (Sandbox Code Playgroud)

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

classifier.fit(X, Y, sample_weight=weights)
Run Code Online (Sandbox Code Playgroud)

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

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

  • Olivier Grisel支持https://twitter.com/ogrisel/status/476367379413610497 (3认同)

Viv*_*gan 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)
Run Code Online (Sandbox Code Playgroud)

编辑

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

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

希望这样做......

  • 我需要为每个样本单独权重,而不是为每个类别单独权重。 (2认同)

小智 -5

你知道纳比吗?如果没有,请查看 Scipy 和 matplotlib。

  • Scipy 和 Numpy dot 都有任何逻辑回归实现(或者我找不到任何......)。matplotlib 主要用于图表、绘图等...... (3认同)