python代码错误.ValueError:y应该是一个1d数组,而得到一个形状为(56000,10)的数组


import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.linear_model import LogisticRegression
logistic_regression = LogisticRegression(random_state = 10)
logistic_regression.fit(X_train, y_train)
y_pred_logistic_regression = logistic_regression.predict(X_test)
print(y_pred_logistic_regression.shape)

ValueError:y应该是1d数组,得到的是形状为(56000,10(的数组,而不是

您的y_train数组变形了,假设您使用的是一个热编码类,解决方案是将其转换为类索引数组:

logistic_regression.fit(X_train, y_train.argmax(axis=1))

示例:

>> y_train
array([[0., 0., 1., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 1., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 1., 0., 0., 0., 0., 0.],
[1., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])
# after conversion:
>> y_train.argmax(axis=1)
array([2, 3, 4, 0])

最新更新