Python SKLearn 逻辑回归中的虚拟变量

Posted

技术标签:

【中文标题】Python SKLearn 逻辑回归中的虚拟变量【英文标题】:Dummy Variables in Python SKLearn Logistic Regression 【发布时间】:2014-02-20 09:43:19 【问题描述】:

我在 SKLearn 中使用逻辑回归将数据分类为 5 个类别之一。为了训练数据,我有一个观察矩阵Y 和一个特征矩阵X

有时我的矩阵Y 将没有类别 3 的说法。在这种情况下,当我调用 predict_proba(X) 方法时,我想要一个包含 5 个概率的列表,其中第三个条目为 0(因为没有第 3 类观察值)。相反,这个概率被简单地省略,并返回一个包含 4 个概率的列表。

如何更改逻辑回归对象以执行此操作?

【问题讨论】:

【参考方案1】:

LogisticRegression 不允许这样做,但它的近亲 SGDClassifier 允许:

logreg = SGDClassifier(loss="log")
logreg.partial_fit(X, y, classes=np.arange(5))

SGDClassifier 的不同之处在于它的训练算法和参数化。如果这不行,那么您将不得不推出自己的包装代码。

【讨论】:

【参考方案2】:

可以使用sklearn.preprocessing 模块找到多类标签。

参考: http://scikit-learn.org/stable/modules/preprocessing.html#label-binarization

【讨论】:

以上是关于Python SKLearn 逻辑回归中的虚拟变量的主要内容,如果未能解决你的问题,请参考以下文章

sklearn Python 和逻辑回归

Python sklearn 逻辑回归 K-hold 交叉验证:如何为 coef_ 创建一个框架

Python 中的逻辑回归和交叉验证(使用 sklearn)

处理多元线性回归Python中的分类和数值变量

使用 sklearn 在 python 中执行逻辑回归分析

在sklearn python中处理逻辑回归分类器中的极端不平衡多类