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



我正在使用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是具有50184行、7列的DataFramey也有50184行,但有6列。

我最终想预测结果会落在什么位置(<5、5-6等)。在这种情况下使用的所有自变量和因变量都是伪列,其二进制值为0或1。我错过了什么?

逻辑回归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)

相关内容

  • 没有找到相关文章

最新更新