Scikit-learn - 多项逻辑回归的错误输入形状错误

Scikit-learn - Bad input shape error on multinomial logistic regression

我正在使用 Scikit-learn 在 Python 中实施多项逻辑回归模型。这是我的代码:

X = pd.concat([each for each in feature_cols], axis=1)
y = train[["<5", "5-6", "6-7", "7-8", "8-9", "9-10"]]
lm = LogisticRegression(multi_class='multinomial', solver='lbfgs')
lm.fit(X, y)

但是,当它尝试执行最后一行代码时,我得到 ValueError: bad input shape (50184, 6)

X 是一个 DataFrame,有 50184 行,7 列。 y 也有 50184 行,但有 6 列。

我最终想预测结果落在哪个区间(<5、5-6 等)。本例中使用的所有自变量和因变量都是虚拟列,其二进制值为 0 或 1。我错过了什么?

Logistic Regression 3-class Classifier 示例说明了拟合 LogisticRegression 如何使用向量而不是矩阵输入,在本例中是 iris 数据集的 target 变量,编码为值 [0, 1, 2].

要将虚拟矩阵转换为系列,您可以将每一列乘以不同的整数,然后 - 假设它是 pandas.DataFrame - 只需对结果调用 .sum(axis=1)。类似于:

for i, col in enumerate(y.columns.tolist(), 1):
    y.loc[:, col] *= i
y = y.sum(axis=1)