from sklearn.cross_validation import cross_val_scoreimport matplotlib.pyplot as pltk_range = range(1, 31)k_scores = [] # listfor k in k_range: knn = KNeighborsClassifier(n_neighbors=k)## loss = -cross_val_score(knn, X, y, cv=10, scoring='mean_squared_error') # for regression # 注意加负号 scores = cross_val_score(knn, X, y, cv=10, scoring='accuracy') # for classification k_scores.append(scores.mean())# 把每一次的得分都存进去plt.plot(k_range, k_scores) # 这里就是每个K显示一次K_scoresplt.xlabel('Value of K for KNN')plt.ylabel('Cross-Validated Accuracy')plt.show()
