機器學習之正則化與交叉驗證

時間:2014.07.01

地點:基地

--------------------------------------------------------------------------------

零、簡述

今天學習兩種模型選擇方法,一種是正則化方法,還一種是交叉驗證。

--------------------------------------------------------------------------------

一、正則化(regularization)

  正則化(regularization)是模型選擇的一種典型方法。是結構風險最小化的策略實現。它在經驗風險上還加上了一個正則化項(regularizer)或罰項(penalty term),在這裏,正則化項一般是模型複雜度的單調遞增函數,模型越複雜,正則化值就越大。

  正則化公式如下:

  

正則化公式前一項即是經驗風險,後一項爲正則化項, 在這裏大於或等於0 ,爲調整經驗風險項和正則化項之間關係的係數。

正則化項可以有多種不同形式,比如在迴歸問題中,損失函數爲平方損失,正則化項是參數向量的L2範數:


這裏的||w||表示的是參數向量w的L2範數

當然正化項也可以是參數向量的L1範數,這樣,正則化公式爲:


在這裏||w||1爲參數向量的L1範數。

這樣一來,經驗風險較小的模型可能比較複雜,含多個非零參數,於是第2項正則化項就會較大。正則化的目的就是爲了選擇經驗風險與模型複雜度同時都比較小的模型。

正則化符合奧卡姆剃刀原理:在所有可能選擇的模型中,能夠很好地解釋已知數據且十分簡單的模型纔是最好的模型。從貝葉斯估計的角度來看,就是正則化項對應於模型的先驗概率,複雜的模型具有較小的先驗概率,而簡答的模型具有較大的先驗概率

--------------------------------------------------------------------------------

二、交叉驗證(cross validation)

  當給定樣本數據充足,進行模型選擇的方法一般爲:

隨機將數據集劃分爲三部分,分別爲:訓練集,驗證集,測試集。我們用訓練集數據來訓練模型,用驗證集數據來選擇模型,用測試集數據最終對學習方法進行評估。一般來說,我們選擇對驗證集有最小預測誤差的模型,由於驗證集有足夠多的數據,因此對模型進行選擇也是有效的。但由於許多實際應用中,數據本身不充足,爲了選擇好的模型,我們需要用到交叉驗證:即重複使用數據,把給定數據進行切分,將切分數據集組合爲訓練集與測試集,在此基礎上反覆進行訓練,測試已經模型選擇。

2.1簡單交叉驗證

  1.隨機將數據分爲兩個部分:訓練集(70%)+測試集(30%)

  2.然後用訓練集在各種條件下(比如不同參數個數)訓練模型,從而得到不同模型

  3.在測試集上評價各個模型的測試誤差,選出測試誤差最小的模型。

2.2 S折 交叉驗證

 S折交叉驗證(S-fold cross validation)應用最多,它的步驟爲
首先:隨機將已知數據切分爲S個互不相交的大小相同的子集

然後:利用S-1個子集的數據訓練模型,利用剩下的一個子集測試模型,將這一過程對可能的S種可能(即劃分後,把每個子集都當一次測試集其餘訓練集)重複進行

最後選擇出S次評測中平均測試誤差最小的模型

2.3 留一 交叉驗證

  S折交叉驗證的特殊情形就是S=N,,稱爲留一交叉驗證(leave-one-out cross validation),在數據比較缺乏的情況下使用,N恰好爲給定數據集的容量)

發佈了193 篇原創文章 · 獲贊 53 · 訪問量 36萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章