第二章 模型評估與選擇
2.1 經(jīng)驗誤差與過擬合
錯誤率(error rate):分類錯誤的樣本占樣本總數(shù)的比例,如果在m個樣本中有a個樣本分類錯誤肿仑,則錯誤率為 E = a/m泪漂;
精度(accuracy):精度 = 1-錯誤率;
? ? ? ? 更一般的,我們把學習器的實際預測輸出與樣本的真實輸出之間的差異稱為“誤差”(error)杏头,學習器在訓練集上的誤差稱為“訓練誤差”(training error)或“經(jīng)驗誤差”(empirical error),在新樣本上的誤差稱為“泛化誤差”(generalization error)沸呐。
? ? ? ? 我們實際希望的是泛化誤差很小的學習器醇王,為了達到這個目的,應該從訓練樣本中盡可能學出適用于所有潛在樣本的“普遍規(guī)律”崭添,然而寓娩,當學習器把訓練樣本學習的“太好了”的時候,很有可能把訓練樣本自身的一些特性當做所有潛在樣本的特性呼渣,即“過擬合”(overfitting)棘伴,會導致學習器的泛化性能下降。相對應的屁置,“欠擬合”(underfitting)是指學習器對訓練樣本的一般性質(zhì)尚未學習透徹焊夸。
模型選擇問題:通常,我們對于某一問題有多種學習算法可以選擇缰犁,產(chǎn)生的模型也會不一樣淳地;
? ? ? ? 理想的解決方案是對不同學習算法產(chǎn)生的不同模型的泛化誤差進行評估,選擇泛化誤差最小的模型作為最終模型帅容。然而泛化誤差無法直接獲得颇象。而訓練誤差有存在過擬合現(xiàn)象,而不適合作為標準并徘,這樣遣钳,就需要模型評估方法。
2.2評估方法
? ? ? ? ?通常麦乞,我們可通過實驗測試來對學習器的泛化誤差進行評估蕴茴,這就需要一個測試集劝评,然后以測試集的誤差作為泛化誤差的近似。通常我們假設(shè)測試樣本也是從樣本真實分布中獨立同分布采樣獲得倦淀。但需要注意的是蒋畜,測試集應該盡可能的與訓練集互斥。因此我們需要從訓練集 S 中抽取一部分作為測試集 T撞叽,一下介紹幾種常見的做法姻成。
2.2.1 留出法
? ? ? ? “留出法”(hold-out)直接將數(shù)據(jù)集D劃分為兩個互斥的集合,其中一個集合作為訓練集合S愿棋,另一個作為測試集合T科展,即 ?D = S?∪ T, S ∩ T = ?糠雨。在S上訓練出模型后才睹,用T來評估其測試誤差,作為泛化誤差的估計甘邀。
? ? ? ? ?需要注意的是:S/T的劃分要盡可能額度保持分部的一致性琅攘,避免因為數(shù)據(jù)的劃分引入額外的偏差。
? ? ? ? ?常見的留出比例為數(shù)據(jù)集的2/3~4/5 作為訓練鹃答。
2.2.2 交叉驗證法
? ? ? ? “交叉驗證法”(cross validation)先將數(shù)據(jù)集D劃分為k個大小相似的互斥子集乎澄,即 D=D1∪D2∪...∪Dk,Di∩Dj = ? (i≠j)测摔。每個自己Di都盡可能的保持數(shù)據(jù)分布的一致性置济。然后,每次使用 ?k-1 ?個子集作為訓練集锋八,剩下的那個子集作為測試集浙于;這樣,就有k組 S/T挟纱,從而可以進行k次訓練和測試羞酗,然后使用k次結(jié)果的平均值作為最終結(jié)果。顯然紊服,檢查驗證評估方法的結(jié)果很大程度上取決于k的取值檀轨,因此,通常把交叉驗證法叫做“k折交叉驗證”(k-fold cross validation)欺嗤。k通常的取值是10参萄,因此叫為10折交叉驗證;下圖是10折交叉驗證的示意圖煎饼。
? ? ? ? 當k = m時讹挎, 其中m為數(shù)據(jù)集的樣本數(shù)量,則變成了交叉驗證法的一個特例,留一法(Leave-One-Out筒溃,即LOO)马篮。留一法不受隨機樣本劃分方式的影響;而且留一法的訓練樣本與初始數(shù)據(jù)集幾乎一致(只相差一個樣本)怜奖,因此浑测,留一法的評估結(jié)果往往被認為比較準確。然而歪玲,當數(shù)據(jù)集的規(guī)模很大時尽爆,計算開銷將是難以承受的。
? ? ? ?與留出法相似读慎,將數(shù)據(jù)集D劃分為k個子集同樣存在多種劃分方法,為減小因劃分不同而引入的誤差槐雾,通常進行p次k折交叉驗證夭委。常見的有 “10次10折交叉驗證”。
2.2.3 自助法
? ? ? ?我們希望訓練數(shù)據(jù)集無線接近初始數(shù)據(jù)集募强,但是留出法和交叉驗證法中均需要在出事數(shù)據(jù)集中劃分一部分作為測試數(shù)據(jù)集株灸;留一法又受樣本規(guī)模的限制,需要找出一種能夠減少因訓練樣規(guī)模不同造成的影響的方法擎值。
? ? ? ?“自助法”(bootstrapping)是一個比較好的解決方案慌烧,它直接以自助采樣法為基礎(chǔ)。
自助采樣法:對于初始數(shù)據(jù)集D鸠儿,我們每次隨機從D中放回挑選一個樣本屹蚊,將其放入D’,重復進行m次进每,就得到了包含m個樣本的數(shù)據(jù)集D’汹粤,這就是自助采樣的結(jié)果。
? ? ? ? 顯然田晚,D中有一部分樣本會在D’中重復出現(xiàn)嘱兼,而另一部分樣本不出現(xiàn)∠屯剑可以簡單估計一下芹壕,樣本在m次采樣中始終不被選中的概率為(1-1/m)^m,極限得到
? ? ? ? 反映到宏觀上接奈,即初始數(shù)據(jù)集中大約有36.8%的樣本未出現(xiàn)在采樣數(shù)據(jù)集D’中踢涌。于是我們可將D’用作訓練集,D\D’作為測試集鲫趁。
2.2.4 調(diào)參與最終模型
大多數(shù)學習算法都需要配置參數(shù)斯嚎,參數(shù)選取的不同反應到學得模型的 性能上往往有顯著差別。
最常見的調(diào)參的做法是選定一個值域,然后設(shè)定一個步長堡僻,每隔一個步長測試一次糠惫,選取最佳的參數(shù)。
2.3 性能度量
? ? ? ? 對學習器的泛化性能度量钉疫,不僅需要有效可行的實驗估計硼讽,還需要評價學的模型泛化能力的評價標準,這就是性能度量(performance measure)牲阁。
在預測任務中固阁,給定樣例集 D = {(x1,y1)城菊,(x2备燃,y2), ... 凌唬, (xm并齐,ym)},其中yi是示例xi的真實標記客税。要評估學習器f的性能况褪,就要把學習器預測結(jié)果f(x)與真實標記yi進行比較。
回歸任務中常用的性能度量是“均方誤差”(mean squared error)
更一般的更耻,對于數(shù)據(jù)分布D和概率密度函數(shù)p(·)测垛,均方誤差描述為
下面主要介紹分類任務中常用的性能度量。
2.3.1 錯誤率與精度
對于指示函數(shù)?Ⅱ(·)秧均,當?· 表達式為真值是食侮,Ⅱ(·)=1,反之Ⅱ(·) = 0目胡;
參考回歸任務的均方誤差度量得出分類任務的錯誤率為
精度定義為:
更一般的疙描,對于數(shù)據(jù)分布D和概率密度函數(shù)p(·),錯誤率和精度可以描述為