K最近邻(KNN)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/java_fresh_man/article/details/84828475

K最近邻算法

#K最近邻算法分辨手写数字图片
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
digits = load_digits()
pca = PCA(n_components=25)
pca.fit(digits.data[:1700,:])
X, y = pca.transform(digits.data[:1700,:]), digits.target[:1700]
tX, ty = pca.transform(digits.data[1700:,:]), digits.target[1700:]
from sklearn.neighbors import KNeighborsClassifier
kNN = KNeighborsClassifier(n_neighbors=5, p=2)
kNN.fit(X,y)
print ('Accuracy: %.3f' % kNN.score(tX,ty) )
print( 'Prediction: %s actual: %s' % (kNN.predict(tX[:10,:]),ty[:10]))

结果:

选择K参数

for k in [1,5,10,20,50,100,200]:
    kNN = KNeighborsClassifier(n_neighbors=k).fit(X,y)
    print ('for k=%3i accuracy is %.3f' % (k, kNN.score(tX,ty)))

猜你喜欢

转载自blog.csdn.net/java_fresh_man/article/details/84828475