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])