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 逻辑回归中的虚拟变量的主要内容,如果未能解决你的问题,请参考以下文章