【问题标题】:Categorical dependent variable in Multinomial Logistic Regression多项 Logistic 回归中的分类因变量
【发布时间】:2018-07-19 19:02:16
【问题描述】:

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

每个输出值的概率本质上受到它们必须总和为1 的要求的限制,我对数学的理解是需要有一个reference category(例如最可能的类别)并且然后将其他 9 个结果中的每一个的概率表示为相对于参考类别的概率,因此每个解释变量实际上有 9 个系数(而不是 10 个)。

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

【问题讨论】:

  • 据我所知,您必须在使用LogisticRegression.fit() 之前创建虚拟变量,否则fit 函数会将分类变量视为连续变量。
  • 我认为虚拟变量用于独立(解释)变量,而不是因变量。
  • 抱歉,我看错了你的问题。

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


【解决方案1】:

LogisticRegressionscikit-learn 实现通过其 .fit() 方法自动处理所有幕后工作。这就是它如此有用的模块的主要原因。它们的 fit/transform/predict API 直观且易于使用,对用户隐藏了所有算法的复杂性。

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

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

【讨论】:

  • 谢谢。对this one 有什么想法吗?
猜你喜欢
  • 2015-09-17
  • 1970-01-01
  • 1970-01-01
  • 2018-07-13
  • 2015-08-13
  • 2021-04-22
  • 1970-01-01
  • 2015-08-13
  • 2017-12-08
相关资源
最近更新 更多