通过网格搜索得到 使模型效果最好的一组参数。
kNN网格搜索
param_grid =[
#knn通过距离权重计算
{'weights':['uniform'],
#k的取值 取1到11
'n_neighbors':[i for i in range(1,11)]
},{
#通过样本点个数
'weights':['distance'],
#k的取值 取1到11
'n_neighbors':[i for i in range(1,11)],
#明可夫斯基距离调参
'p':[i for i in range(1,6)]
}
]
knn_clf =KNeighborsClassifier()
定义一个knn分类器
from sklearn.model_selection import GridSearchCV
#初始化网格搜索器 传入knn分类器 网格搜索参数
grid_search = GridSearchCV(knn_clf,param_grid)
#训练网格搜索器
grid_search.fit(X_data,y_data)
#返回一个 效果最好的分类器
knn_clf = grid_search.best_params_
#正确率最高的成绩
grid_search.best_score_
#最好的参数
grid_search.best_params_
grid_search = GridSearchCV(knn_clf,param_grid,n_jobs=1,verbose=2)
n_jobs cpu个数 verbos 训练时显示的参数信息