机器学习笔记(二)模型评估与选择
2.模型評(píng)估與選擇
2.1經(jīng)驗(yàn)誤差和過擬合
不同學(xué)習(xí)算法及其不同參數(shù)產(chǎn)生的不同模型,涉及到模型選擇的問題,關(guān)系到兩個(gè)指標(biāo)性,就是經(jīng)驗(yàn)誤差和過擬合。
1)經(jīng)驗(yàn)誤差
錯(cuò)誤率(errorrate):分類錯(cuò)誤的樣本數(shù)占樣本總數(shù)的比例。如果在m個(gè)樣本中有a個(gè)樣本分類錯(cuò)誤,則錯(cuò)誤率E=a/m,相應(yīng)的,1-a/m稱為精度(accuracy),即精度=1-錯(cuò)誤率。
誤差(error):學(xué)習(xí)器的實(shí)際預(yù)測(cè)輸出和樣本的真實(shí)輸出之間的差異。訓(xùn)練誤差或經(jīng)驗(yàn)誤差:學(xué)習(xí)器在訓(xùn)練集上的誤差;泛化誤差:學(xué)習(xí)器在新樣本上的誤差。
自然,理想情況下,泛化誤差越小的學(xué)習(xí)器越好,但現(xiàn)實(shí)中,新樣本是怎樣的并不知情,能做的就是針對(duì)訓(xùn)練集的經(jīng)驗(yàn)誤差最小化。
那么,在訓(xùn)練集上誤差最小、甚至精度可到100%的分類器,是否在新樣本預(yù)測(cè)是最優(yōu)的嗎?
我們可以針對(duì)已知訓(xùn)練集設(shè)計(jì)一個(gè)完美的分類器,但新樣本卻是未知,因此同樣的學(xué)習(xí)器(模型)在訓(xùn)練集上表現(xiàn)很好,但卻未必在新樣本上同樣優(yōu)秀。
2)過擬合
學(xué)習(xí)器首先是在訓(xùn)練樣本中學(xué)出適用于所有潛在樣本的普遍規(guī)律,用于正確預(yù)測(cè)新樣本的類別。這會(huì)出現(xiàn)兩種情況,導(dǎo)致訓(xùn)練集上表現(xiàn)很好的學(xué)習(xí)器未必在新樣本上表現(xiàn)很好。
過擬合(overfitting):學(xué)習(xí)器將訓(xùn)練樣本的個(gè)體特點(diǎn)上升到所有樣本的一般特點(diǎn),導(dǎo)致泛化性能下降。
欠擬合(underfitting):學(xué)習(xí)器未能從訓(xùn)練樣本中學(xué)習(xí)到所有樣本的一般特點(diǎn)。
通俗地說,過擬合就是把訓(xùn)練樣本中的個(gè)體一般化,而欠擬合則是沒學(xué)習(xí)到一般特點(diǎn)。一個(gè)是過猶不及;一個(gè)是差之毫厘。過擬合是學(xué)習(xí)能力太強(qiáng),欠擬合是學(xué)習(xí)能力太弱。
欠擬合通過調(diào)整模型參數(shù)可以克服,但過擬合確實(shí)無法徹底避免。機(jī)器學(xué)習(xí)的問題是NP難,有效的學(xué)習(xí)算法可在多項(xiàng)式時(shí)間內(nèi)完成,如能徹底避免過擬合,則通過經(jīng)驗(yàn)誤差最小化就能獲得最優(yōu)解,這樣構(gòu)造性證明P=NP,但實(shí)際P≠NP,過擬合不可避免。
總結(jié),在模型選擇中,理想的是對(duì)候選模型的泛化誤差進(jìn)行評(píng)估,選擇泛化誤差最小的模型,但實(shí)際上無法直接獲得泛化誤差,需要通過訓(xùn)練誤差來評(píng)估,但訓(xùn)練誤差存在過擬合現(xiàn)象也不適合作為評(píng)估標(biāo)準(zhǔn),如此,如何進(jìn)行模型評(píng)估和選擇呢?
2.2評(píng)估方法
評(píng)估模型既然不能選擇泛化誤差,也不能選擇訓(xùn)練誤差,可以選擇測(cè)試誤差。所謂測(cè)試誤差,就是建立測(cè)試樣本集,用來測(cè)試學(xué)習(xí)器對(duì)新樣本的預(yù)測(cè)能力,作為泛化誤差的近似。
測(cè)試集,也是從真實(shí)樣本分布中獨(dú)立同分布采樣而得,和訓(xùn)練集互斥。通過測(cè)試集的測(cè)試誤差來評(píng)估模型,作為泛化誤差的近似,是一個(gè)合理的方法。對(duì)數(shù)據(jù)集D={(x1,y1), (x2,y2),…, (xm,ym)}進(jìn)行分隔,產(chǎn)生訓(xùn)練集S和測(cè)試集T,通過訓(xùn)練集生成模型,并應(yīng)用測(cè)試集評(píng)估模型。文中有個(gè)很好的例子,就是訓(xùn)練集相當(dāng)于測(cè)試題、而測(cè)試集相當(dāng)于考試題。
現(xiàn)在我們將問題集中在測(cè)試集的測(cè)試誤差上,用以評(píng)估模型。那重要的是,對(duì)數(shù)據(jù)集D如何劃分成訓(xùn)練集和測(cè)試集從而獲得測(cè)試誤差?
1)留出法
留出法(hold-out)將數(shù)據(jù)集D劃分為兩個(gè)互斥的集合,其中一個(gè)集合用作訓(xùn)練集S,另一個(gè)作為測(cè)試集T,即D=SUT,S∩T=?。在S上訓(xùn)練出的模型,用T來評(píng)估其測(cè)試誤差,作為對(duì)泛化誤差的近似估計(jì)。
以二分類任務(wù)為例。假定D包含1000個(gè)樣本,將其劃分為700個(gè)樣本的訓(xùn)練集S和300個(gè)樣本的測(cè)試集T。用S訓(xùn)練后,模型在T上有90個(gè)樣本分類錯(cuò)誤,那么測(cè)試誤差就是90/300=30%,相應(yīng)地,精度為1-30%=70%。
留出法就是把數(shù)據(jù)集一分為不同比例的二,這里面就有兩個(gè)關(guān)鍵點(diǎn),一個(gè)就是如何分?另一個(gè)就是分的比例是多少?
如何分呢?訓(xùn)練集和測(cè)試集的劃分要保持?jǐn)?shù)據(jù)分布的一致性。何意?分層采樣,保持樣本的類別比例相似,就是說樣本中的各類別在S和T上的分布要接近,比如A類別的樣本的比例是S:T=7:3,那么B類別也應(yīng)該接近7:3這個(gè)分布。
在分層采樣之上,也存在不同的劃分策略,導(dǎo)致不同的訓(xùn)練集和測(cè)試集。顯然,單次使用留出法所得到的估計(jì)結(jié)果不夠穩(wěn)定可靠,一般情況下采用若干次隨機(jī)劃分、重復(fù)進(jìn)行試驗(yàn)評(píng)估后取平均值作為評(píng)估結(jié)果。
S和T各自分多少呢?若訓(xùn)練集S過多而測(cè)試集T過小,S越大越接近D,則訓(xùn)練出的模型更接近于D訓(xùn)練出的模型,但T小,評(píng)估結(jié)果可能不夠穩(wěn)定準(zhǔn)確;若訓(xùn)練集S偏小而測(cè)試集T偏多,S和D差距過大,S訓(xùn)練的模型將用于評(píng)估,該模型和D訓(xùn)練出的模型可能有較大差別,從而降低評(píng)估結(jié)果的保證性(fidelity)。S和T各自分多少,沒有完美解決方法,通常做法是二八開。
2)交叉驗(yàn)證法
交叉驗(yàn)證法(crossvalidation)將數(shù)據(jù)集D劃分為k個(gè)大小相似的互斥子集,即D=D1UD2U…UDk,Di∩Dj=?(i≠j);每個(gè)子集Di都盡可能保持?jǐn)?shù)據(jù)分布的一致性,即從D中通過分層采樣所得。訓(xùn)練時(shí),每次用k-1個(gè)子集的并集作為訓(xùn)練集,余下的一個(gè)子集作為測(cè)試集;如此,可獲得k組訓(xùn)練集和測(cè)試集,從而進(jìn)行k次訓(xùn)練和測(cè)試,最終返回k次測(cè)試結(jié)果的均值。k值決定了交叉驗(yàn)證法評(píng)估結(jié)果的穩(wěn)定性和保真性,因此也稱為k折交叉驗(yàn)證或k倍交叉驗(yàn)證,k常取值10、5、20,10折交叉驗(yàn)證示意圖如下:
和留出法一樣,將數(shù)據(jù)集D劃分為k個(gè)子集也是多樣劃分方式,為減小樣本劃分不同而發(fā)生的差別,k折交叉驗(yàn)證通常隨機(jī)使用不同的劃分重復(fù)p次,最后評(píng)估結(jié)果是這p次k折交叉驗(yàn)證結(jié)果的均值,如10次10折交叉驗(yàn)證。
典型的劃分特例留一法(Leave-One-Out,LOO),假設(shè)數(shù)據(jù)集D中包含m個(gè)樣本,令k=m,就是每個(gè)子集只包含一個(gè)樣本。這個(gè)特例,不受隨機(jī)樣本劃分方式的影響,且訓(xùn)練集S只比數(shù)據(jù)集D少一個(gè)樣本,其實(shí)際訓(xùn)練出的模型和期望評(píng)估的用D訓(xùn)練出的模型相似,其評(píng)估結(jié)果比較準(zhǔn)備。當(dāng)然,問題就是一個(gè)樣本一個(gè)子集,一旦樣本過大,訓(xùn)練的模型所需開銷也是極其龐大,且其評(píng)估結(jié)果也未必比其他方法準(zhǔn)確。
實(shí)際,所有算法都是如此,有其優(yōu)點(diǎn)有其缺點(diǎn),各有適用場(chǎng)合,符合性價(jià)比原則。比如留一法,為了提升理論上的準(zhǔn)確性,而犧牲相對(duì)明確龐大的開銷,效益上是否可取,那要看場(chǎng)合了。
3)自助法
在留出法和交叉驗(yàn)證法中,訓(xùn)練集S的樣本數(shù)是小于數(shù)據(jù)集D,因樣本規(guī)模不同會(huì)導(dǎo)致所訓(xùn)練的模型及評(píng)估結(jié)果偏差。留一法雖然S只少一個(gè)樣本,但計(jì)算規(guī)模龐大。那么有沒辦法避免樣本規(guī)模影響且能高效計(jì)算呢?
自助法,基于自助采樣獲取訓(xùn)練集和測(cè)試集。給定包含m個(gè)樣本的數(shù)據(jù)集 ,如何通過自助采樣(可重復(fù)采樣或有放回采樣)產(chǎn)生數(shù)據(jù)集D’呢?自助采樣基本過程是:每次隨機(jī)從D中選一個(gè)樣本,放入D’,然后將該樣本放回初始數(shù)據(jù)集D中,使得該樣本在下次采樣時(shí)仍有可能被采到;這個(gè)過程重復(fù)執(zhí)行m次后,就得到了包含m個(gè)樣本的數(shù)據(jù)集D’,規(guī)模和D一樣,不同的是,D’中部分樣本可能重復(fù)也有部分樣本可能不出現(xiàn)。一個(gè)樣本在m次自助采樣中都沒有被采到的概率是(1-1/m)m,取極限得到:
即通過自助采樣,初始數(shù)據(jù)集D中約有36.8%的樣本未出現(xiàn)在采樣數(shù)據(jù)集D’中。自助采樣后 ,將樣本規(guī)模和數(shù)據(jù)集D一樣的采樣數(shù)據(jù)集D’作為訓(xùn)練集S=D’,將T=D-D’作為測(cè)試集(不在D’中的樣本作為測(cè)試集)。如此,實(shí)際評(píng)估的模型(訓(xùn)練集S訓(xùn)練出的)與期望評(píng)估的模型(數(shù)據(jù)集 D訓(xùn)練出的)使用了同樣的樣本規(guī)模(m個(gè)樣本),同時(shí)又有大概36.8%的樣本(未在采樣數(shù)據(jù)集D’中)作為測(cè)試集T用于測(cè)試,產(chǎn)生的測(cè)試結(jié)果,稱為包外估計(jì)(out-of-bag estimate)。
每個(gè)算法都有自己的使用場(chǎng)合,并不是萬能性地好用高效。自助法自助采樣產(chǎn)生的數(shù)據(jù)集D’也是改變了初始數(shù)據(jù)集D的分布,也會(huì)引入估計(jì)偏差。自助法適用于數(shù)據(jù)集較小、難以有效劃分訓(xùn)練集和測(cè)試。在初始數(shù)據(jù)量足夠時(shí),留出法和交叉驗(yàn)證法更常用一些。為更好地對(duì)模型(學(xué)習(xí)器)進(jìn)行泛化性能評(píng)估,提出了近似的測(cè)試誤差來評(píng)估泛化誤差,也就衍生出了留出法、交叉驗(yàn)證法、自助法的數(shù)據(jù)集劃分方法。實(shí)際上,算法還需要調(diào)參,不同的參數(shù)配置,模型的性能會(huì)有一定差別。在進(jìn)行模型評(píng)估和選擇時(shí),除了選擇算法還有數(shù)據(jù)集劃分方法外,還需要對(duì)算法參數(shù)進(jìn)行設(shè)定或說是調(diào)節(jié)。每一個(gè)算法都有參數(shù)設(shè)定空間,假定算法有3個(gè)參數(shù),每個(gè)參數(shù)有5個(gè)可選值,對(duì)每一組訓(xùn)練集/測(cè)試集來說就有53=125個(gè)模型需要考察。
實(shí)際的學(xué)習(xí)過程中,對(duì)給定包含m個(gè)樣本的數(shù)據(jù)集D,先選定學(xué)習(xí)算法及其參數(shù),然后劃分?jǐn)?shù)據(jù)集訓(xùn)練和測(cè)試,直至選定算法和參數(shù),再應(yīng)用數(shù)據(jù)集D來重新訓(xùn)練模型。在研究對(duì)比不同算法的泛化性能時(shí),用測(cè)試集上的判別效果來評(píng)估模型在實(shí)際使用中的泛化能力,而把訓(xùn)練數(shù)據(jù)另外劃分為訓(xùn)練集和驗(yàn)證集,基于驗(yàn)證集上的性能進(jìn)行模型選擇和調(diào)參。
梳理下幾個(gè)要點(diǎn):1)將數(shù)據(jù)集劃分為:訓(xùn)練集、驗(yàn)證集、測(cè)試集;2)訓(xùn)練集用于訓(xùn)練出模型,驗(yàn)證集用于模型選擇和調(diào)參,測(cè)試集用于近似評(píng)估泛化誤差;3)模型評(píng)估方法有留出法、交叉驗(yàn)證法、自助法,用于算法選擇及參數(shù)設(shè)定。2.3性能度量
通過在訓(xùn)練過程中的評(píng)估方法來判定學(xué)習(xí)器的泛化性能,還需要通過性能度量來考察。換句話來說,選什么模型,通過訓(xùn)練集、驗(yàn)證集、測(cè)試集來實(shí)驗(yàn)評(píng)估選定并輸出;而所輸出的模型,在測(cè)試集中實(shí)的泛化能力,需要通過性能度量工具來度量。這樣理解,基于測(cè)試誤差近似泛化誤差的認(rèn)定,通過劃分?jǐn)?shù)據(jù)集為訓(xùn)練集、驗(yàn)證集、測(cè)試集,并選擇不同的評(píng)估方法和調(diào)整算法參數(shù)來輸出的模型,需要通過性能度量的工具來量化評(píng)估。
不同的性能度量,在對(duì)比不同模型能力時(shí),會(huì)導(dǎo)致不同評(píng)判結(jié)果,因?yàn)槟P偷暮脡氖窍鄬?duì)的。實(shí)際模型的好壞,取決于算法和數(shù)據(jù),取決于訓(xùn)練中調(diào)參和實(shí)驗(yàn)評(píng)估方法,也取決于當(dāng)前任務(wù)的實(shí)際數(shù)據(jù)。
模型訓(xùn)練出來后,進(jìn)行預(yù)測(cè)時(shí),給定樣例集D={(x1,y1), (x2,y2),…, (xm,ym)},其中yi是示例xi的真實(shí)標(biāo)記,要評(píng)估學(xué)習(xí)器f的性能,把學(xué)習(xí)器預(yù)測(cè)結(jié)果f(x)與真實(shí)標(biāo)記y進(jìn)行比較。
預(yù)測(cè)回歸任務(wù)最常用的性能度量是均方誤差(mean squared error):
| 真實(shí)情況 | 預(yù)測(cè)結(jié)果 | |
| 正例 | 反例 | |
| 正例 | TP(真正例) | FN(假反例) |
| 反例 | FP(假正例) | TN(真反例) |
查準(zhǔn)率P和查全率R分別定義為:
P=TP/(TP+FP)
R=TP/(TP+FN)
查準(zhǔn)率和查全率是一對(duì)矛盾的度量,一般來說,查準(zhǔn)率高時(shí),查全率往往偏低;而查全率高時(shí),查準(zhǔn)率往往偏低。在信息檢索中,查準(zhǔn)率就是檢索出的信息有多少比例是用戶感興趣的;查全率則是用戶感興趣的信息有多少被檢索出來。查準(zhǔn)率分母中就包含了那些不是用戶感興趣的信息,但仍被預(yù)測(cè)為是用戶感興趣的而被檢索出來;查全率分母中則包含了那些是用戶感興趣的信息,但為被預(yù)測(cè)為用戶感興趣而被拋棄未檢索出來。
可根據(jù)學(xué)習(xí)器的預(yù)測(cè)結(jié)果對(duì)樣例進(jìn)行排序,排在前面的是學(xué)習(xí)器認(rèn)為最可能是正例的樣本,排在最后的則是學(xué)習(xí)器認(rèn)為最不可能是正例的樣本。按此順序逐個(gè)把樣本作為正例進(jìn)行預(yù)測(cè),則每次可以計(jì)算出當(dāng)前的查全率、查準(zhǔn)率,并以查準(zhǔn)率為縱軸、查全率為橫軸構(gòu)造查準(zhǔn)率-查全率曲線,簡(jiǎn)稱P-R曲線。
P-R曲線是非單調(diào)、不平滑的。P-R曲線可用來評(píng)估學(xué)習(xí)器的優(yōu)劣。若一個(gè)學(xué)習(xí)器的P-R曲線被另一個(gè)學(xué)習(xí)器的P-R曲線完全包住,則后者的性能優(yōu)于前者。如果兩個(gè)學(xué)習(xí)器的曲線發(fā)生交叉,則通過二者面積的大小來比較,面積大的表示查全率和查準(zhǔn)率雙高比較優(yōu)秀,但不太容易計(jì)算曲線(不平滑)的面積,因此通過平衡點(diǎn)(Break-Even Point,簡(jiǎn)稱BEP)來度量。BEP是坐標(biāo)上查準(zhǔn)率等于查全率時(shí)的點(diǎn),平衡點(diǎn)值越大,學(xué)習(xí)器越優(yōu)秀。
用了簡(jiǎn)單的圖來說明,紅色的點(diǎn)就是三條P-R曲線的BEP點(diǎn),學(xué)習(xí)器A的曲線被C包住,C比較優(yōu)秀,而C和B交叉,用面積計(jì)算難以估算,但C的BEP值大于B,所以C比較優(yōu)秀。
ERP過于簡(jiǎn)化,定義F1常量來比較學(xué)習(xí)器P-R曲線的性能:
F1=2*P*R/P+R=2*TP/(樣例總數(shù)+TP-TN)
不同的應(yīng)用場(chǎng)合,對(duì)查全率和查準(zhǔn)率的側(cè)重不同,如在商品推薦中,為盡可能少打擾用戶,希望推薦的內(nèi)容卻是用戶所感興趣的,查準(zhǔn)率更重要;在逃犯信息檢索中,希望盡可能少漏掉逃犯,此時(shí)查全率更重要。對(duì)查準(zhǔn)率和查全率的不同偏好,可用F1度量的一般形式Fβ,定義為:
Fβ=(1+β2)*P*R/((β2*P)+R)
其中β>0度量了查全率對(duì)查準(zhǔn)率的相對(duì)重要性;β=1時(shí)就是標(biāo)準(zhǔn)的F1;β>1時(shí)偏好查全率;β<1時(shí)偏好查準(zhǔn)率。
F1是基于查準(zhǔn)率和查全率的調(diào)和平均(harmonic mean)定義:
1/F1=1/2*(1/P+1/R)
Fβ則是加權(quán)調(diào)和平均:
1/ Fβ=1/(1+β2)*(1/P+β2/R)
與算術(shù)平均(P+R)/2和幾何平均 相比,調(diào)和平均更重視較小值。
幾何平均數(shù):N個(gè)數(shù)據(jù)的連乘積的開N次方根。
算術(shù)平均數(shù):一組數(shù)據(jù)的代數(shù)和除以數(shù)據(jù)的項(xiàng)數(shù)所得的平均數(shù).
調(diào)和平均數(shù):一組數(shù)據(jù)的倒數(shù)和除數(shù)據(jù)的項(xiàng)數(shù)的倒數(shù)。
平方平均數(shù):一組數(shù)據(jù)的平方和除以數(shù)據(jù)的項(xiàng)數(shù)的開方。
對(duì)同一數(shù)據(jù),調(diào)和≤幾何≤算術(shù)≤平方。
進(jìn)行多次訓(xùn)練和測(cè)試、在多個(gè)數(shù)據(jù)集上進(jìn)行訓(xùn)練和測(cè)試、執(zhí)行多分類任務(wù)時(shí)每?jī)蓛深悇e組合對(duì)應(yīng)的混淆矩陣,這些情況系下產(chǎn)生的多個(gè)混淆矩陣,需要估計(jì)算法的全局性能,即在n個(gè)二分類混淆矩陣上考察查準(zhǔn)率和查全率,從而評(píng)估模型性能。這個(gè)有兩種做法,一個(gè)是求得P和R再平均;另一個(gè)是直接對(duì)TP、FP、TN、FN求取平均值后再得P和R值;分別為宏查全率和宏查準(zhǔn)率、微查全率和微查準(zhǔn)率。
3)ROC與AUC
很多學(xué)習(xí)期為測(cè)試樣本產(chǎn)生一個(gè)實(shí)值或概率預(yù)測(cè),然后將這個(gè)預(yù)測(cè)值和分類閾值進(jìn)行比較,若大于閾值則分類正類,否則為反類。對(duì)測(cè)試樣本的實(shí)值或概率預(yù)測(cè)結(jié)果進(jìn)行排序,最可能是正例的排在最前面,最不可能是正例的排在最后面。分類過程就相當(dāng)于在這個(gè)排序中以某個(gè)截?cái)帱c(diǎn)將樣本分為兩部分,前一部分判為正例,后一部分則判為反例。
在不同的應(yīng)用任務(wù)中,可根據(jù)任務(wù)需求來采用不同的截?cái)帱c(diǎn),選擇排序中靠前的位置進(jìn)行截?cái)嘀匾暡闇?zhǔn)率;選擇靠后的位置進(jìn)行截?cái)鄤t重視查全率。排序本身的質(zhì)量好壞,體現(xiàn)了學(xué)習(xí)器在不同任務(wù)下的期望泛化性能的好壞,或者說,一般情況下泛化性能的好壞。ROC曲線正是考量期望泛化性能的性能度量工具,適用于產(chǎn)生實(shí)值或概率預(yù)測(cè)結(jié)果的學(xué)習(xí)器評(píng)估。
ROC(ReceiverOperating Characteristic,受試者工作特征),根據(jù)學(xué)習(xí)器的預(yù)測(cè)結(jié)果對(duì)樣例進(jìn)行排序,按此順序逐個(gè)把樣本作為正例進(jìn)行預(yù)測(cè),每次計(jì)算出兩個(gè)重要量的值,分別作為橫、縱坐標(biāo),即得到ROC曲線。
ROC曲線的縱軸是真正例率(The Positive Rate,TPR),橫軸是假正例率(FalsePositive Rate,FPR),分別定義為:真正例率:TPR=TP/(TP+FN),預(yù)測(cè)的真正例數(shù)和實(shí)際的正例數(shù)比值,有多少真正的正例預(yù)測(cè)準(zhǔn)確;
假正例率:FPR=FP/(TN+FP),預(yù)測(cè)的假正例數(shù)和實(shí)際的反例數(shù)比值,有多少反例被預(yù)測(cè)為正例;
從圖中可以看出ROC曲線的對(duì)角線對(duì)應(yīng)于隨機(jī)猜測(cè)模型,而點(diǎn)(0,1)則對(duì)應(yīng)于將正例排在所有反例之前的理想模型,真正例率是100%。
在實(shí)際任務(wù)中,樣本是有限的,所以不能產(chǎn)生光滑的ROC曲線,而是帶有齒狀的近似ROC曲線。有限個(gè)測(cè)試樣例ROC圖繪制方法:給定m+個(gè)正例和m-個(gè)反例,根據(jù)學(xué)習(xí)器預(yù)測(cè)結(jié)果對(duì)樣例進(jìn)行排序,開始把分類閾值設(shè)為最大(所有樣例均預(yù)測(cè)為反例),此時(shí)真正例率和假正例率均為0,在坐標(biāo)(0,0)處標(biāo)記一個(gè)點(diǎn);然后,依次將分類閾值設(shè)為每個(gè)樣例的預(yù)測(cè)值(依次將每個(gè)樣例劃分為正例),并求解真正例率和假正例率,在相應(yīng)的坐標(biāo)處標(biāo)記一個(gè)點(diǎn)。設(shè)前一個(gè)標(biāo)記點(diǎn)坐標(biāo)為(x,y),當(dāng)前若為真正例,則對(duì)應(yīng)比較點(diǎn)的坐標(biāo)為(x,y+1/ m+);當(dāng)前若為假正例,則對(duì)應(yīng)標(biāo)記的點(diǎn)的坐標(biāo)為(x+1/ m-,y),最后用線段把相鄰的點(diǎn)連接起來即得近似ROC曲線。
接著,自然是要說到用ROC曲線怎么比較學(xué)習(xí)器的優(yōu)劣呢?和P-R曲線相似,若一個(gè)學(xué)習(xí)器的ROC曲線被另一個(gè)學(xué)習(xí)器的曲線完成包住,則后者的性能優(yōu)于前者。若兩個(gè)學(xué)習(xí)器的ROC曲線發(fā)生交叉,要進(jìn)行比較的話,就需要比較ROC曲線下的面積,即AUC(AreaUnder ROC Curve)。
AUC可通過對(duì)ROC曲線下各部分的面積求和而得。假定ROC曲線是由坐標(biāo)為{(x 1,y 1), (x 2,y 2),…, (x m,y m)}的點(diǎn)按序鏈接而形成(x 1=0,x m=1),則AUC估算為:
| 真實(shí)類別 | 預(yù)測(cè)類別 | |
| 第0類 | 第1類 | |
| 第0類 | 0 | cost01 |
| 第1類 | Cost10 | 0 |
如上表,整體學(xué)習(xí)器性能評(píng)估上,不是考慮最小化錯(cuò)誤次數(shù),而是最小化總體代價(jià)。假設(shè)上表的第0類為正類,第1類為反類,令D+和D-分別表示正、反例集合,則代價(jià)敏感(cost-sensitive)錯(cuò)誤率為:
其中FPR是假正例率,FNR=1-TPR是假反例率。代價(jià)曲線的繪制:ROC曲線上的每一點(diǎn)對(duì)應(yīng)了代價(jià)平面上的一條線段,設(shè)ROC曲線上點(diǎn)的坐標(biāo)為(TPR,FPR),則可相應(yīng)計(jì)算出FNR,然后在代價(jià)平面上繪制一條從(0,FPR)到(1,FNR)的線段,線段下的面積表示了該條件下的期望總體代價(jià)。如此,將ROC曲線上的每個(gè)點(diǎn)轉(zhuǎn)化為代價(jià)平面上的一條線段,然后去所有線段的下界,圍城的面積即為在所有條件下學(xué)習(xí)器的期望總體代價(jià)。
5)總結(jié)
對(duì)學(xué)習(xí)器的性能度量是選擇學(xué)習(xí)器的參考,下面對(duì)幾個(gè)性能度量指標(biāo)進(jìn)行分類:
| 類別 | 性能度量指標(biāo) | ||
| 均等代價(jià) | 非均等代價(jià) | ||
| 預(yù)測(cè)分類的學(xué)習(xí)器 | P-R曲線和F1 | 代價(jià)敏感錯(cuò)誤率 | ? |
| 預(yù)測(cè)實(shí)值的學(xué)習(xí)器 | ROC曲線和AUC | 代價(jià)曲線 | |
對(duì)于常用的錯(cuò)誤率和精度,也是用于預(yù)測(cè)分類的學(xué)習(xí)器性能度量。實(shí)際上,不同的任務(wù)需要采用不同的指標(biāo)來度量,同時(shí)在指標(biāo)上具體的側(cè)重也不同。
2.4比較檢驗(yàn)
對(duì)學(xué)習(xí)器的性能評(píng)估,基于測(cè)試集已經(jīng)給出了評(píng)估方法和衡量模型泛化能力的性能度量工具,那么是否就可以通過對(duì)性能度量的值比較來評(píng)估學(xué)習(xí)器優(yōu)劣呢?顯然答案不是那么肯定,因?yàn)闇y(cè)試集上的性能評(píng)估方法和度量工具始終還是測(cè)試集上的,與測(cè)試集本身的選擇有關(guān)系,且機(jī)器學(xué)習(xí)算法本身存在一定隨機(jī)性。統(tǒng)計(jì)假設(shè)檢驗(yàn)(hypothesis test)為學(xué)習(xí)器性能比較提供了重要依據(jù)。
基于假設(shè)檢驗(yàn)結(jié)果可推斷出,在測(cè)試集上觀察到的學(xué)習(xí)器A優(yōu)于B,則A的泛化性能是否在統(tǒng)計(jì)意義上好于B,以及這個(gè)判定的準(zhǔn)確度。也就是說,在測(cè)試集上的評(píng)估和度量,放在統(tǒng)計(jì)意義上進(jìn)一步檢驗(yàn)。以錯(cuò)誤率為性能度量工具,用e表示,介紹假設(shè)檢驗(yàn)方法。
1)單個(gè)學(xué)習(xí)器的假設(shè)檢驗(yàn)
假設(shè)檢驗(yàn)中的假設(shè)是對(duì)學(xué)習(xí)器泛化錯(cuò)誤率分布的某種判斷或猜想。在統(tǒng)計(jì)意義上,對(duì)泛化錯(cuò)誤率的分布進(jìn)行假設(shè)檢驗(yàn)。現(xiàn)實(shí)任務(wù)中,只知測(cè)試錯(cuò)誤率,而不知泛化錯(cuò)誤率,二者有差異,但從直觀上,二者接近的可能性較大,而相差很遠(yuǎn)的可能性很小,因此可基于測(cè)試錯(cuò)誤率推出泛化錯(cuò)誤率的分布。
實(shí)際上,評(píng)估方法和性能度量,正式基于上面這一統(tǒng)計(jì)分布直觀思維來開展,這里更是通過假設(shè)檢驗(yàn)來進(jìn)一步肯定測(cè)試錯(cuò)誤率和泛化錯(cuò)誤率二者接近。
| 數(shù)據(jù)集 | 算法A | 算法B | 算法C |
| D1 | 1 | 2 | 3 |
| D2 | 1 | 2.5 | 2.5 |
| D3 | 1 | 2 | 3 |
| D4 | 1 | 2 | 3 |
| 平均序值 | 1 | 2.125 | 2.875 |
2.5偏差與方差
通過實(shí)驗(yàn)方法估計(jì)的泛化性能,還需要解釋其具有這樣性能的原因,回答為什么具有這樣的性能。偏差-方差分解是解釋學(xué)習(xí)算法泛化性能的一種重要工具。
梳理下模型評(píng)估與選擇的整個(gè)思路:首先模型評(píng)估面臨經(jīng)驗(yàn)誤差和過擬合現(xiàn)象,因此引入測(cè)試集,通過測(cè)試誤差率近似泛化誤差率來評(píng)估模型,提出了評(píng)估方法,并量化度量性能,在此基礎(chǔ)上通過假設(shè)檢驗(yàn)為性能度量提供依據(jù),最后解釋性能,即偏差-方差分解。
偏差-方差分解對(duì)學(xué)習(xí)算法的期望泛化錯(cuò)誤率進(jìn)行拆解。算法在不同訓(xùn)練集上學(xué)得的結(jié)果很可能不同,即便這些訓(xùn)練集是來自同一分布。對(duì)測(cè)試樣本x,令y D為x在數(shù)據(jù)集中的標(biāo)記,y為x的真實(shí)標(biāo)記,f(x;D)為訓(xùn)練集D上學(xué)得模型f在x上的預(yù)測(cè)輸出。以為回歸任務(wù)為例,學(xué)習(xí)算法的期望預(yù)測(cè)為:
正好分解為:偏差、方差和噪聲之和。
偏差度量了學(xué)習(xí)算法的期望預(yù)測(cè)與真實(shí)結(jié)果的偏離程度,即刻畫了學(xué)習(xí)算法本身的擬合能力;方差度量了同樣大小的訓(xùn)練集的電動(dòng)所導(dǎo)致的學(xué)習(xí)性能的變化,即刻畫了數(shù)據(jù)擾動(dòng)所造成的影響;噪聲則表達(dá)了當(dāng)前任務(wù)上任何學(xué)習(xí)算法所能達(dá)到的期望泛化誤差的下界,即刻畫了學(xué)習(xí)問題本身的難度。偏差-分差分解說明,泛化性能是由算法的能力、數(shù)據(jù)的充分性以及學(xué)習(xí)任務(wù)本身的難度所共同決定的。給定學(xué)習(xí)任務(wù),為取得較好的泛化性能,需使偏差較小,即能否重復(fù)擬合數(shù)據(jù),并使方差較小,即使數(shù)據(jù)擾動(dòng)產(chǎn)生的影響小。
然而,偏差和方差是有沖突的,稱為偏差-方差窘境(bias-variance dilemma)。給定學(xué)習(xí)任務(wù)并假定學(xué)習(xí)算法的訓(xùn)練程度,在訓(xùn)練不足時(shí),學(xué)習(xí)器的擬合能力不夠強(qiáng),訓(xùn)練數(shù)據(jù)的擾動(dòng)不足以使學(xué)習(xí)器產(chǎn)生顯著變化,此時(shí)偏差主導(dǎo)泛化錯(cuò)誤率;隨著訓(xùn)練程度的加深,學(xué)習(xí)器的擬合能力逐漸增強(qiáng),訓(xùn)練數(shù)據(jù)所發(fā)生的擾動(dòng)漸漸被學(xué)習(xí)器學(xué)到,方差逐漸主導(dǎo)了泛化錯(cuò)誤率;在訓(xùn)練程度充足后,學(xué)習(xí)器的擬合能力已非常強(qiáng),訓(xùn)練數(shù)據(jù)發(fā)生的輕微擾動(dòng)都會(huì)導(dǎo)致學(xué)習(xí)器發(fā)生顯著變化,若訓(xùn)練數(shù)據(jù)自身的、非全局的特性被學(xué)習(xí)器學(xué)到了,將發(fā)生過擬合。總結(jié)
以上是生活随笔為你收集整理的机器学习笔记(二)模型评估与选择的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习知识点(二)各类型平均数Java
- 下一篇: 机器学习知识点(三)方差和标准差Java