目錄導包
交叉驗證
演示交叉驗證
選取最適鄰居數
畫圖表示
多引數組合使用cross_val_score篩選最合適的引數組合
遍歷方式取最大值 結果
import numpy as np
from sklearn.neighbors import kneighborsclassifier
from sklearn import datasets
# model_selection:模型選擇
# cross_val_score cross:交叉,validation:驗證(測試)
# 交叉驗證
from sklearn.model_selection import cross_val_score
每次選取乙份資料做驗證,其餘資料作為訓練,通常選取所有資料,將資料求得的分數做平均值。
載入資料
x,y = datasets.load_iris(true)
x.shape
# 演示了交叉驗證,如何使用
knn = kneighborsclassifier()
score = cross_val_score(knn,x,y,scoring='accuracy',cv = 10)#預設cv=3,accuracy準確率
score.mean()
erros =
for k in range(1,14):
knn = kneighborsclassifier(n_neighbors=k)
score = cross_val_score(knn,x,y,scoring='accuracy',cv = 6).mean()
# 誤差越小,說明k選擇越合適,越好
import matplotlib.pyplot as plt%matplotlib inline
# k = 11時,誤差最小,說明k = 11對鳶尾花來說,最合適的k值
除此之外,knn中還有其他引數比如權重weights【uniform,distance】
np.array(list(result.values())).argmax()#找到最大值索引
由此可看,w最適為uniform,鄰居數最好為11。驗證其他引數也可以用同樣方法。list(result)[20]
機器學習 調整kNN的超引數
1 問題 以knn演算法為例 平票 如果k個點中,不同型別的樣本數相等,怎麼選取?如果選取的k個點中,數量多的一類樣本點距離測試樣本較遠,數量少的一類樣本點距離測試樣本較近,此時選取數量較多的型別作為輸出結果,不具說服力 2 knn演算法中,除了k值外的另乙個超引數 距離的權重 1 距離 sciki...
深度學習(四) knn 超引數
best score 0.0 設定當前我們已經找到的準確率最好的值,初始化為0 bestk k 1 我們找到的最好的k,初始化為 1 for k in range 1,11 我們傳入10個k,看哪個k最適合鳶尾花 knn clf kneighborsclassifier n neighbors k ...
用交叉驗證調整KNN模型的引數
import pandas as pd import matplotlib.pyplot as plt import numpy as np 載入資料 def inspect data file root dataframe pd.read csv file root print 資料基本資訊 pr...