《機器學習》(周志華)——第二章(模型與評估)總結

2.1經驗誤差與過擬合

錯誤率:分類錯誤的樣本數占樣本總數的比例

精度=1-錯誤率

誤差:學習器的實際預測輸出與樣本的真實輸出之間的差異

訓練誤差/經驗誤差:學習器在訓練集上的誤差

泛化誤差:在新樣本上的誤差

為了得到在新樣本上也能表現好的學習器蹬刷,應該從訓練樣本中盡可能找出適合所有潛在樣本的普遍規(guī)律杯活。如果學習器把訓練樣本學的太好時莉擒,很可能已經把訓練樣本自身的一些特點當做了所有潛在樣本都會具有的一般性質绒障,使泛化功能下降买羞,這叫過擬合磅崭。與其相對的是欠擬合灶芝,指訓練樣本的一般性質未學好宽堆。兩者的直觀類比如圖2.1所示

圖2.1? 過擬合腌紧、欠擬合的直觀類比

現實任務中,我們有很多學習算法可以選擇畜隶,甚至對同一種學習算法壁肋,使用不同參數配置,也會產生不同的模型籽慢。模型選擇問題就是指該選用哪種學習算法浸遗,使用哪種參數配置。

2.2評估方法

我們通常使用測試集來測試學習器對新樣本的判別能力箱亿,以測試集上的測試誤差作為泛化誤差的近似。測試集應該盡可能與訓練集互斥。

假設我們有一個包含m個樣例的數據集D沥曹,要做到既要訓練,又要測試菠赚,可以通過對D進行適當的處理,產生訓練集S和測試集T郑藏,下面是幾種做法

2.2.1留出法

留出法直接將數據集D分為兩個互斥的集合衡查,分別是訓練集S和測試集T

分層采樣:分層采樣(stratified sampling) - zealfory - CSDN博客,鏈接的實例中必盖,仍存在多種劃分方式對數據集D進行分割拌牲,比如把D中的樣本進行排序,可以把前350個正例放在S中歌粥,也可以把后350個正例放在S中塌忽,不同的劃分會導致不同的訓練集/測試集。因此阁吝,單次使用留出法不能保證結果的可靠性砚婆,一般要采用多次隨機劃分,重新進行實驗評估后取平均值作為留出法的評估結果突勇。

劃分的常見做法是將大約2/3~4/5的樣本用于訓練装盯,其余用于測試

2.2.2交叉驗證法

交叉驗證法先將數據集劃分為k個大小相似的互斥子集,每個子集都盡可能保持數據分布的一致性甲馋,即從D中通過分層采樣得到埂奈,用k-1個子集的并集作為訓練集,余下的子集作為測試集定躏,這樣可以獲得k組訓練集/測試集账磺,最終返回k次測試結果的平均值。顯然痊远,交叉驗證法評估結果的穩(wěn)定性和保真性很大程度取決于k垮抗,通常把交叉驗證法稱為k折交叉驗證,k常用的取值有5碧聪、10冒版、20,10折交叉驗證示意圖如圖2.2所示

圖2.2? 10折交叉驗證示意圖

k折交叉驗證通常要使用不同的劃分重復p次逞姿,最終的評估結果是這p次k折交叉驗證結果的均值辞嗡,常見的有10次10折交叉驗證。

若數據集包含m個樣本滞造,令k=m续室,得到交叉驗證法的特例:留一法。因為m個樣本只有唯一的方式劃分為m個子集——每個子集只包含一個樣本谒养,因此不受隨機樣本劃分的影響挺狰。留一法的訓練集比初始數據集只少了一個樣本,使得在絕大多數情況下,留一法中被實際評估的模型與期望評估的用D訓練出來的很相似她渴,因此达址,評估結果往往被認為比較準確。缺陷是在數據集較大時趁耗,訓練m個模型的計算開銷可能難以忍受沉唠,另外留一法的估計結果也未必永遠比其他評估方法準確。

2.2.3自助法

給定包含m個樣本的數據集D苛败,對它采樣產生數據集D’:每次隨機從D中挑選一個樣本满葛,將其拷貝放入D‘,然后再將樣本放回初始數據集D中罢屈,使得該樣本在下次采樣仍有可能被采到嘀韧,這個過程重復執(zhí)行m次,就得到包含m個樣本的數據集D’缠捌,這就是自主采樣的結果锄贷。顯然,D中有一部分樣本會在D‘中多次出現曼月,而另一部分不出現谊却。通過自助采樣,初始數據集D中約有36.8%的樣本未出現在D’中哑芹。實際評估的模型與期望評估的模型都使用m個訓練樣本炎辨,但仍有約1/3的沒在訓練集中的樣本用于測試,這樣的測試結果聪姿,稱“包外估計”

在初始數據量足夠時碴萧,留出法和交叉驗證法更常用,自助法在數據集較小末购,難以有效劃分訓練集/測試集有用破喻。

2.2.4調參與最終模型

對每個參數選定一個范圍和變化步長,例如[0,0.2]范圍內以0.05為步長盟榴,則在5個候選參數值中產生選定值低缩,雖然選定的不是最佳,但通過這個折中學習過程變得可行

在模型選擇完成后曹货,學習算法和參數配置選定,此時用數據集D重新訓練模型讳推,這個模型在訓練過程使用了所有m個樣本顶籽,這就是我們最終提交給用戶的模型

在研究對比不同算法的泛化性能時,我們用測試集上的判別效果來估計模型在實際使用時的泛化能力银觅,而把訓練數據分為訓練集和驗證集礼饱,基于驗證集上的性能來進行模型選擇和調參

2.3性能度量

性能度量:衡量模型泛化能力的評價標準

在預測任務中,要評估學習器f的性能,要把學習器預測結果f(x)與真實標記y進行比較

回歸任務常用的性能度量是“均方誤差”

2.3.1錯誤率與精度

錯誤率:分類錯誤的樣本數占樣本總數的比例

精度:分類正確的樣本數占樣本總數的比例

2.3.2查準率镊绪、查全率與F1

將樣例數據根據其真實類別和學習器預測類別的組合分為四種情形匀伏,如圖2.1所示

圖2.1??分類結果的混淆矩陣

查準率P=TP/(TP+FP)

查全率R=TP/(TP+FN)

查準率可理解為挑出來的西瓜中好瓜的比例。查全率可理解為所有好瓜中有多少比例被挑出來蝴韭。兩者是一對矛盾的度量够颠,一般查準率高,查全率低榄鉴,而查全率高履磨,查準率低。

根據學習器的預測結果對樣例進行排序庆尘,排在最前面的是學習器人認為最可能是正例的樣本剃诅,排在后面的反之,以查準率為縱軸驶忌、查全率為橫軸作圖得到“P-R曲線”矛辕,如圖2.3


圖2.3? P-R曲線與平衡點示意圖

若一個學習器的P-R曲線被另一個學習器的曲線完全包住,則可斷言后者的性能優(yōu)于前者付魔,例如圖2.3所示聊品,學習器A的性能優(yōu)于學習器C。如果兩個學習器的P-R曲線發(fā)生了交叉抒抬,例如圖2.3的學習器A和B杨刨,比較性能有三種辦法:1.比較P-R曲線下面積的大小,它在一定程度下表示學習器在查準率和查全率取得相對“雙高”的比例擦剑,但這個值不太容易估算2.平衡點(BEP)是一個綜合考慮查準率和查全率的性能度量妖胀,它是查準率=查全率時的取值,基于BEP的比較惠勒,認為學習器A優(yōu)于B赚抡,但是BEP還是過于簡化 3.常用的F1度量,F1=\frac{2\times P\times R}{P+R} =\frac{2\times TP}{樣例總數+TP-TN}

F1度量的一般形式F_{\beta } =\frac{(1+\beta ^2)\times P\times R}{(\beta ^2\times P)+R} ,能表達對查準率/查全率的不同偏好,其中\beta >0度量了查全率對查準率的相對重要性纠屋,\beta =1退化為標準的F1涂臣,\beta >1查全率有更大影響,\beta <1查準率有更大影響

在n個二分類混淆矩陣上綜合考察查準率和查全率售担,有兩種做法:

1.先在各混淆矩陣上分別計算查準率和查全率赁遗,再計算平均值,得到宏查準率(macro-P)族铆、宏查全率(macro-R)及相應的宏F1(macro-F1)

2.將各混淆矩陣的對應元素進行平均岩四,得到TP、FP哥攘、TN剖煌、FN的平均值材鹦,基于這些平均值算出微查準率(micro-P)、微查全率(micro-R)和微F1(micro-F1)

2.3.3ROC與AUC

將測試樣本進行排序耕姊,分類過程就相當于在這個排序中以某個截斷點將樣本分為兩部分桶唐,前一部分判作正例,后一部分則判作反例茉兰。

ROC(受試者工作特征):根據學習器的預測結果對樣例進行排序尤泽,按此順序逐個把樣本作為正例進行預測,計算真正例率(TPR)和假正例率(FPR)邦邦,分別作為ROC曲線的縱軸和橫軸安吁。兩者定義為

圖2.4(a)是ROC圖的示意圖,對角線對應隨機猜測模型燃辖,而(0鬼店,1)對應將所有正例排在反例之前的理想模型。現實任務中通常利用有限個測試樣例來繪制ROC圖黔龟,無法產生圖2.4(a)的光滑曲線妇智,只能繪制出圖2.4(b)所示的近似ROC曲線。

ROC曲線繪制過程:給定m+個正例和m-個反例氏身,根據學習器預測結果對樣例進行排序巍棱,把所有樣例均預測為反例,此時TPR和FPR均為0蛋欣,在(0,0)處標記一個點航徙,然后依次將每個樣例劃分為正例,設前一個標記點坐標為(x,y)陷虎,當前若為真正例到踏,則對應標記點的坐標為(x,y+1/m+),當前若為假正例尚猿,則對應標記點坐標為(x+1/m+,y)窝稿,然后用線段連接相鄰點即可

圖2.4? ROC曲線與AUC示意圖

類似P-R圖,若一個學習器的ROC曲線被另一個學習器的曲線包住凿掂,則可斷言后者性能優(yōu)于前者伴榔;若兩個學習器的ROC曲線交叉,可以通過比較ROC曲線下的面積庄萎,即AUC來判斷踪少。

AUC可估算為

給定m+個正例和m-個反例,令D+和D-分別表示正糠涛、反例集合秉馏,排序“損失”定義為

2.3.4代價敏感錯誤率與代價曲線

為權衡不同類型錯誤所造成的不同損失,可為錯誤賦予“非均等代價”

以二類任務為例脱羡,設定一個“代價矩陣”萝究,如表2.2所示,其中cost_{ij} 表示將i類樣本預測為第j類樣本的代價

表2.2? 二分類代價矩陣

在非均等代價下锉罐,我們希望最小化“總體代價”帆竹,而不是簡單地最小化錯誤次數

將表2.2中的第0類作為正類、第1類作為反類脓规,D+與D-分別代表樣例集D的正例子集和反例子集栽连,則“代價敏感”錯誤率為

非均等代價下,代價曲線可以反映出學習器的期望總體代價侨舆。代價曲線圖的橫軸是取值為[0,1]的正例概率代價(其中p是樣例為正例的概率)

縱軸是取值為[0,1]的歸一化代價(其中FPR是假正例率秒紧,FNR=1-TPR是假反例率)

代價曲線的繪制:ROC曲線上每個點對應代價平面上的一條線段,設ROC曲線上點的 坐標為(TPR,FPR)挨下,再相應計算出FNR熔恢,然后在代價平面上繪制一條從(0,FPR)到(1,FNR)的線段,線段下的面積表示該條件下的期望總體代價臭笆,將ROC曲線上的每個點都轉化成代價平面上的一條線段叙淌,取所有線段的下界,圍成的面積為在所有條件下學習器的期望總體代價愁铺,如圖2.5所示

圖2.5? 代價曲線與期望總體代價

2.4比較檢驗

2.4.1假設檢驗

假設檢驗中的“假設”是對學習器泛化錯誤率分布的某種判斷或猜想鹰霍,下面是兩種對單個學習器泛化性能的假設進行檢驗的方法

1.在包含m個樣本的測試集上,泛化錯誤率為\epsilon 的學習器被測得測試錯誤率為\hat{\epsilon } 的概率:

這符合二項分布茵乱,如圖2.6所示茂洒,若\epsilon =0.3,則10個樣本中測得3個被誤分類的概率最大

圖2.6? 二項分布示意圖(m=10瓶竭,\epsilon =0.3)

根據二項分布可以得到結論:在a的顯著度下督勺,假設“\epsilon \leq \epsilon _{0} ”不能被拒絕,即能以1-a的置信度認為在验,學習器的泛化錯誤率不大于\epsilon _{0} 玷氏,否則該假設可被拒絕,即在a的置信度下可認為學習器的泛化率大于\epsilon _{0}

2.通過多次重復留出法或交叉驗證法進行多次訓練腋舌,此時可使用t檢驗盏触,假設得到了k個測試錯誤率\hat{\epsilon _{1} },\hat{\varepsilon _{2} } ...\hat{\varepsilon _{k} } ,則平均測試錯誤率\mu 和方差\sigma ^2

k個測試錯誤率可看作泛化錯誤率\epsilon _{0} 的獨立采樣块饺,則變量

服從自由度為k-1的t分布赞辩,如圖2.7所示

圖2.7? t分布示意圖(k=10)

這里考慮雙邊假設,若平均錯誤率\mu \epsilon _{0} 之差|\mu -\epsilon _{0} |位于臨界值范圍[t_{-a/2} ,t_{a/2} ]內授艰,則不能拒絕假設“u=\epsilon _{0} ”,即可認為泛化錯誤率為\epsilon _{0} 辨嗽,置信度為1-a,否則可拒絕該假設淮腾,即在該顯著度下可認為泛化錯誤率與\epsilon _{0} 有顯著不同

2.4.2交叉驗證t檢驗

在一個數據集上比較兩個學習器的算法

對k折交叉驗證產生的k對測試錯誤率:先對每對結果求差(\Delta _{i} =\epsilon _{i}^A- \epsilon _{i}^B)糟需,若兩個學習器性能相同屉佳,則差值均值為0,根據差值\Delta _{i} 對“學習器A洲押、B性能相同”假設做t檢驗武花,在顯著度a下,變量

小于臨界值t_{a/2,k-1} 杈帐,則假設不能被拒絕体箕,即兩個學習器的性能沒有顯著差別。

不同輪次的訓練集可能有重疊挑童,導致過高估計假設成立累铅,這時可以采用5X2交叉驗證法,即5次2折交叉驗證站叼,每次2折交叉驗證前隨機打亂數據娃兽,使得數據劃分不重復。學習器A和B第i次2折交叉驗證產生兩隊測試錯誤率大年,求差后的得到第1折的差值\Delta _{i}^1 和第2折差值\Delta _{i}^2换薄,每次2折實驗都計算出方差

變量

服從自由度為5的t分布,雙邊檢驗的臨界值為t_{a/2翔试,5}

2.4.3McNemar檢驗

在一個數據集上比較兩個學習器的算法

兩個學習期分類結果的差別如表2.4所示

假設兩學習器性能相同轻要,則e_{01}= e_{10},變量|e_{01}-e_{10}|服從正態(tài)分布 ,均值為1垦缅,方差為e_{01}+e_{10}冲泥,則變量

服從自由度為1的\chi ^2 分布,在顯著度a下壁涎,當以上變量小于臨界值\chi _{a}^2凡恍,不能拒絕該假設,即認為兩學習器的性能沒有顯著差別怔球,反之有顯著差別嚼酝,且平均錯誤率較小的學習器較優(yōu)

2.4.4Friedman檢驗與Nemenyi檢驗

Friedman檢驗是基于算法排序

假定使用留出法或交叉驗證法得到每個算法在每個數據集的測試結構,在每個數據集上根據測試性能由好到壞排序竟坛,賦予序值1闽巩,2...若測試性能相同,則平分序值担汤。例如,D1上涎跨,A最好,其次B崭歧,最后C隅很,在D2上,A最好率碾,B和C性能相同叔营,可列出表2.5,最后一行對每一列的序值求平均屋彪,得到平均序值

表2.5? 算法比較序值表

用Friedman檢驗判斷這些算法是否性能都相同,若相同绒尊,則平均序值相同撼班。假設N個數據集上比較k個算法,r_{i} 表示第i個算法的平均序值垒酬,“原始Friedman檢驗”過于保守,常使用變量

這個變量服從自由度為k-1和(k-1)(N-1)的F分布件炉。若“所有算法的性能都相同”這個假設被拒絕勘究,說明算法性能顯著不同,可用戶Nemenyi后續(xù)檢驗來進一步區(qū)別算法斟冕。它計算出平均序值差別的臨界值域

表2.7? Nemenyi檢驗中常用的q_{a}

以表2.5數據為例口糕,根據式(2.34)和(2.35)計算出\tau _{F} =24.429,查表可知磕蛇,它大于a=0.05時的F檢驗臨界值5.143景描,因此拒絕“所有算法性能相同”的假設,再使用Nemenyi后續(xù)檢驗秀撇,表2.7中k=3時q_{0.05} =2.344超棺,根據式(2.36)計算CD=1.657,由表2.5知呵燕,算法A與C棠绘、算法B與C的平均序值差距均未超過臨界值域,而算法A與C的差距超過了再扭,因此認為算法A與C的性能顯著不同氧苍,算法A與C、算法B與C的性能沒有顯著差別

圖2.8所示是Friedman檢驗圖泛范,可以看出让虐,算法A與B的臨界值域橫線段有交疊,表示沒有顯著差別罢荡,算法A與C橫線段沒有交疊區(qū)域赡突,表示A優(yōu)于C。

2.5偏差與方差

對測試樣本x柠傍,令y_{D} 為x在數據集的標記麸俘,y為x的真實標記,f(x;D)為訓練集D上學得模型f在x上的預測輸出惧笛,以回歸任務為例从媚,學習算法的期望預測為

樣本數相同的不同訓練集產生的方差為

噪聲為

期望輸出與真實標記的差別為偏差,即

通過計算得到泛化誤差可分解為偏差患整、方差與噪聲之和

偏差度量了學習算法的期望預測與真實結果的偏離程度拜效,刻畫了學習算法本身的擬合能力喷众。方差度量了同樣大小的數據集的變動導致的學習性能的變化,刻畫了數據擾動造成的影響紧憾。噪聲度量了在當前任務上任何學習算法所能達到的期望泛化誤差的下界到千,刻畫了學習問題本身的難度。偏差-方差分解說明赴穗,泛化性能是由學習算法的能力憔四、數據的充分性和學習任務本身的難度共同決定的。

偏差-方差窘境表示偏差與方差是有沖突的般眉,如圖2.9所示了赵,訓練不足時,學習器的擬合能力不夠強甸赃,訓練數據的擾亂不足以使學習器發(fā)生顯著變化柿汛,此時偏差主導了泛化錯誤率,隨著訓練程度加深埠对,學習器的擬合能力增強络断,訓練數據發(fā)生的擾動漸漸被學習器學到,此時方差主導泛化錯誤率项玛,訓練程度充足后貌笨,學習器的擬合能力很強 ,訓練發(fā)生的輕微擾動都能使學習器發(fā)生顯著變化稍计,若訓練數據自身的躁绸,非全局的特性被學習器學到將發(fā)生過擬合。

圖2.9? 泛化誤差與偏差臣嚣、方差的關系示意圖

本章總結:本章講述利用各種評估方法(例如留出法净刮、交叉驗證法,自助法等)硅则,將數據集劃分為訓練集和測試集淹父,使用測試集的判別效果來估計學習器在新樣本上的泛化能力。通過各種性能度量(例如錯誤率怎虫,精度暑认,查準率,查重率大审、F1蘸际,ROC曲線等)來衡量模型泛化能力。利用各種比較檢驗方法(例如交叉驗證t檢驗徒扶,McNemar檢驗等)來比較學習器的性能粮彤。

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子导坟,更是在濱河造成了極大的恐慌屿良,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件惫周,死亡現場離奇詭異尘惧,居然都是意外死亡,警方通過查閱死者的電腦和手機递递,發(fā)現死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門喷橙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人登舞,你說我怎么就攤上這事重慢。” “怎么了逊躁?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長隅熙。 經常有香客問我稽煤,道長,這世上最難降的妖魔是什么囚戚? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任酵熙,我火速辦了婚禮,結果婚禮上驰坊,老公的妹妹穿的比我還像新娘匾二。我一直安慰自己,他們只是感情好拳芙,可當我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布察藐。 她就那樣靜靜地躺著,像睡著了一般舟扎。 火紅的嫁衣襯著肌膚如雪分飞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天睹限,我揣著相機與錄音譬猫,去河邊找鬼。 笑死羡疗,一個胖子當著我的面吹牛染服,可吹牛的內容都是我干的。 我是一名探鬼主播叨恨,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼柳刮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起诚亚,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤晕换,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后站宗,有當地人在樹林里發(fā)現了一具尸體闸准,經...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年梢灭,在試婚紗的時候發(fā)現自己被綠了夷家。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡敏释,死狀恐怖库快,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情钥顽,我是刑警寧澤义屏,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站蜂大,受9級特大地震影響闽铐,放射性物質發(fā)生泄漏。R本人自食惡果不足惜奶浦,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一兄墅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧澳叉,春花似錦隙咸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至瓶殃,卻和暖如春概荷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背碌燕。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工误证, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人修壕。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓愈捅,卻偏偏與公主長得像,于是被迫代替她去往敵國和親慈鸠。 傳聞我的和親對象是個殘疾皇子蓝谨,可洞房花燭夜當晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內容