knn(k邻近算法)实现手写数字分类,

from sklearn import datasets
digits = datasets.load_digits()
from sklearn import neighbors
#import sklearn

from sklearn.model_selection import train_test_split
#将数据切分成两部分:训练集和测试集
x_train,x_test,y_train,y_test = train_test_split(digits.data,digits.target,test_size=0.3,random_state=0)
#x_train表示训练数据(长度位64的向量),x_test表示测试数据(长度位64的向量),
#y_train表示训练数据的标记(数字0-9),y_test表示测试数据的标记(数字0-9)
#test_size=0.3表示将数据集的百分之三十的数据作为测试集,其他的为训练集

knn = neighbors.KNeighborsClassifier()
#训练数据集
knn.fit(x_train, y_train)
#预测
predict = knn.predict(x_test)

#print(predict)
#print(y_test)
length=len(predict)
#比较测试集的标记和预测的结果有多少个数字不同
count=0
for i in range(length):
    if predict[i]==y_test[i]:
        count+=1
#计算绝对准确率
print(count)
print(length)
print(count/length)

利用scikit-learn中的8*8手写数字数据集和knn的工具包进行手写数字分类

猜你喜欢

转载自blog.csdn.net/u014165082/article/details/81005271
今日推荐