小编Jai*_*ani的帖子

sklearn 中的 KNearest Neighbors - ValueError:查询数据维度必须匹配训练数据维度

我正在尝试对我在 UCI 机器学习数据库中找到的一些文本识别数据进行 ak 最近邻预测。( https://archive.ics.uci.edu/ml/datasets/Letter+Recognition )

我交叉验证了数据并测试了准确性,没有问题,但我无法运行classifier.predict()。任何人都可以阐明为什么我会收到此错误?我在 sklearn 网站上阅读了维度诅咒,但实际上我在修复代码时遇到了麻烦。

到目前为止,我的代码如下:

import pandas as pd
import numpy as np
from sklearn import preprocessing, cross_validation, neighbors

df = pd.read_csv('KMeans_letter_recog.csv')    

X = np.array(df.drop(['Letter'], 1))
y = np.array(df['Letter'])

X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size = 0.2) #20% data used

clf = neighbors.KNeighborsClassifier()
clf.fit(X_train, y_train)
accuracy = clf.score(X_test, y_test) #test
print(accuracy) #this works fine

example = np.array([7,4,3,2,4,5,3,6,7,4,2,3,5,6,8,4])
example = X.reshape(len(example), -1)

prediction = clf.predict(example)
print(prediction) #error
Run Code Online (Sandbox Code Playgroud)

df.head() 产生:

 Letter   x-box   y-box   box_width …
Run Code Online (Sandbox Code Playgroud)

numpy machine-learning nearest-neighbor python-3.x scikit-learn

5
推荐指数
1
解决办法
3万
查看次数