我试图用sklearn-kneighborssegorier训练一个关于葡萄酒质量数据的简单模型。这是我的代码:
from sklearn.neighbors import KNeighborsClassifier
import pandas as pd
import numpy as np
dataframe = pd.read_csv("winequality-white.csv")
dataframe = dataframe.drop(["fixed acidity", "pH", "sulphates"], axis=1)
test = dataframe[110:128]
train = dataframe[15:40]
Y = train["quality"]
X = train.drop(["quality"], axis=1)
#print(X)
#print(Y)
knn = KNeighborsClassifier()
knn.fit(X, Y)
testvals = np.array(test.loc[110, :])
testvals = testvals.reshape(1, -1)
print(knn.predict([[testvals]]))
我得到错误“ValueError:Found array with dim 4。估计值应为<;=2。”
我很确定这和我的阵型有关,我试着重塑它,但是没有成功。我该怎么办?在
考虑以下(可复制)示例设置:
将向量传递给predict函数时,重塑向量的方法是创建一个比预期的2维多的数组(即多维数组)。以下是要传递给predict函数的整形输出:
^{pr2}$我们可以证明这会产生一个4-d阵列:
^{3}$Sklearn需要一个二维数组。以下是如何修复它。。。如果要预测整个矩阵,只需运行:
如果您只想预测一个样本,您可以:
顺便说一句,值得一提的是,您还没有从
test
中弹出目标,因此功能的数量将不匹配,直到您这样做:另请参见this question
相关问题 更多 >
编程相关推荐