簡體   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