通過網格搜索得到 使模型效果最好的一組參數。
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 訓練時顯示的參數信息