模型評估與選擇(Model Assessment and Selection)

原博客:https://daya-jin.github.io/2018/12/11/Model_Assessment_and_Selection/

模型評估與選擇

Bias

偏差為模型對于觀測數據的擬合程度,可以理解為射箭時的準心與靶心的偏差。

Variance

方差能表征模型的穩定程度,可以理解多次射箭時各準心的分散程度。

Model Complexity

一般來說,越簡單的模型具有偏差高方差低的特點,而復雜模型則恰好相反。

假設有訓練集\tau以及模型的評估方法L(Y,\hat{f}(X)),那么模型的泛化誤差(generalization error)可表示為:

Err=E[L(Y,\hat{f}(X)|\tau)]

給定訓練集下訓練得到的模型\hat{f}(X)在整個群體X上的期望誤差,除此之外,在訓練集上還可以得到一個訓練誤差(training error):

Err_{\tau}=\frac{1}{N}L(Y_{\tau},\hat{f}(X_{\tau}))

可惜因為variance的存在,訓練誤差并不能很好地作為泛化誤差的估計。雖然更復雜的模型能夠捕獲到數據中更深層次的結構(同時也需要更多的數據),但會有過擬合的風險,就像做閱讀理解的時候過度解讀了一樣。所以,對模型的有效評估很重要。

在數據充足的情況下,辦法很簡單,將已有數據進行劃分,一部分作為訓練集(training set)用于訓練模型,另一部分用作驗證集(validation set)用于檢驗模型在未知數據上的泛化性能。不過怎么劃分數據并沒有一個統一準則,一般來講,原有數據的信噪比越大,訓練集的比例可以降低;模型越簡單,訓練集的比例也可以降低。

偏差-方差分解

對于真實分布Y=f(X)+\epsilon,其中\epsilon\sim N(0,\sigma^{2}),那么一個模型\hat{f}(x)在某個樣本上的期望誤差為:

\begin{align*} Err(x_{0})&=E[(Y-\hat{f}(x_{0}))^{2}|X=x_{0}] \\ &=\sigma^{2}+[E(\hat{f})-f]^{2}+E[\hat{f}-E(\hat{f})]^{2} \\ &=\sigma^{2}+Bias^{2}+Variance \\ \end{align*}

此處有上式的推導,個人沒看懂,如果有懂的請指導一下,謝謝。

下面的圖詮釋了偏差與方差的問題:

2018-12-12_10-26-06.png

上圖的藍色范圍表示的是數據真實分布;紅色范圍表示的是模型空間,紫色范圍表示受限模型空間,模型空間由模型的擬合能力決定,模型越復雜擬合空間就越大,如神經網絡理論上能擬合任意形狀的函數。在選定一個特定的模型后,該模型理論上能達到的最優解為群體最優解(closest fit in population),但是由于觀測樣本與整體分布之間的不一致,,模型只能在已有的觀測數據上進行擬合,這樣的到的最優解叫做觀測最優解(closest fit in realization)。某一個模型的群體最優解與真實數據分布之間的誤差叫做模型偏差(model bias),這是由模型決定的,想要減小模型偏差只能換模型。另一方面,原有模型空間的復雜度與模型預測的波動性會因模型本身而改變,如圖中黃色空間所示;在之前的文章中提到,一般會使用一定的誤差增加來換取更高的穩定性,這就是圖中的紫色空間。在受限模型空間內的最優解與原有模型空間內的最優解的距離就叫做估計偏差(estimation bias),這跟之前說的正則化等同于偏差換方差是一致的。

交叉驗證

為了實現對測試誤差的有效估計,最常用的方法就是做交叉驗證(cross validation)。交叉驗證的思想很簡單,將已有數據劃分成K份,每次將其中的一份作為驗證集(validation set),而用剩下的K-1份數據作為訓練集訓練得到模型,這樣就可以重復訓練K次,可以得到K驗證誤差(validation error),將其平均作為對測試誤差的估計。

CV.jpg

K的取值通常為5或10,特別的,當K=N時叫做留一驗證法(leave-one-out)。值得一提的是,當K越大,驗證誤差與測試誤差之間的偏差就越小,但是方差越大,反之亦然。

Bootstrap

Bootstrap是指有放回的抽樣,假設現在有觀測數據Z=(z_{1},z_{2},...,z_{N}),進行B輪有放回的抽樣會得到B個有重疊的子樣本Z_{1},Z_{2},...,Z_{B}。有了這些數據子集之后就可以根據這些子集來估計原本觀測數據的任意統計變量,如利用bootstrap來估計整體的方差:

\hat{S}(Z)=\frac{1}{B-1}\sum\limits_{i=1}^{B}(S(Z_{i})-\bar{S})^{2}

其中\bar{S}=\frac{1}{B}\sum\limits_{i=1}^{B}S(Z_{i}),為使用子樣本對整體的均值估計。

現在每一輪bootstrap都是對已有數據做等體量的采樣,即對有N個樣本的數據集,每一輪bootstrap采出N個樣本作為數據子集,那么容易得到,每一個樣本被采到的概率為:

\begin{aligned} P(IN)&=1-P(NOT \ IN)^{N} \\ &=1-(1-\frac{1}{N})^{N} \\ &=1-\frac{1}{e} \\ &=0.632 \end{aligned}

由此可以看出,每一輪bootstrap得到的樣本子集Z_{i}大概只包含了原觀測數據的63.2%,因此原數據中未被抽到的36.8%可以用作模型驗證,前面的文章也提到過,這叫包外誤差估計。但是包外誤差估計有一個問題,就是在驗證模型中只用了大約2/3的數據去訓練模型,這樣得出的誤差估計值差不多相當于使用3折交叉驗證或2折交叉驗證。如果該模型關于該數據的學習曲線在\frac{N}{2}\frac{2N}{3}區間有很明顯的提升的話,那么包外誤差估計得到的驗證效果只是測試誤差的一個悲觀估計(Pessimistic estimate)。

為了提升包外估計的準確性,引入訓練誤差,并賦以權重,得到改進的.632估計

\hat{Err}^{.632}=0.368{\times}Err_{train}+0.632{\times}Err_{validation}

.632估計在過擬合的情況下表現會很糟糕。比如現在有一個二分類問題,模型在訓練集上過擬合導致Err_{train}=0,而在驗證集上表現我們取一個最低值0.5,那么.632估計給出的驗證誤差為:

\begin{aligned} \hat{Err}^{.632}&=0.368{\times}0+0.632{\times}0.5 \\ &=0.316 \end{aligned}

可以看到,.632估計在過擬合的情況下會給出一個樂觀估計。

.632+估計,待補充。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,505評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,556評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,463評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,009評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,778評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,218評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,281評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,436評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,969評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,795評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,993評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,537評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,229評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,659評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,917評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,687評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,990評論 2 374

推薦閱讀更多精彩內容