我调查了其他答案,但仍然不明白问题为何持续存在。
使用Iris数据集的经典机器学习实践。
代码:
dataset=load_iris()
X = np.array(dataset.data)
y = np.array(dataset.target)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
model = KNeighborsClassifier()
model.fit(X_train, y_train)
prediction=model.predict(X_test)
所有数组的形状:
尝试打印此 model.score(y_test,预测),我得到了错误。 我尝试使用.reshape(-1,1)将y_test和预测转换为2D数组,但又遇到另一个错误:查询数据维必须与训练数据维匹配。
这不仅与解决方案有关,还在于了解问题所在。
答案 0 :(得分:0)
查看您使用的功能的签名和文档字符串通常很有用。例如model.score
有
Parameters
----------
X : array-like, shape = (n_samples, n_features)
Test samples.
y : array-like, shape = (n_samples) or (n_samples, n_outputs)
True labels for X.
在文档字符串中显示,以向您显示应提供的确切输入类型。
您将在这里model.score(X_test, y_test)
model.score
既可以根据X_test
进行预测,也可以与y_test
进行比较