knn算法 k近邻算法demo(7) GridSearchCV解决超参数

it2025-05-29  8

from sklearn import datasets#引入数据集,sklearn包含众多数据集 from sklearn.model_selection import train_test_split#将数据分为测试集和训练集 from sklearn.model_selection import GridSearchCV #参数 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,random_state=666)#利用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)) param_grid=[ { 'weights':['uniform'], 'n_neighbors':[i for i in range(1,11)] }, { 'weights': ['distance'], 'n_neighbors': [i for i in range(1, 11)], 'p':[i for i in range(1, 6)] } ] knn_clf=KNeighborsClassifier() grid_search=GridSearchCV(knn_clf,param_grid) grid_search.fit(X_train,y_train) print(grid_search.best_estimator_) print(grid_search.best_score_) print(grid_search.best_params_) print(grid_search.best_index_)

最新回复(0)