繁体   English   中英

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列。

我最终想预测结果落入哪个bin(<5、5-6等)中。 在这种情况下使用的所有自变量和因变量都是虚拟列,它们的二进制值为0或1。我缺少什么?

Logistic回归3类分类器示例说明了拟合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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM