我正在使用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列。
我最终想要预测结果落在哪个bin(&lt; 5,5-6等)。在这种情况下使用的所有独立变量和因变量都是虚拟列,其二进制值为0或1.我缺少什么?
答案 0 :(得分:0)
Logistic Regression 3-class Classifier示例说明了LogisticRegression
如何使用向量而不是矩阵输入,在这种情况下target
数据集的iris
变量,编码为值{ {1}}。
要将虚拟矩阵转换为一个序列,您可以将每个列乘以不同的整数,然后 - 假设它是[0, 1, 2]
- 只需在结果上调用pandas.DataFrame
。类似的东西:
.sum(axis=1)