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

时间:2015-12-01 03:31:23

标签: python pandas machine-learning scikit-learn 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)

XDataFrame,有50184行,7列。 y也有50184行,但有6列。

我最终想要预测结果落在哪个bin(&lt; 5,5-6等)。在这种情况下使用的所有独立变量和因变量都是虚拟列,其二进制值为0或1.我缺少什么?

1 个答案:

答案 0 :(得分:0)

Logistic Regression 3-class Classifier示例说明了LogisticRegression如何使用向量而不是矩阵输入,在这种情况下target数据集的iris变量,编码为值{ {1}}。

要将虚拟矩阵转换为一个序列,您可以将每个列乘以不同的整数,然后 - 假设它是[0, 1, 2] - 只需在结果上调用pandas.DataFrame。类似的东西:

.sum(axis=1)