機器學習隨筆(1) 交叉驗證

2021-08-20 12:34:47 字數 1009 閱讀 2248

基本思想:

交叉驗證的基本思想是把在某種意義下將原始資料(dataset)進行分組,一部分做為訓練集(train set),另一部分做為驗證集(validation set or test set),首先用訓練集對分類器進行訓練,再利用驗證集來測試訓練得到的模型(model),以此來做為評價分類器的效能指標。

常見形式:

holdout 驗證:

常識來說,holdout 驗證並非一種交叉驗證,因為資料並沒有交叉使用。 隨機從最初的樣本中選出部分,形成交叉驗證資料,而剩餘的就當做訓練資料。 一般來說,少於原本樣本三分之一的資料被選做驗證資料。

k-fold cross-validation:

k折交叉驗證,初始取樣分割成k個子樣本,乙個單獨的子樣本被保留作為驗證模型的資料,其他k-1個樣本用來訓練。交叉驗證重複k次,每個子樣本

驗證一次,平均k次的結果或者使用其它結合方式,最終得到乙個單一估測。這個方法的優勢在於,同時重複運用隨機產生的子樣本進行訓練和驗證,每次的結果驗證一次。

例如10折交叉驗證(10-fold cross validation),將

資料分成十份,輪流將其中9份做訓練1份做驗證,10次的結果的均值作為對演算法精度的估計,一般還需要進行多次10折交叉驗證求均值,例如:10次10折交叉驗證,以求更精確一點。

留一驗證:

正如名稱所建議, 留一驗證(loocv)意指只使用原本樣本中的一項來當做驗證資料, 而剩餘的則留下來當做訓練資料。 這個步驟一直持續到每個樣本都被當做一次驗證資料。 事實上,這等同於和

k-fold 交叉驗證是一樣的,其中

k為原本樣本個數。 在某些情況下是存在有效率的演演算法,如使用kernel regression 和tikhonov regularization。

機器學習 交叉驗證

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

機器學習 交叉驗證

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

機器學習 KFold交叉驗證

section i brief introduction on stratifiedkfold from sebastian raschka,vahid mirjalili.python機器學習第二版.南京 東南大學出版社,2018.section ii code and analyses from...