from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import GridSearchCV
# 超参数的情况
param_grid =[{'weights':['uniform'],'n_neighbors':[i for i inrange(1,11)]},{'weights':['distance'],'n_neighbors':[i for i inrange(1,11)],'p':[i for i inrange(1,6)]}]
from sklearn.metrics import accuracy_score
y_predict = knn_clf.predict(X_test2)
accuracy_score(y_predict,y_test)
2. kNN 回归问题
2.1 导入数据
import numpy as np
from sklearn import datasets
boston = datasets.load_boston()
X = boston.data
y = boston.target
# 去除边缘值
X = X[y <50.0]
y = y[y <50.0]
from sklearn.neighbors import KNeighborsRegressor
knn_reg = KNeighborsRegressor()
knn_reg.fit(X_train_standard,y_train)# 使用算法默认值的评分
knn_reg.score(X_test_standard,y_test)
2.5 网格搜索
from sklearn.model_selection import GridSearchCV
param_grid =[{"weights":["uniform"],"n_neighbors":[i for i inrange(1,11)]},{"weights":["distance"],"n_neighbors":[i for i inrange(1,11)],"p":[i for i inrange(1,6)]}]
grid_search = GridSearchCV(knn_reg, param_grid, n_jobs=-1, verbose=1)
grid_search.fit(X_train_standard, y_train)
grid_search.best_params_