4.6 網(wǎng)格搜索與k近鄰算法中更多的超參數(shù)

4.6網(wǎng)格搜索與k近鄰算法中更多的超參數(shù)

關于網(wǎng)格搜索,sklearn為我們提供了一個方法,叫Grid Search在使用它之前,我們首先要定義搜索的參數(shù)。

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)]
}

對于我們要進行搜索的參數(shù),它是一個數(shù)組,對應數(shù)組中每一個元素相應的是一個字典,字典對應的其實就是我們要進行的一族網(wǎng)格搜索。每一族網(wǎng)格搜索相應的要列上這族網(wǎng)格搜索中要遍歷的么一個參數(shù)對應的取值范圍。
下面我們利用網(wǎng)格搜索來找到最佳的超參數(shù)。

import numpy as np
from sklearn import datasets

# 加載手寫數(shù)字數(shù)據(jù)集
digits = datasets.load_digits()

X = digits.data
y = digits.target

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=666)

from sklearn.neighbors import KNeighborsClassifier

knn_clf = KNeighborsClassifier(n_neighbors=3)
knn_clf.fit(X_train, y_train)
knn_clf.score(X_test, y_test)

knn_clf = KNeighborsClassifier()

from sklearn.model_selection import GridSearchCV
grid_search = GridSearchCV(knn_clf, param_grid)

%%time
grid_search.fit(X_train, y_train)

#獲取最佳超參數(shù)
grid_search.best_estimator_

# 獲取搜索的準確度
grid_search.best_score_

# 獲取參數(shù)
grid_search.best_params_

knn_clf = grid_search.best_estimator_

knn_clf.predict(X_test)

knn_clf.score(X_test, y_test)

運行結(jié)果如下圖:


image

image

image

在這個方法中,評判標準和之前的不一樣,所以結(jié)果也不一樣。
grid search可以理解成有多個分類器,可以找到最好的。
不是用戶傳入的參數(shù),而是根據(jù)用戶傳入的參數(shù)計算出來的參數(shù)結(jié)果,這樣的參數(shù)一般命名時末尾有下劃線。

更多距離的定義

  • 向量空間余弦相似度 Cosine Similarity
  • 調(diào)整余弦相似度 Adjusted Cosine Similarity
  • 皮爾森相關系數(shù) Pearson Correlation Coefficient
  • Jaccard相似系數(shù) Jaccard Coefficient
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容