多项Logistic回归中的分类因变量

时间:2018-02-09 03:58:50

标签: python scikit-learn logistic-regression categorical-data

我在数据集上使用scikit-learn LogisticRegression,其中因变量是具有10个可能值(标记为1到10)的分类变量。我的统计知识是相当严谨的。

每个输出值的概率固有地受到它们必须求和到1的要求的约束,而我对数学的理解是需要有reference category(例如最可能的类别)并且相对于参考类别的概率表示其他9个结果中的每一个的概率,因此每个解释变量有效地存在9个系数(而不是10个)。

我不清楚这是由LogisticRegression.fit()方法自动完成的,如果是这样,它会假设第一个类别是引用(1)? 或者我是否需要以某种方式处理输入数据,因此只有9个类别? 或者我忽略了这一点,并在输出时使用10个系数?

1 个答案:

答案 0 :(得分:2)

scikit-learn的{​​{1}}实现会使用LogisticRegression方法自动处理幕后的所有内容。这是它是如此有用的模块的主要原因。它们的拟合/变换/预测API直观且易于使用,隐藏了用户的所有算法复杂性。

他们的实施是One-vs-Rest方案,其中对于每个类别,训练分类器以在该类别中识别具有一定置信水平的值。为了进行预测,比较分类器(在您的情况下为10个分类器)的各种置信度,并选择具有最高置信度的类。为了计算概率,这个置信度向量归一化为1,以解释预测中的任何潜在错误。

还有一个.fit()关键字参数,它使用交叉熵损失直接用一个分类器同时预测所有10个类的概率。这可能更类似于您已经阅读的实现,但multiclass实施的文档很少。