ValueError:预期的二维数组,而是得到一维数组:array=[0. 2. 4. ... 2. 4. 3.]

问题描述

Test_train 拆分:

from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.30,random_state = 10)

测试训练值是:X_train = (36201,32) X_test = (15516,32) y_train = (36201,) y_test = (15516,)

*

from sklearn.discriminant_analysis import LineardiscriminantAnalysis
model_lda = LineardiscriminantAnalysis()
model_lda.fit(y_train,X_train)

我遇到的错误

ValueError: 预期的二维数组,而是得到一维数组: 数组=[0. 2. 4. ... 2. 4. 3.].
如果您的数据具有单个特征,则使用 array.reshape(-1,1) 或使用 array.reshape(1,-1) 如果它包含单个样本来重塑您的数据。

解决方法

尽量写一个最小的、可重现的例子。它对解决错误有很大帮助。

看看你的 model_lda.fit,X 和 y 应该是倒置的: model_lda.fit(X_train,y_train)

您可以查看 LinearDiscriminantAnalysis here 的文档。