Cross Validation(交叉驗證)詳解

2021-08-07 05:40:55 字數 1249 閱讀 3023

假設我們需要從某些候選模型中選擇最適合某個學習問題的模型,我們該如何選擇?以多元回歸模型為例:

我們假設模型集合為有限集

假設樣本集為s,根據經驗風險最小化原則(erm),可能會使用這樣的演算法:

1.在s上訓練每個模型

2.選擇訓練誤差最小的假設函式,即為我們需要的函式。

然而,這樣的演算法實際上並不有效。以多元回歸模型為例,指數越高,對樣本集s的擬合就越準確,這樣雖然保證了較低的訓練誤差,但是這種方法會使泛化誤差變得很大,因此,這並不是乙個好的方法。

簡單交叉驗證

下面介紹一種方法,稱為簡單交叉驗證(****** cross validation)

隨機將s分為

1.在2.將每個假設函式通過交叉驗證集

3.通過簡單交叉驗證,可以得到每個假設函式

通常,預留1/4-1/3的樣本作為交叉驗證集,而剩下的作為訓練集使用。

步驟3也可以替換成這樣的操作:選擇相應的模型

簡單交叉驗證的不足之處在於:此方法浪費了

k-折交叉驗證

k-折交叉驗證將樣本集隨機劃分為k份,k-1份作為訓練集,1份作為驗證集,依次輪換訓練集和驗證集k次,驗證誤差最小的模型為所求模型。具體方法如下:

1.隨機將樣本集s劃分成k個不相交的子集,每個子集中樣本數量為m/k個,這些子集分別記作

2.對於每個模型

for j=1 to k將再將

3.計算每個模型的平均泛化誤差,選擇泛化誤差最小的模型

k-折交叉驗證方法,每次留作驗證的為總樣本量的1/k(通常取k=10),因此每次用於訓練的樣本量相應增加了,然而k-折交叉驗證對於每個模型都需要執行k次,他的計算成本還是較高的。

還有一種k-折交叉驗證的極端形式,當k=m時,即把樣本集s劃分為m個子集,其中的m-1個樣本作為訓練集,剩下1個樣本作為驗證集,如此迴圈m次,選取驗證誤差最小的模型。

以上介紹的各種交叉驗證的方法,可用於模型的選擇,但也可以針對單個演算法和模型進行評價。

小結:交叉驗證是一種模型選擇方法,其將樣本的一部分用於訓練,另一部分用於驗證。因此不僅考慮了訓練誤差,同時也考慮了泛化誤差。從這裡可以看出機器學習、資料探勘與傳統統計學的乙個重要差別:

傳統統計學更注重理論,追求理論的完整性和模型的精確性,在對樣本建立某個特定模型後,用理論去對模型進行各種驗證;而機器學習/資料探勘則注重經驗,如交叉驗證,就是通過不同模型在同一樣本上的誤差表現好壞,來選擇適合這一樣本的模型,而不去糾結理論上是否嚴謹。

交叉驗證(cross validation)

交叉驗證是資料分析時模型選擇的方法之一,將資料集分為三份,分別為訓練集 training set 驗證集 valication set 和測試集 test set 分別功能為訓練模型,選擇模型和對學習方法的評估。其演算法的思想為重複的使用資料,使得模型的精度越來越高。交叉驗證的方法有以下三種 1.簡...

交叉驗證(Cross validation

交叉驗證 cross validation 交叉驗證用於防止模型過於複雜而引起的過擬合 作用 如何交叉驗證 我這裡主要介紹k交叉驗證 1 將資料集分成k份 2 對於每乙個模型 拿多項式回歸舉例,m 2為乙個模型,m 3為乙個模型。我們主要就是尋找最好的m for j 1,2,k 將除第j份的所有資料...

交叉驗證(Cross Validation)

在模式識別 pattern recognition 與機器學習 machine learning 的相關研究中,經常會將資料集 dataset 分為訓練集 training set 跟測試集 testing set 這兩個子集,前者用以建立模型 model 後者則用來評估該模型對未知樣本進行 時的精...