導包
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 作為訓練集...