機器學習 交叉驗證篩選引數K值和weight

2021-09-29 20:29:09 字數 2138 閱讀 6121

導包

import numpy as np

from sklearn.neighbors import kneighborsclassifier

from sklearn import datasets

#model_selection :模型選擇

# cross_val_score: 交叉 ,validation:驗證(測試)

#交叉驗證

from sklearn.model_selection import cross_val_score

讀取datasets中鳶尾花(yuan1wei3hua)資料
x,y= datasets.load_iris(

true

)x.shape

(150, 4)

一般情況不會超過資料的開方數

#參考

150**

0.5#k 選擇 1~13

12.24744871391589

knn = kneighborsclassifier(

)score = cross_val_score(knn,x,y,scoring=

'balanced_accuracy'

,cv=11)

score.mean(

)

0.968181818181818

errors =

for k in

range(1

,14):

knn = kneighborsclassifier(n_neighbors=k)

score = cross_val_score(knn,x,y, scoring=

'accuracy'

,cv =6)

.mean(

)#誤差越小 說明k選擇越合適 越好

1-score)

import matplotlib.pyplot as plt

%matplotlib inline

#k = 11時 誤差最小 說明最合適的k值

機器學習 交叉驗證

假設我們需要從某些候選模型中選擇最適合某個學習問題的模型,我們該如何選擇?以多元回歸模型為例 我們假設模型集合為有限集 假設樣本集為s,根據經驗風險最小化原則 erm 可能會使用這樣的演算法 1.在s上訓練每個模型 2.選擇訓練誤差最小的假設函式,即為我們需要的函式。然而,這樣的演算法實際上並不有效...

機器學習 交叉驗證

交叉驗證是最好的測試方法 乙個問題叫做交叉驗證,是指假設要將乙份資料拆分成訓練集和測試集,這個時候怎麼評估出它的誤差?交叉驗證是把集合拆成五份,取四份做訓練集 乙份做測試集,並且每次選擇不同的那乙份做測試級,最後測出五個結果再做平均,這被認為是最好的測試方法。交叉驗證確實是乙個還不錯的驗證的方法,但...

K折交叉驗證學習

交叉驗證主要用於防止模型過於複雜而引起的過擬合,是一種評價訓練資料的資料集泛化 能力的統計方法。其基本思想是將原始資料進行劃分,分成訓練集和測試集,訓練集用來對模型進行訓練,測試集用來測試訓練得到的模型,以此來作為模型的評價指標。講原始資料d按比例劃分,比如7 3,從資料集中隨機選取70 作為訓練集...