第二章 模型評(píng)估與選擇

1. 誤差、欠擬合與過擬合

? ? ? ? 在訓(xùn)練過程中,每一次訓(xùn)練并測(cè)試時(shí)都會(huì)發(fā)現(xiàn)有部分樣本識(shí)別錯(cuò)誤瓣颅。我們把識(shí)別錯(cuò)誤樣本占總數(shù)的比例稱為錯(cuò)誤率,定義錯(cuò)誤率E=a/m譬正,其中a為錯(cuò)誤樣本數(shù)宫补,m為樣本總數(shù)檬姥。與其對(duì)應(yīng)的1-a/m則稱為精度。更一般情況守谓,稱實(shí)際輸出與真實(shí)輸出的差異為誤差穿铆,在訓(xùn)練集上的誤差稱為訓(xùn)練誤差經(jīng)驗(yàn)誤差,在測(cè)試時(shí)預(yù)測(cè)的誤差稱為泛化誤差斋荞。當(dāng)然我們希望得到誤差最小荞雏,也即精度最大的模型。那么精度為100%的學(xué)習(xí)器是我們想要的模型嗎平酿?其實(shí)這種模型大多泛化能力不強(qiáng)凤优,因此不會(huì)選取。這里涉及到欠擬合與過擬合蜈彼。

? ? ? ? 當(dāng)學(xué)習(xí)器學(xué)習(xí)樣本準(zhǔn)確率過高時(shí)筑辨,其極有可能把樣本獨(dú)有的特征學(xué)習(xí)到了,而相對(duì)的忽略大多樣本的一般特征幸逆。這種情況稱為過擬合棍辕,一般過擬合的模型泛化能力都相對(duì)較差。相對(duì)的还绘,欠擬合就是模型訓(xùn)練的精度太低楚昭,連樣本的一般特征也沒有學(xué)習(xí)到。這兩種情況在下圖中都有很好的詮釋拍顷。

圖1:過擬合與欠擬合的類比

? ? ? ? 欠擬合很好解決抚太,就是加多數(shù)據(jù),加大訓(xùn)練次數(shù)即可昔案。過擬合較麻煩尿贫,機(jī)器學(xué)習(xí)算法中過擬合無法徹底避免,優(yōu)秀的算法會(huì)想辦法減輕過擬合的影響踏揣。當(dāng)前有多種算法和參數(shù)調(diào)整方法可以建立機(jī)器學(xué)習(xí)模型庆亡,這里涉及到了模型選擇問題,我們應(yīng)當(dāng)有相應(yīng)的評(píng)估和選擇方法可以找到泛化能力最強(qiáng)的模型呼伸。下面將介紹一些模型評(píng)估和選擇的方法身冀。

2. 評(píng)估方法

? ? ? ? 現(xiàn)在已知有數(shù)據(jù)集D,我們的目標(biāo)是將它劃分為訓(xùn)練集S和測(cè)試集T括享,使得模型的學(xué)習(xí)和泛化能力盡可能的被開發(fā)出來搂根。

方法一:留出法

? ? ? ? 留出法思想簡(jiǎn)單,就是將數(shù)據(jù)集D直接劃分為兩個(gè)互斥的集合铃辖,一個(gè)作為訓(xùn)練集剩愧,另一個(gè)作為測(cè)試集。數(shù)據(jù)集在劃分細(xì)節(jié)上也有要求娇斩,我們必須保證在劃分時(shí)整個(gè)數(shù)據(jù)集的標(biāo)簽種類是程均勻分布的仁卷,即保證機(jī)器在訓(xùn)練和測(cè)試時(shí)可以遇到所有情況穴翩。單次使用留出法結(jié)果不夠準(zhǔn)確,因?yàn)椴煌姆址ㄓ?xùn)練和測(cè)試結(jié)果會(huì)不同锦积,所以一般會(huì)多次隨機(jī)劃分訓(xùn)練集和測(cè)試集并進(jìn)行訓(xùn)練測(cè)試芒帕,最終得到的多個(gè)精度取平均得到最后結(jié)果。訓(xùn)練集占數(shù)據(jù)集的比例沒有完美的解決方案丰介,一般經(jīng)驗(yàn)值為2/3~4/5背蟆。

方法二:交叉驗(yàn)證法

? ? ? ? 交叉驗(yàn)證法首先將有m個(gè)樣本的數(shù)據(jù)集D劃分為k個(gè)大小相似的互斥子集,且均保持?jǐn)?shù)據(jù)標(biāo)簽的均勻分布哮幢。每次利用k-1個(gè)子集進(jìn)行訓(xùn)練带膀,剩下的1個(gè)用于測(cè)試,如此嘗試有k種橙垢,我們最終返回k個(gè)結(jié)果的均值垛叨。算法驗(yàn)證的好壞主要取決于k的取值,通常取k=10柜某,所以算法又稱為“十折交叉驗(yàn)證”嗽元,其示意圖如下。相比留出法喂击,交叉驗(yàn)證顯然更加穩(wěn)定與公平还棱。

圖2:十折交叉驗(yàn)證法示意圖

? ? ? ? 當(dāng)k=m這種特殊情況時(shí),每個(gè)樣本被視為一個(gè)自己惭等,則可稱評(píng)估方法為留一法(LOO),該方法不受樣本順序隨機(jī)的影響办铡,所以結(jié)果會(huì)更加準(zhǔn)確辞做。但若數(shù)據(jù)集過大,樣本過多寡具,計(jì)算時(shí)間會(huì)大幅增加秤茅。

方法三:自助法

? ? ? ? 前兩種方法都需要從數(shù)據(jù)集中分訓(xùn)練集和測(cè)試集進(jìn)行學(xué)習(xí)預(yù)測(cè),這種方式會(huì)導(dǎo)致分法不同得到的結(jié)果也不同童叠,留一法不會(huì)有這種情況框喳,但數(shù)據(jù)集過大會(huì)導(dǎo)致算法復(fù)雜度增加。為了可以綜合上述算法的兩種優(yōu)點(diǎn)厦坛,這里提出自助法五垮。

自助法的特點(diǎn)是,訓(xùn)練集和測(cè)試集均出自同一數(shù)據(jù)集杜秸。我們每次從數(shù)據(jù)集中抽取一個(gè)樣本并復(fù)制到訓(xùn)練集中放仗,重復(fù)m次,所以我們有m訓(xùn)練集的樣本撬碟。當(dāng)然這種做法會(huì)出現(xiàn)重復(fù)樣本诞挨,不過我們計(jì)算一個(gè)樣本永遠(yuǎn)不會(huì)被采集到的概率如下:

? ? ? ? ? ? ? ? \mathop {lim}\limits_{m \to \infty } {(1 - \frac{1}{m})^m} \mapsto \frac{1}{e} \approx 0.368

所以當(dāng)樣本足夠多的時(shí)莉撇,我們同樣可以抽出約2/3的部分當(dāng)做訓(xùn)練集,剩下的作為測(cè)試集惶傻。這種算法使得每個(gè)樣本都有被抽中的可能棍郎,這種測(cè)試又稱為“包外估計(jì)”。自助法產(chǎn)生的數(shù)據(jù)集會(huì)改變初始數(shù)據(jù)集的分布银室,所以需要引入估計(jì)偏差涂佃,所以再次強(qiáng)調(diào),在數(shù)據(jù)足夠多的時(shí)粮揉,為了避免計(jì)算麻煩巡李,建議使用前兩者,反之使用該算法扶认。

? ? ? ? 除了以上評(píng)估方法侨拦,每個(gè)算法還需要調(diào)節(jié)參數(shù),因?yàn)閰?shù)的不同訓(xùn)練結(jié)果會(huì)有顯著差異辐宾,所以調(diào)參也很重要狱从,它影響著最終的評(píng)估結(jié)果。事實(shí)上叠纹,調(diào)參也是一種算法選擇季研,在現(xiàn)實(shí)中我們常采用“嘗試”的方法得到一個(gè)相對(duì)較優(yōu)的參數(shù)結(jié)果。首先設(shè)置該參數(shù)的范圍誉察,進(jìn)而設(shè)置步長(zhǎng)与涡,讓計(jì)算機(jī)遍歷每種情況并選擇最好的結(jié)果。一般步長(zhǎng)選擇要慎重持偏,因?yàn)榇笮偷墓こ虆?shù)眾多驼卖,步長(zhǎng)越短代表算法復(fù)雜度越高,消耗的計(jì)算資源越多鸿秆。

? ? ? ? 當(dāng)我們?cè)u(píng)估完畢并選取算法后酌畜,應(yīng)當(dāng)用數(shù)據(jù)集中所有的數(shù)據(jù)進(jìn)行訓(xùn)練,并交付最終的訓(xùn)練模型卿叽。此外為了區(qū)分桥胞,又稱模型評(píng)估選擇的數(shù)據(jù)集為驗(yàn)證集。例如在估計(jì)某訓(xùn)練模型的泛化能力時(shí)考婴,會(huì)將數(shù)據(jù)集劃分為訓(xùn)練集和驗(yàn)證集贩虾,其中驗(yàn)證集的結(jié)果主要用于調(diào)參。

2.3 性能度量方法

? ? ? ? 性能度量主要用于對(duì)機(jī)器學(xué)習(xí)模型性能的量化評(píng)估沥阱。不同的模型整胃,使用不同的度量方法結(jié)果會(huì)不同。所以說評(píng)判結(jié)果是相對(duì)的,模型好壞取決于算法屁使、數(shù)據(jù)和任務(wù)需求在岂。最常用的性能度量方法是均方根誤差,并結(jié)合概率密度定義表征蛮寂,這里不多介紹蔽午,下面將介紹分類任務(wù)中常用的性能度量的方法。建立模型前酬蹋,做如下符號(hào)說明:

樣例集:D=\{(x_1,y_1),(x_2,y_2),...,(x_m,y_m)\}

其中y_ix_i的正確標(biāo)記及老。設(shè)學(xué)習(xí)器為f,則f(x)為預(yù)測(cè)結(jié)果范抓。

2.3.1 錯(cuò)誤率骄恶、精度

錯(cuò)誤率定義:E(f;D) = \frac{1}{m}\sum\limits_{i = 1}^m {\parallel (f({x_i}) \ne {y_i})}

精度定義:acc(f;D) = \frac{1}{m}\sum\limits_{i = 1}^m {\parallel (f({x_i}) = {y_i}) = 1 - E(f;D)}

其中\parallel()是二值符號(hào),括號(hào)內(nèi)邏輯正確為1匕垫,錯(cuò)誤為0僧鲁。

這是分類任務(wù)常用的兩個(gè)方法,適應(yīng)二分類任務(wù)和多分類任務(wù)象泵。我們可以根據(jù)概率密度定義寞秃,利用數(shù)據(jù)分布D和概率分布P對(duì)其做更一般的定義:

錯(cuò)誤率概率分布定義:E(f;D) = \int_{x \sim D} {\parallel (f({x_i}) \ne {y_i})p(x)dx}

精度概率分布定義:acc(f;D) = \int_{x \sim D} {\parallel (f({x_i}) = {y_i})p(x)dx}  = 1 - E(f;D)

2.3.2 查準(zhǔn)率、查全率與F1

? ? ? ? 2.3.1中的方法雖然常用偶惠,但我們有時(shí)候會(huì)關(guān)心訓(xùn)練集或數(shù)據(jù)集中具體訓(xùn)練數(shù)據(jù)如何(好西瓜中我具體分正確多少等)春寿,此時(shí)該方法不滿足需求。所以這里又提出三種方法忽孽,以對(duì)模型進(jìn)行更精確的度量绑改。這里以二分類為分析對(duì)象,則我們可以把預(yù)測(cè)結(jié)果分為四種:真正例兄一、假正例绢淀、真反例、假反例瘾腰,分別用字母TP、FP覆履、TN蹋盆、FN,T表示true硝全、F為false栖雾,P為positive,N為negative伟众。則定義混淆矩陣如下圖:

圖3:分類結(jié)果混淆矩陣


根據(jù)以上符號(hào)假設(shè)析藕,定義查準(zhǔn)率P和查全率R如下:

? ? ? ??P{\text{ = }}\frac{TP}{{TP + FP}},R = \frac{{TP}}{{TP + FN}}

? ? ? ? 查準(zhǔn)率與查全率是矛盾的,可以理解:算法查詢正確的“范圍”(比如西瓜的種類數(shù))擴(kuò)大了凳厢,正確率肯定會(huì)下降账胧,反之亦然竞慢。所以我們應(yīng)當(dāng)在兩者之間取得一平衡點(diǎn),使得機(jī)器學(xué)習(xí)模型評(píng)估效果最佳治泥,而我們可以通過“P-R曲線”找到平衡點(diǎn)筹煮。曲線橫坐標(biāo)為查全率,縱坐標(biāo)為查準(zhǔn)率居夹,在對(duì)機(jī)器學(xué)習(xí)結(jié)果樣例進(jìn)行排序后败潦,計(jì)算器查準(zhǔn)率與查全率,一般性的可以得到類似下圖:

圖4:P-R曲線與尋找平衡點(diǎn)示意圖

? ? ? ? 根據(jù)圖4准脂,我們知道曲線與直線y=x相交的點(diǎn)即為平衡點(diǎn)(BEP)劫扒,這里有多個(gè)平衡點(diǎn)。我們一般認(rèn)為曲線下方面積越大則性能越好狸膏,所以選最外層的一個(gè)沟饥。不過看到最外層與內(nèi)一層的曲線有交叉點(diǎn),這使得我們無法肉眼判斷優(yōu)良环戈。此時(shí)我們可以計(jì)算平衡點(diǎn)的函數(shù)值闷板,越大的代表性能越好。不過書中給出了更精確的量化比較方法院塞,即F1度量法遮晚,公式如下:

? ? ? ??F1{\text{ = }}\frac{{2 \cdot P \cdot R}}{{P + R}} = \frac{{2 \cdot TP}}{{樣例總數(shù) + TP - TN}}

在現(xiàn)實(shí)中,我們有可能對(duì)查準(zhǔn)率和查全率有不同重視程度拦止,所以此時(shí)引出F1度量的一般形式县遣,定義字母和公式如下:

? ? ? ??{F_\beta } = \frac{{(1 + {\beta ^2}) \cdot P \cdot R}}{{{\beta ^2} \cdot P + R}}

其中\beta>0,當(dāng)\beta=1時(shí)退化為F1度量汹族,當(dāng)\beta>1時(shí)對(duì)查全率的權(quán)重更高萧求,當(dāng)\beta<1時(shí)對(duì)查準(zhǔn)率的權(quán)重較高。

? ? ? ? 現(xiàn)在我們討論更一般的情況顶瞒,之前的度量是針對(duì)一組混淆矩陣,現(xiàn)在我們將數(shù)量上升到n個(gè)坑资。解決方案很簡(jiǎn)單嗽仪,第一種方案是:可以通過計(jì)算查準(zhǔn)率與查全率的平均值鲤氢,求得宏查準(zhǔn)率宏查全率相种,帶入F1公式后可求得宏F1度量斤蔓。第二種方案是:先求得真正例等四類數(shù)據(jù)的平均值,再將其們帶入求得幾個(gè)宏數(shù)值旨指。

2.3.3 ROC與AUC

? ? ? ? 機(jī)器學(xué)習(xí)一般的二分類方法是:根據(jù)模型求得一個(gè)0~1的數(shù)低淡,假設(shè)閾值為0.5餐塘,則大于0.5為一類需纳,小于為另一類。根據(jù)模型分類結(jié)果灭必,我們以“最有可能”到“最不可能”方式排序秘狞,定義一截?cái)帱c(diǎn),將樣本分為正例和反例蹈集。截?cái)帱c(diǎn)由認(rèn)為規(guī)定烁试,若給查準(zhǔn)率更高的權(quán)重,則將截?cái)帱c(diǎn)前移拢肆,若給查全率更高權(quán)重减响,則后移靖诗。ROC就是利用據(jù)排序結(jié)果的好壞計(jì)算學(xué)習(xí)器泛化性能。

? ? ? ? ROC全稱為受試者工作特征(Receiver Operating Charactoristic)支示,方法與P-R曲線類似刊橘,也是畫一條曲線稱“ROC圖”,以真正例率(TPR)和為縱坐標(biāo)颂鸿,以正例率(FPR)為橫坐標(biāo)劃出促绵。兩個(gè)新的維度定義如下:

? ? ? ??FPR = \frac{FP}{{TN + FP}},TPR = \frac{{TP}}{{TP + FN}}

這里給出一個(gè)樣例圖如下圖。我們希望畫出來的是a圖嘴纺,但由于數(shù)據(jù)時(shí)離散且有限的败晴,我們只能畫出b圖。

圖5:ROC曲線與AUC的示意圖

繪制過程如下:

給定m^+個(gè)正例和m^-個(gè)反例颖医,根據(jù)模型預(yù)測(cè)結(jié)果排序位衩。

將分類閾值設(shè)置為最大,設(shè)所有的結(jié)果為反例熔萧,沒有正例糖驴。當(dāng)前點(diǎn)的坐標(biāo)則為(0, 0)。

每次將序列中的一個(gè)提出并劃分到正例佛致,設(shè)前一點(diǎn)坐標(biāo)為(x, y)贮缕。當(dāng)該點(diǎn)為真正例,則該點(diǎn)坐標(biāo)記為(x,y+1/m^+)俺榆,若為反正例感昼,則記為(x+1/m^+,y)罐脊。

重復(fù)③定嗓,直至所有點(diǎn)都被劃分為正例,即最后一點(diǎn)坐標(biāo)為(1, 1)萍桌。

? ? ? ? 從圖判斷好壞的標(biāo)準(zhǔn)和P-R圖極其類似宵溅,其判斷依據(jù)就是ROC曲線下面積(Area Under ROC Curve,AUC)上炎。其越大表示性能越好恃逻。因?yàn)辄c(diǎn)都是離散的,所以我們利用求和的方式求得面積藕施,公式如下:

? ? ? ??AUC = \frac{1}{2}\sum\limits_{i = 1}^{m - 1} {({x_{i + 1}} - {x_i})({y_i} + {y_{i + 1}})}

設(shè)D表示數(shù)據(jù)集寇损,+表示正例的,-表示反例的裳食,則定義排序損失(loss)如下:

{l_{rank}} = \frac{1}{{{m^ + }{m^ - }}}\sum\limits_{{x^ + } \in {D^ + }} {\sum\limits_{{x^ - } \in {D^ - }} {\left( {\parallel (f({x^ + }) < f({x^ - })) + \frac{1}{2}\parallel (f({x^ + }) = f({x^ - }))} \right)} }

它與AUC關(guān)系為:AUC=1-l_{rank}

2.3.4 代價(jià)敏感錯(cuò)誤與代價(jià)曲線

? ? ? ? 我們之前幾小節(jié)衡量量化時(shí)矛市,將正確的和錯(cuò)誤的整體內(nèi)部看做平等的,即他們內(nèi)部權(quán)重相等诲祸,但在現(xiàn)實(shí)中并不然浊吏。一次西瓜識(shí)別錯(cuò)誤導(dǎo)致農(nóng)民損失100元與金庫錯(cuò)把小偷放入損失幾個(gè)億對(duì)比憨愉,可以看到錯(cuò)誤是有區(qū)別的,因?yàn)樵斐珊蠊?b>代價(jià)(cost)不同卿捎。為了衡量不同的錯(cuò)誤,我們可以給錯(cuò)誤賦值不同的代價(jià)径密,稱“非均等代價(jià)”午阵。

? ? ? ? 拿二分類舉例,根據(jù)代價(jià)思想享扔,可以設(shè)計(jì)代價(jià)矩陣底桂,如下圖:

圖6:二分類代價(jià)矩陣樣例

其中cost代表代價(jià),角標(biāo)表示矩陣行與列的位置惧眠,一般矩陣主對(duì)角線為0(自己對(duì)自己完全相同籽懦,不會(huì)付出代價(jià))。在考慮非均等代價(jià)前提下氛魁,我們的目標(biāo)是使得整體的錯(cuò)誤代價(jià)最小化暮顺。若將圖6中0類作為正例,1為反例秀存,則可定義敏感代價(jià)錯(cuò)誤率公式如下:

E(f;D;cost) = \frac{1}{m}\left( {\sum\limits_{{x_i}^ +  \in {D^ + }} {\parallel (f({x_i}) \ne {y_i})cos{t_{01}} + \sum\limits_{{x_i}^ -  \in {D^ - }} {\parallel (f({x_i}) \ne {y_i})cos{t_{10}}} } } \right)

我們可以看到公式的變化捶码,在原來判斷的基礎(chǔ)上,針對(duì)不同的情況給出不同的cost權(quán)重或链,這樣代價(jià)會(huì)影響到最終的代價(jià)大小惫恼。

在非均等代價(jià)下,ROC曲線也要改變澳盐,以反映真正的總體期望代價(jià)祈纯,所以這里提出代價(jià)曲線。其橫軸為[0, 1]的正例率代價(jià)叼耙,縱軸是在[0, 1]的歸一化代價(jià)腕窥。它們的公式分別表示如下:

? ? ? ??\eqalign{  & P{( + )_{cost}} = \frac{{p \cdot cos{t_{01}}}}{{p \cdot cos{t_{01}} + (1 - p) \cdot cos{t_{10}}}}  \cr   & cos{t_{norm}} = \frac{{FNR \cdot p \cdot cos{t_{01}} + FPR \cdot (1 - p) \cdot cos{t_{10}}}}{{p \cdot cos{t_{01}} + (1 - p) \cdot cos{t_{10}}}} \cr}

其中p表示樣例為正例率的概率。我們來理解一下這兩個(gè)式子旬蟋。首先根據(jù)圖6油昂,只會(huì)出現(xiàn)假反例假正例兩種可能會(huì)付出錯(cuò)誤代價(jià),那么分母就表示代價(jià)的總量倾贰。其次冕碟,在正例中,我們會(huì)有p的概率出現(xiàn)假正例的可能匆浙,而有p-1的概率在反例中出現(xiàn)假反例可能安寺,所以根據(jù)正例率代價(jià)的意思,第一個(gè)公式分子就代表假反例的總量首尼。最后理解一下歸一化總代價(jià)挑庶,分子中在定義同正例率代價(jià)一樣的代價(jià)總量外言秸,還加上了不同錯(cuò)誤概率的區(qū)分,所以該式分子包含錯(cuò)誤細(xì)分種類迎捺、錯(cuò)誤細(xì)分代價(jià)兩個(gè)細(xì)節(jié)举畸。這兩個(gè)也即總代價(jià)的兩個(gè)特點(diǎn)。根據(jù)公式凳枝,參考ROC中曲線的作圖方法抄沮,可得到下圖:

圖7:代價(jià)曲線與期望總體代價(jià)

? ? ? ? 高中時(shí)應(yīng)該做過線性規(guī)劃吧,當(dāng)時(shí)畫圖利用曲線方程不等式表示陰影部分以限制二維區(qū)域的范圍岖瑰,代價(jià)曲線也是如此叛买。ROC曲線的沒一點(diǎn)對(duì)應(yīng)代價(jià)平面一條直線,因?yàn)檫@些直線是當(dāng)前代價(jià)下的最大值(最糟糕情況)蹋订,所以每個(gè)直線的下方即為總體代價(jià)率挣,也即所有直線下方面積的并集即為期望總體代價(jià),通過計(jì)算比較面積大小露戒,來間接比較模型性能的好壞椒功。

2.4 比較檢驗(yàn)

? ? ? ? 有了之前的評(píng)估方法和性能度量方法,我們就可以開始對(duì)模型的比較了智什,一般的順序是:首先使用評(píng)估方法蛾茉,選擇合適的學(xué)習(xí)器,利用性能度量方法對(duì)不同學(xué)習(xí)結(jié)果測(cè)試撩鹿,然后就進(jìn)行比較了谦炬。比較不是簡(jiǎn)單的比較大小,主要有以下幾個(gè)原因: 如何更精確的比較“泛化”性能节沦,而不是單單“測(cè)試集”上的性能键思。? 測(cè)試集是隨機(jī)的,不同測(cè)試集結(jié)果不同甫贯。? 機(jī)器學(xué)習(xí)算法具有隨機(jī)性吼鳞,相同的模型參數(shù)得到的結(jié)果也會(huì)不同。那么應(yīng)該如何比較叫搁?這節(jié)著重講這個(gè)赔桌,我們主要采用概率論中的假設(shè)檢驗(yàn)法。本節(jié)將介紹兩個(gè)常用假設(shè)檢驗(yàn)方法和結(jié)果常用機(jī)器學(xué)習(xí)性能比較方法渴逻。其中設(shè)公式符號(hào)\varepsilon 表示錯(cuò)誤率疾党,表示性能度量結(jié)果。

2.4.1 比較檢驗(yàn)

統(tǒng)計(jì)中只能計(jì)算測(cè)試的錯(cuò)誤率惨奕,該方法思路是通過測(cè)試錯(cuò)誤率\hat \varepsilon 間接的表示泛化錯(cuò)誤率\varepsilon雪位。假設(shè)是獨(dú)立采樣,若測(cè)試中有m個(gè)樣本梨撞,則整體測(cè)試錯(cuò)誤概率可由二項(xiàng)分布表示如下:

? ? ? ??P(\hat \varepsilon ,\varepsilon ) = C_{\hat \varepsilon  \times m}^m{\varepsilon ^{\hat \varepsilon  \times m}}{(1 - \varepsilon )^{m - \hat \varepsilon  \times m}}

給定\hat \varepsilon 雹洗,則可解P(\hat \varepsilon ,\varepsilon )對(duì)\varepsilon的一階偏導(dǎo)方程可知香罐,P(\hat \varepsilon ,\varepsilon )\varepsilon=\hat \varepsilon時(shí)最大,當(dāng)\varepsilon=0.3時(shí)时肿,對(duì)10個(gè)樣本求解到下圖:

圖8:P(10,0.3)二項(xiàng)分布示意圖

通過二項(xiàng)檢驗(yàn)庇茫,假設(shè)“\varepsilon  \leqslant {\varepsilon _0}”,在1-\alpha的概率內(nèi)螃成,計(jì)算其置信區(qū)間

? ? ? ??\hat \varepsilon  = \max\space\varepsilon\space\space\space\space s.t.\sum\limits_{i = {\varepsilon _0} \times m + 1}^m {C_i^m{\varepsilon ^i}{{(1 - \varepsilon )}^{m - i}} < \alpha }

以上假設(shè)檢驗(yàn)是針對(duì)一個(gè)模型的一個(gè)結(jié)果港令,但有時(shí)我們會(huì)產(chǎn)生多個(gè)結(jié)果,比如采用多次留出法或交叉驗(yàn)證法锈颗,此時(shí)可采用t檢驗(yàn)。設(shè)已測(cè)試k個(gè)錯(cuò)誤率咪惠,設(shè)其均值為\mu 击吱,方差為\sigma ,定義如下:

? ? ? ??\mu  = \frac{1}{k}\sum\limits_{i = 1}^k {{{\hat \varepsilon }_i}} , \space\space\space{\sigma ^2} = \frac{1}{{k - 1}}\sum\limits_{i = 1}^k {{{({{\hat \varepsilon }_i} - \mu )}^2}}

k個(gè)測(cè)試錯(cuò)誤率可看做泛化錯(cuò)誤率\varepsilon_0的獨(dú)立采樣遥昧,T變量:{\tau _t} = \frac{{\sqrt k (\mu  - {\varepsilon _0})}}{\sigma }

服從自由度為k-1的t分布覆醇,如下圖所示:

圖9:k=10的t分布示意圖

使用雙邊假設(shè),圖中陰影部分在[ - \infty ,{t_{ - \alpha /2}}][{t_{\alpha /2}}, + \infty ]兩個(gè)區(qū)間炭臭,若\left| {\mu  - {\varepsilon _0}} \right|[{t_{ - \alpha /2}},{t_{\alpha /2}}]內(nèi)永脓,則接受假設(shè),否則拒絕假設(shè)鞋仍。

2.4.2 交叉驗(yàn)證t檢驗(yàn)

? ? ? ? 設(shè)有學(xué)習(xí)器A和B常摧,均使用k折交叉驗(yàn)證法,得到的錯(cuò)誤率為\varepsilon_i^A\varepsilon_i^B威创,i取值為1到k,其一對(duì)采用的是相同的折數(shù)位置訓(xùn)練的。則可以使用“成對(duì)t檢驗(yàn)”姨伤,這里認(rèn)為若兩個(gè)學(xué)習(xí)器相同谷异,相同折數(shù)的錯(cuò)誤率也相同。算法的具體做法如下:

\Delta i = \varepsilon _i^A - \varepsilon _i^B, 計(jì)算均值和方差吸申。

求變量{\tau _t} = \left| {\frac{{\sqrt k \mu }}{\sigma }} \right|梗劫,若小于t(\alpha/2,k-1),則接受假設(shè)截碴,否則拒絕假設(shè)梳侨,且錯(cuò)誤率小的模型較優(yōu)。

? ? ? ? 之前我們提到日丹,計(jì)算泛化誤差的一個(gè)假設(shè)前提是測(cè)試錯(cuò)誤率是泛化錯(cuò)誤率的獨(dú)立采樣猫妙,但k折交叉驗(yàn)證顯然在多次測(cè)試時(shí)數(shù)據(jù)選用重疊,使得最終的計(jì)算結(jié)果比正常值偏高聚凹。為解決問題割坠,可采用5 \times 2交叉驗(yàn)證齐帚。以下是該方法的實(shí)現(xiàn)過程:

做2折交叉檢驗(yàn),做5次彼哼。

每次2折交叉檢驗(yàn)前將數(shù)據(jù)隨機(jī)打亂对妄,使得五次檢驗(yàn)數(shù)據(jù)分布不同。

設(shè)第n折得到的插值為\Delta_i^n敢朱,每做兩次2折交叉檢驗(yàn)求一次均值\mu=0.5(\Delta_i^k+\Delta_i^{k+1})和方差\sigma _i^2 = {(\Delta _i^k + \frac{{\Delta _i^k + \Delta _i^{k + 1}}}{2})^2} + {(\Delta _i^{k + 1} + \frac{{\Delta _i^k + \Delta _i^{k + 1}}}{2})^2}

利用三步求得的已知剪菱,可求變量T:{\tau _t} = \frac{\mu }{{\sqrt {0.2\sum\limits_{i = 1}^n {\sigma _i^2} } }},其服從自由度為n的t分布拴签,可以通過查表得到結(jié)果孝常。

2.4.3 McNemar檢驗(yàn)

? ? ? ? 該檢驗(yàn)方法最適合二分類問題,使用留出法可估計(jì)學(xué)習(xí)器AB的測(cè)試錯(cuò)誤率蚓哩,還可以得到學(xué)習(xí)器分類結(jié)果差別构灸,可以通過列聯(lián)表展示,示例如下圖:

圖10:學(xué)習(xí)器AB的分類差別列聯(lián)表

? ? ? ? 若兩學(xué)習(xí)器性能形同岸梨,則e_{01}=e_{10}喜颁,均值為1,方差為e_{01}+e_{10}曹阔,所以變量T:

? ? ? ??{\tau _{{\chi ^2}}} = \frac{{{{(\left| {{e_{01}} - {e_{10}}} \right| - 1)}^2}}}{{{e_{01}} + {e_{10}}}}

服從自由度為1的卡方分布半开,設(shè)顯著度為\alpha,則當(dāng)變量結(jié)果小于臨界值\chi_\alpha^2,接受假設(shè)赃份,否則拒絕假設(shè)寂拆。

2.4.5 Friedman檢驗(yàn)與Memenyi后續(xù)檢驗(yàn)

? ? ? ? 前面的幾種檢驗(yàn)方法主要同于比較兩個(gè)學(xué)習(xí)器對(duì)于同一數(shù)據(jù)集的學(xué)習(xí)性能,雖然比較更多算法時(shí)可以兩兩比較抓韩,但不如Friedman檢驗(yàn)直接漓库,它是基于算法排序的,可以直接進(jìn)行多算法比較≡膀穑現(xiàn)在假設(shè)有四個(gè)數(shù)據(jù)集D_i和三個(gè)算法ABC渺蒿,則它的算法過程如下:

使用留出法或交叉檢驗(yàn)法得到每個(gè)算法在每個(gè)數(shù)據(jù)集的測(cè)試結(jié)果,并填入算法比較序值表中彪薛。

在每個(gè)數(shù)據(jù)集中對(duì)每個(gè)算法的性能好壞排序茂装,賦值1,2善延,3等少态,如果兩算法性能相同,則取平均值易遣。表格示例如下圖:

圖11:比較序值表

從表中判算法性能是否相同彼妻,若相同則平均序值相同,否則取平均,示例可見圖11侨歉。

設(shè)存在N個(gè)數(shù)據(jù)集屋摇,比較k個(gè)算法,設(shè)r_i表示第i個(gè)算法的平均序值幽邓,設(shè)其服從正態(tài)分布炮温,均值為(k+1)/2,方差為(k^2-1)/12牵舵,則變量T:

{\tau _{{\chi ^2}}} = \frac{{k - 1}}{k} \cdot \frac{{12N}}{{{k^2} - 1}}\sum\limits_{i = 1}^k {{{({r_i} - \frac{{k + 1}}{2})}^2} = } \frac{{12N}}{{k(k + 1)}}\left( {\sum\limits_{i = 1}^k {({r_i} - \frac{{k{{(k + 1)}^2}}}{4})} } \right)

在k和N較大時(shí)柒啤,變量服從自由度為k-1的卡方分布。上式有些保守畸颅,改進(jìn)的公式將分布變?yōu)镕分布担巩,使得結(jié)果更精確,改變后如下:

? ? ? ??{\tau _F} = \frac{{(N - 1){\tau _{{\chi ^2}}}}}{{N(k - 1){\tau _{{\chi ^2}}}}}

該變量服從自由度為k-1和(k-1)(N-1)的F分布没炒,下圖給出常用臨界值:

圖13:F分布數(shù)值查找表

? ? ? ? 若通過上述檢驗(yàn)比較發(fā)現(xiàn)“所有算法性能相同”的假設(shè)被拒絕涛癌,則說明算法性能顯著不同,此時(shí)要使用Memenyi后續(xù)檢驗(yàn)做進(jìn)一步分析窥浪。其通過下面公式計(jì)算平均序值差別的臨界值域。

? ? ? ??CD = {q_\alpha }\sqrt {\frac{{k(k + 1)}}{{6N}}}

下圖給出幾個(gè)q_\alpha的常用取值:

圖14:常用取值表

? ? ? ? 上述兩個(gè)檢驗(yàn)方法結(jié)合算出結(jié)果后笛丙,可在Friedman檢驗(yàn)圖中直觀的展示漾脂。上述算法ABC的例子得到的結(jié)果展示圖如下:

圖15:Friedman檢驗(yàn)圖示例

圖中橫軸是平均序值,用圓點(diǎn)表示胚鸯,橫線是表示臨界值域骨稿。若算法間橫線有交疊,則兩算法無先出差別姜钳,否則說明有顯著差別坦冠。圖15中A與B有交疊,所以沒有顯著差別哥桥,A與C沒有交疊辙浑,且A序值更高,說明算法A優(yōu)于算法C拟糕。(這里其實(shí)有個(gè)疑問判呕,圖中算法B與算法C交疊,說明B與C無顯著差別送滞,那么根據(jù)傳遞關(guān)系侠草,是不是三者都沒有顯著差別呢?)<1>

2.5 偏差與方差

? ? ? ? 除了評(píng)估泛化性能外犁嗅,我們往往還需要知道模型為什么會(huì)呈現(xiàn)這樣的性能边涕,這是我們就需要使用“偏差-方差分解”(bias-variance decomposition)方法進(jìn)行解釋。它的基本思想是,將學(xué)習(xí)算法評(píng)估得到的期望泛化錯(cuò)誤率進(jìn)行分解功蜓。本節(jié)主要講解其實(shí)現(xiàn)园爷。

2.5.1 符號(hào)說明

? ? ? ? 對(duì)測(cè)試樣本x,令y_Dx在數(shù)據(jù)集中的真實(shí)標(biāo)記霞赫,f(x;D)表示訓(xùn)練集D上學(xué)習(xí)模型fx的預(yù)測(cè)輸出腮介。這里推導(dǎo)以回歸任務(wù)為例。

2.5.2 模型建立與推導(dǎo)

定義期望預(yù)期:\bar f(x) = {{\text{E}}_D}\left[ {f(x;D)} \right]

定義方差:\operatorname{var} (x) = {{\text{E}}_D}\left[ {{{(f(x;D) - f(x))}^2}} \right]

定義噪聲:{\varepsilon ^2} = {{\text{E}}_D}\left[ {{{({y_D} - y)}^2}} \right]

則期望輸出與真實(shí)標(biāo)記的差別稱為偏差端衰,定義為:bia{s^2} = {(\bar f(x) - y)^2}

為便于推導(dǎo)叠洗,設(shè)bias^2=0,推導(dǎo)過程書上寫的很詳細(xì)旅东,也比較重要灭抑,截圖如下:

圖16:推導(dǎo)過程

所以帶入之前定義變量有:E(f;D) = bia{s^2}(x) - \operatorname{var} (x) + {\varepsilon ^2}

也即泛化誤差可分解為偏差、方差和噪聲之和抵代。

2.5.3 理解

? ? ? ? 公式中腾节,偏差表示預(yù)期與真實(shí)結(jié)果的誤差,也即機(jī)器學(xué)習(xí)算法的擬合能力荤牍;方差度量同樣的訓(xùn)練集變動(dòng)案腺,其學(xué)習(xí)性能的變化,也即數(shù)據(jù)擾動(dòng)造成的影響康吵;噪聲表示泛化誤差的下界劈榨,也即學(xué)習(xí)問題本身的難度。推導(dǎo)結(jié)果說明晦嵌,泛化誤差是由這三者組成的同辣。

? ? ? ? 一般情況,偏差與誤差是矛盾的惭载,如下圖所示旱函,(下方的黑線表示偏差,上方黑線表示泛化誤差)這代表我們無法保證每個(gè)指標(biāo)都達(dá)到自身的最佳描滔。當(dāng)訓(xùn)練程度小時(shí)棒妨,由于欠擬合,數(shù)據(jù)預(yù)測(cè)的偏差較大含长,此時(shí)影響泛化誤差變大主要因素是偏差靶衍。當(dāng)訓(xùn)練程度逐漸變大時(shí),模型越來越完善茎芋,偏差會(huì)變小颅眶,方差會(huì)變大。當(dāng)訓(xùn)練程度過大時(shí)田弥,模型過擬合涛酗,雖然偏差非常小,但方差非常大,此時(shí)影響泛化誤差變大的主要因素是方差商叹。根據(jù)理論燕刻,我們應(yīng)當(dāng)給出的訓(xùn)練程度恰好使得泛化誤差最小。


圖17:泛化誤差剖笙、偏差與方差的關(guān)系

2.6 總結(jié)

? ? ? ? 本章學(xué)習(xí)如何評(píng)估與選擇模型卵洗,首先我們知道學(xué)習(xí)模型學(xué)習(xí)程度不同,會(huì)導(dǎo)致欠擬合與過擬合弥咪。然后我們學(xué)習(xí)了模型選擇方法:留出法过蹂、k折交叉驗(yàn)證法、自助法聚至。選擇好模型后就要進(jìn)行性能度量酷勺,本文采取計(jì)算誤差來表征,提到了錯(cuò)誤率扳躬、精度脆诉、查準(zhǔn)率、查全率贷币、F1击胜、ROC、AUC役纹、代價(jià)敏感錯(cuò)誤偶摔、代價(jià)曲線這幾種方法。計(jì)算完性能字管,我們要對(duì)幾個(gè)模型進(jìn)行比較啰挪,本文講了Friedman檢驗(yàn)信不、Memenyi后續(xù)檢驗(yàn)嘲叔、?McNemar檢驗(yàn)、?交叉驗(yàn)證t檢驗(yàn)抽活、?比較檢驗(yàn)這幾種方法硫戈。最后我們講了利用偏差與方差,理解該模型產(chǎn)生性能結(jié)果的原因下硕。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末丁逝,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子梭姓,更是在濱河造成了極大的恐慌霜幼,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件誉尖,死亡現(xiàn)場(chǎng)離奇詭異罪既,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門琢感,熙熙樓的掌柜王于貴愁眉苦臉地迎上來丢间,“玉大人,你說我怎么就攤上這事驹针『娲欤” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵柬甥,是天一觀的道長(zhǎng)饮六。 經(jīng)常有香客問我,道長(zhǎng)暗甥,這世上最難降的妖魔是什么喜滨? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮撤防,結(jié)果婚禮上虽风,老公的妹妹穿的比我還像新娘。我一直安慰自己寄月,他們只是感情好辜膝,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著漾肮,像睡著了一般厂抖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上克懊,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天忱辅,我揣著相機(jī)與錄音,去河邊找鬼谭溉。 笑死墙懂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的扮念。 我是一名探鬼主播损搬,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼柜与!你這毒婦竟也來了巧勤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤弄匕,失蹤者是張志新(化名)和其女友劉穎颅悉,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體迁匠,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡剩瓶,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年秕脓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片儒搭。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吠架,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出搂鲫,到底是詐尸還是另有隱情傍药,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布魂仍,位于F島的核電站拐辽,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏擦酌。R本人自食惡果不足惜俱诸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赊舶。 院中可真熱鬧睁搭,春花似錦、人聲如沸笼平。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽寓调。三九已至锌唾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間夺英,已是汗流浹背晌涕。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留痛悯,地道東北人余黎。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像灸蟆,于是被迫代替她去往敵國(guó)和親驯耻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子亲族,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容