上一章绰上,簡(jiǎn)略地介紹了機(jī)器學(xué)習(xí)旨怠,以及數(shù)據(jù)集、數(shù)據(jù)集蜈块、測(cè)試集鉴腻、假設(shè)空間、版本空間等等的相關(guān)概念百揭。這一章就開(kāi)始講模型評(píng)估與選擇了拘哨,因?yàn)闀?shū)上是以“學(xué)習(xí)器”來(lái)稱(chēng)呼模型的,所以下面我也用學(xué)習(xí)器來(lái)進(jìn)行說(shuō)明總結(jié)信峻。
什么是經(jīng)驗(yàn)誤差?
在分類(lèi)樣本時(shí)會(huì)出現(xiàn)分類(lèi)錯(cuò)誤瓮床,我們把分類(lèi)錯(cuò)誤的樣本數(shù)占樣本總數(shù)的比例稱(chēng)為“錯(cuò)誤率”盹舞,精度即正確率,自然是1-錯(cuò)誤率了隘庄。學(xué)習(xí)器的實(shí)際預(yù)測(cè)輸出與樣本實(shí)際輸出之間的差異就稱(chēng)為“誤差”踢步,于訓(xùn)練集就是“經(jīng)驗(yàn)誤差”,于新樣本就是“泛化誤差”丑掺。
什么是過(guò)擬合获印?
我們希望學(xué)習(xí)器能在新樣本的預(yù)測(cè)中有更好的效果,即泛化性能最大化街州。但在學(xué)習(xí)過(guò)程中兼丰,往往會(huì)把訓(xùn)練集中的樣本學(xué)得過(guò)多,使得泛化降低唆缴,就是說(shuō)學(xué)到了訓(xùn)練樣本個(gè)體的特點(diǎn)而不是總體樣本的特點(diǎn)鳍征,或者說(shuō)學(xué)了這個(gè)訓(xùn)練集的特殊點(diǎn),相對(duì)于所有潛在的樣本來(lái)說(shuō)的特點(diǎn)面徽。這就是“過(guò)擬合”艳丛,那么與過(guò)擬合相對(duì)的就是“欠擬合”,反而思之趟紊,便是學(xué)得不到位氮双,樣本的一般性質(zhì)都掌握不了!
因?yàn)檫^(guò)擬合無(wú)法避免霎匈,所以我們想要去減少它的風(fēng)險(xiǎn)。其實(shí)就是對(duì)模型的泛化誤差進(jìn)行評(píng)估唧躲,然后選擇泛化誤差最小那個(gè)造挽。
對(duì)多種學(xué)習(xí)算法碱璃、參數(shù)配置進(jìn)行選擇即模型選擇:
一個(gè)學(xué)習(xí)算法→不同參數(shù)配置→不同模型
評(píng)估方法
在實(shí)驗(yàn)測(cè)試中,只有數(shù)據(jù)集可用饭入,為了對(duì)學(xué)習(xí)器的泛化誤差進(jìn)行評(píng)估嵌器,只能從數(shù)據(jù)集(驗(yàn)證集)中分離出訓(xùn)練集與測(cè)試集,測(cè)試集用于測(cè)試學(xué)習(xí)器對(duì)新樣本的判別能力谐丢,將測(cè)試集上的“測(cè)試誤差”作為泛化誤差的近似爽航。故測(cè)試集要盡可能與訓(xùn)練集互斥。
1. 留出法
直接將數(shù)據(jù)集劃分兩個(gè)互斥的集合乾忱,一個(gè)作訓(xùn)練集讥珍,一個(gè)作測(cè)試集。訓(xùn)練集窄瘟、測(cè)試集的劃分要盡可能保持?jǐn)?shù)據(jù)分布一致性衷佃。即保持訓(xùn)練集和測(cè)試集中樣本類(lèi)別比例相差不大,否則會(huì)產(chǎn)生偏差蹄葱。一般確定訓(xùn)練集與測(cè)試集的樣本比例之后氏义,對(duì)于數(shù)據(jù)集的樣本劃分的方法也有很多,不同劃分方法造成模型評(píng)估結(jié)果也不同图云,所以就要進(jìn)行多次留出法惯悠,隨機(jī)劃分重復(fù)評(píng)估再取平均值作為評(píng)估結(jié)果。對(duì)于留出法竣况,其劃分樣本于訓(xùn)練集與測(cè)試集的比例要適當(dāng)克婶,若是訓(xùn)練集含有大多數(shù)樣本,那么其模型結(jié)果便與數(shù)據(jù)集訓(xùn)練出來(lái)的模型接近丹泉,但是由于測(cè)試集樣本過(guò)少情萤,其評(píng)估結(jié)果就不那么準(zhǔn)確,反之也是一樣的道理摹恨。故常常采取2/3~4/5的樣本作為訓(xùn)練集紫岩,其余作為測(cè)試集。
2. 交叉驗(yàn)證法(k折交叉驗(yàn)證)
將數(shù)據(jù)集劃分為k個(gè)大小相似的互斥子集睬塌,即互不包含泉蝌。每個(gè)子集盡可能保持?jǐn)?shù)據(jù)分布的一致性,即通過(guò)分層采樣得到揩晴。這k個(gè)子集又分出k-1個(gè)作為訓(xùn)練集勋陪,剩下一個(gè)作為測(cè)試集,可以分k次硫兰,進(jìn)行k次訓(xùn)練和測(cè)試诅愚,最終也是求其結(jié)果的均值。同留出法劫映,交叉驗(yàn)證法要隨機(jī)使用不同的劃分重復(fù)多次违孝,最終結(jié)果是多次k折交叉驗(yàn)證結(jié)果的均值刹前。比如“10次10折交叉驗(yàn)證”就會(huì)有100次訓(xùn)練,有100個(gè)訓(xùn)練結(jié)果(模型)雌桑。
交叉驗(yàn)證法有一個(gè)特例喇喉,其名為留一法,就是數(shù)據(jù)集有多少個(gè)樣本校坑,就劃分成多少個(gè)子集拣技,即每個(gè)子集一個(gè)樣本,于是隨機(jī)劃分只會(huì)產(chǎn)生一種結(jié)果耍目,所以這種方法被實(shí)際評(píng)估的模型與期望評(píng)估的用數(shù)據(jù)集訓(xùn)練出來(lái)的模型很相似膏斤。其缺點(diǎn)是當(dāng)數(shù)據(jù)集很大的時(shí)候,用它就需要龐大的計(jì)算量(還未考慮調(diào)參)邪驮。
3. 自助法
上面兩種方法是需要將數(shù)據(jù)集劃分的莫辨,這樣自然會(huì)讓用訓(xùn)練集訓(xùn)練出的模型與用數(shù)據(jù)集訓(xùn)練出來(lái)的模型有一定的估計(jì)偏差。如此毅访,自助法以自助采樣法為基礎(chǔ)衔掸,簡(jiǎn)單地講就是重復(fù)隨機(jī)抽樣,從數(shù)據(jù)集D中進(jìn)行重復(fù)隨機(jī)抽樣m次俺抽,便會(huì)得到一個(gè)含有m個(gè)樣本的數(shù)據(jù)集D1,這就是自助采樣的結(jié)果较曼。
對(duì)于樣本在m次不被采集到的概率:
=
這說(shuō)明了磷斧,D中大概有36.8%的樣本沒(méi)有出現(xiàn)在D1中。于是我們可以把D1作為訓(xùn)練集捷犹,把那約36.8%的樣本作為測(cè)試集弛饭。其優(yōu)點(diǎn)是對(duì)于數(shù)據(jù)集較小、難以有效劃分訓(xùn)練時(shí)很有用萍歉,其缺點(diǎn)就是改變了初始數(shù)據(jù)集的劃分侣颂,這可能會(huì)引入估計(jì)偏差。
調(diào)參與最終模型
什么是調(diào)參枪孩?
上面粗略地提到過(guò)參數(shù)的調(diào)整憔晒,我們在進(jìn)行模型的評(píng)估和選擇時(shí),不僅要對(duì)學(xué)習(xí)算法進(jìn)行選擇蔑舞,還要對(duì)算法參數(shù)進(jìn)行設(shè)定拒担,這便是調(diào)參。
梳理一下:
機(jī)器學(xué)習(xí)中大概有如下步驟:
確定模型----訓(xùn)練模型----使用模型攻询。
模型簡(jiǎn)單說(shuō)可以理解為函數(shù)从撼。
確定模型是說(shuō)自己認(rèn)為這些數(shù)據(jù)的特征符合哪個(gè)函數(shù)。
訓(xùn)練模型就是用已有的數(shù)據(jù)钧栖,通過(guò)一些方法(最優(yōu)化或者其他方法)確定函數(shù)的參數(shù)低零,參數(shù)確定后的函數(shù)就是訓(xùn)練的結(jié)果婆翔,使用模型就是把新的數(shù)據(jù)代入函數(shù)求值。
參閱自:機(jī)器學(xué)習(xí)為什么需要訓(xùn)練掏婶,訓(xùn)練出來(lái)的模型具體又是什么啃奴?
回到調(diào)參,對(duì)于每種參數(shù)都訓(xùn)練出模型是不現(xiàn)實(shí)的气堕,我們應(yīng)對(duì)每個(gè)參數(shù)選定一個(gè)范圍和步長(zhǎng)纺腊,選出的參數(shù)即為候選參數(shù)值(一般10個(gè)以?xún)?nèi)),最終從這些候選參數(shù)值中產(chǎn)生選定值茎芭。這是一種折中的結(jié)果揖膜,是為了使學(xué)習(xí)過(guò)程成為可能。
然鵝梅桩,盡管我們得到了這個(gè)模型壹粟,但這不是最終提交給用戶(hù)的模型,我們需要對(duì)數(shù)據(jù)集重新訓(xùn)練宿百,使用全部樣本以訓(xùn)練出的模型趁仙,才是最終模型。
習(xí)得模型在實(shí)際遇到的數(shù)據(jù)稱(chēng)為測(cè)試數(shù)據(jù)垦页;模型評(píng)估與選擇中用于評(píng)估測(cè)試的數(shù)據(jù)稱(chēng)為"驗(yàn)證集"雀费。例如:在研究對(duì)比不同算法的泛化性能時(shí),用測(cè)試集上的判別效果來(lái)評(píng)估模型在實(shí)際使用中的泛化性能痊焊,而把訓(xùn)練數(shù)據(jù)分為訓(xùn)練集和驗(yàn)證集盏袄,基于驗(yàn)證集上的性能來(lái)進(jìn)行模型選擇和調(diào)參。
性能度量
是衡量模型泛化能力的評(píng)價(jià)標(biāo)準(zhǔn)薄啥。其反映了任務(wù)需求辕羽。對(duì)于給定的樣例集D={(x1,y1),(x2,y2),...,(xm,ym)},其中的y是x的真實(shí)標(biāo)記垄惧,現(xiàn)在要評(píng)估學(xué)習(xí)器f的性能刁愿,于是把f的結(jié)果與y進(jìn)行比較。
回歸任務(wù)——性能度量——“均方誤差”:
=
.
一般的到逊,對(duì)于數(shù)據(jù)分布和概率密度函數(shù)p(·)铣口,均方誤差可以表示為:
.
下面主要介紹分類(lèi)任務(wù)中常用的性能度量。
錯(cuò)誤率與精度
上面這兩種就是分類(lèi)任務(wù)中常用的性能度量啦觉壶!對(duì)于樣例集D枷踏,分類(lèi)錯(cuò)誤率定義如下:
.
【注:Ⅱ(·)是指示函數(shù)。若·(即對(duì)括號(hào)內(nèi)進(jìn)行邏輯判斷)為真則取值為1掰曾,假則取0】
精度定義:
.
一般的:
.?????????????????????????????#錯(cuò)誤率
.????#精度
查準(zhǔn)率旭蠕、查全率與F1(查準(zhǔn)需要的是比例高,查全需要的是數(shù)量全)
對(duì)于真實(shí)類(lèi)別與學(xué)習(xí)器預(yù)測(cè)類(lèi)別的異同,我們可以分為真正例掏熬、假反例佑稠、假正例、真反例旗芬,分別稱(chēng)為T(mén)P舌胶、FN、FP疮丛、TN(T=True幔嫂,F(xiàn)=False,P=Positive誊薄,N=Negative)履恩。這里的真假是針對(duì)學(xué)習(xí)器預(yù)測(cè)結(jié)果來(lái)說(shuō)的。
于是查準(zhǔn)率P與查全率R定義如下:
,
.
這兩個(gè)性能度量是矛盾的呢蔫,呈負(fù)相關(guān)切心。
我們常常根據(jù)學(xué)習(xí)器的預(yù)測(cè)結(jié)果對(duì)樣例進(jìn)行排序,把“最可能”是正例的放在前面片吊。按這個(gè)順序绽昏,逐個(gè)把樣本作為正例進(jìn)行預(yù)測(cè),每次都可以計(jì)算出當(dāng)前的查準(zhǔn)率與查全率俏脊,然后以查準(zhǔn)率為縱軸全谤,查全率為橫軸,作P-R圖如西瓜書(shū)p31爷贫。
若一個(gè)學(xué)習(xí)器的P-R圖完全包含了另一個(gè)认然,則說(shuō)明前者性能更優(yōu)于后者。
但往往會(huì)出現(xiàn)不完全包含沸久,出現(xiàn)交叉的情況,那么我們一般用F1來(lái)對(duì)比衡量余蟹。
在說(shuō)F1度量之前卷胯,先說(shuō)一下平衡點(diǎn)。
平衡點(diǎn)(BEF)是綜合考慮查準(zhǔn)率與查全率的性能度量威酒。是“查準(zhǔn)率 = 查全率”時(shí)的取值窑睁。是一種簡(jiǎn)單的度量。
F1度量:
.→
.
一般形式:
→
.
其中>0度量了查全率對(duì)查準(zhǔn)率的相對(duì)重要性葵孤。
>1時(shí)担钮,查全率有更大的影響,
<1時(shí)尤仍,查準(zhǔn)率有更大的影響箫津。
上面提及到的性能度量的平均值(在各混淆矩陣(其實(shí)就是上面真假正反例的矩陣)上分別計(jì)算出查準(zhǔn)率與查全率,再計(jì)算平均值)稱(chēng)為“宏查準(zhǔn)率”(macro—P)、“宏查全率”(macro—R)以及"宏F1"(macro—F1)苏遥,前兩個(gè)均值就是算術(shù)平均的計(jì)算方式饼拍,相加除以n,最后一個(gè)則是根據(jù)前兩個(gè)計(jì)算得來(lái)田炭,參考上面F1的定義师抄。
上面是一種做法,也可以把混淆矩陣的真假正反例進(jìn)行平均教硫,則有叨吮、
、
瞬矩、
茶鉴,于是可求出“微查準(zhǔn)率”(micro—P)、“微查全率”丧鸯、“微F1”蛤铜。然后你懂的,參考上面寫(xiě)的相關(guān)公式丛肢,代入即可围肥。
ROC曲線與AUC
ROC全稱(chēng)是“受試者工作特征曲線”,根據(jù)預(yù)測(cè)結(jié)果對(duì)樣例進(jìn)行排序蜂怎,然后按順序逐個(gè)把樣本作為正例進(jìn)行預(yù)測(cè)穆刻,以每次計(jì)算出的“真正例率”(TPR)作為縱軸,“假正例率”(FPR)作為橫軸杠步。兩者定義如下:
,
ROC曲線下的面積即為AUC氢伟,是用來(lái)比較當(dāng)兩個(gè)學(xué)習(xí)器的ROC曲線相交不完全包含,要進(jìn)行性能比較時(shí)幽歼,則使用AUC朵锣。AUC的估算:
.
其與排序誤差有緊密聯(lián)系,于是給定個(gè)反例甸私,
個(gè)正例诚些,令
和
分別表示反例、正例的集合皇型。則排序損失定義為:
對(duì)應(yīng)的是ROC曲線之上的面積诬烹,由此有:
.
代價(jià)敏感錯(cuò)誤率與代價(jià)曲線
為何引入代價(jià)?
因?yàn)?......你這樣做是要付出代價(jià)的弃鸦!即為所造成結(jié)果的超額處理绞吁。引入代價(jià)是為了衡量不同類(lèi)型錯(cuò)誤所造成不同的損失,可為錯(cuò)誤賦予“非均等代價(jià)”.
代價(jià)矩陣:
真實(shí)類(lèi)別 | 預(yù)測(cè)類(lèi)型 | --- |
---|---|---|
--- | 第0類(lèi) | 第1類(lèi) |
第0類(lèi) | 0 | |
第1類(lèi) | 0 |
其中表示將第i類(lèi)樣本預(yù)測(cè)為第j類(lèi)樣本的代價(jià)唬格。例如上矩陣中家破,損失程度相差越大颜说,
與
值的差別越大,比較一般是以代價(jià)比值而非絕對(duì)值员舵。(即倍數(shù)關(guān)系)
從前面提到的性能度量脑沿,均是在假設(shè)均等代價(jià)前提下進(jìn)行計(jì)算的,如今引入了非均等代價(jià)马僻,便要對(duì)其考慮在內(nèi)庄拇。
于是將上面代價(jià)矩陣中的第0類(lèi)作正例,第1類(lèi)作反例韭邓,而與
分別表示正例子集和反例子集措近,則以錯(cuò)誤率為例子,“代價(jià)敏感”錯(cuò)誤率為:
除此之外女淑,若令中的
不限取0和1瞭郑,則可定義出多分類(lèi)任務(wù)的代價(jià)敏感性能度量。
那么在非均等代價(jià)下鸭你,ROC曲線無(wú)法直接反映學(xué)習(xí)器的期望總代價(jià)屈张,于是我們引入“代價(jià)曲線”,其橫軸是取值為[0,1]的正例概率代價(jià):
其中p是樣例為正例的概率袱巨,縱軸是取值為[0,1]的歸一化代價(jià):
其中FNR=1-TRP阁谆。ROC曲線上的每一點(diǎn)對(duì)應(yīng)代價(jià)平面上的一條線段,若ROC曲線上一點(diǎn)為(FPR愉老,TPR)則對(duì)應(yīng)一條從(0场绿,F(xiàn)PR)到(1,F(xiàn)NR)的線段嫉入,于是所有線段的下界圍成的面積即為在所有條件下學(xué)習(xí)器的期望總體代價(jià)焰盗。
比較檢驗(yàn)
有了實(shí)驗(yàn)評(píng)估方法和性能度量之后,便是對(duì)學(xué)習(xí)器的泛化性能進(jìn)行比較咒林。此時(shí)為了對(duì)學(xué)習(xí)器進(jìn)行適當(dāng)?shù)谋容^熬拒,統(tǒng)計(jì)假設(shè)檢驗(yàn)為我們進(jìn)行學(xué)習(xí)器性能比較提供了重要依據(jù)。該節(jié)默認(rèn)以錯(cuò)誤率為性能度量垫竞。
假設(shè)檢驗(yàn)
1. 二項(xiàng)檢驗(yàn)
2. t檢驗(yàn)