knn算法 k近邻算法demo(6) 明可夫斯基距离

it2025-05-30  4

from sklearn import datasets#引入数据集,sklearn包含众多数据集 from sklearn.model_selection import train_test_split#将数据分为测试集和训练集 from sklearn.neighbors import KNeighborsClassifier#利用邻近点方式训练数据\ from sklearn.metrics import accuracy_score import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt digits=datasets.load_digits() # print(digits.keys()) # print(digits.DESCR) X=digits.data y=digits.target # some_digit=X[666] # some_digit_image=some_digit.reshape(8,8) # plt.imshow(some_digit_image,cmap=mpl.cm.binary) # plt.show() X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2)#利用train_test_split # myknn=KNeighborsClassifier(n_neighbors=3) # myknn.fit(X_train,y_train) # y_predict=myknn.predict(X_test) # # print(sum(y_predict == y_test)/len(y_test)) # print(accuracy_score(y_test,y_predict)) best_p=-1 best_score=0.0 best_k=-1 # for method in ["uniform","distance"]: for k in range(1,11): for p in range(1,6): knn_clf=KNeighborsClassifier(k,weights="distance",p=p) knn_clf.fit(X_train,y_train) score=knn_clf.score(X_test,y_test) if score>best_score: best_k=k best_score=score best_p=p print(p) print(best_k) print(best_score)

最新回复(0)