西瓜書學(xué)習(xí)筆記-模型評估與誤差

模型評估與誤差

1 經(jīng)驗(yàn)誤差與過擬合

錯(cuò)誤率:m個(gè)樣本中a個(gè)分錯(cuò),錯(cuò)誤率為:E = a/m
精度:1 - 錯(cuò)誤率
誤差:預(yù)測輸出與真實(shí)輸出的差異
訓(xùn)練誤差:訓(xùn)練集上的誤差
泛化誤差:測試集上的誤差

  • 過擬合
    學(xué)習(xí)器將訓(xùn)練樣本學(xué)的太好,將訓(xùn)練集樣本的特殊性作為一般選擇,這樣會導(dǎo)致泛化能力下降,這一現(xiàn)象稱為過擬合。與之相對的對訓(xùn)練樣本一般性質(zhì)都無法學(xué)好的稱為欠擬合。
2 評估方法

通過實(shí)驗(yàn)測試來對學(xué)習(xí)器的泛化誤差進(jìn)行評估進(jìn)而選擇,為此我們需要一個(gè)測試集,用測試誤差來近似泛化誤差。
一般而言,我們假設(shè)測試樣本的分布符合真是分布。且測試集和訓(xùn)練集盡量互斥。

常見的用來分割數(shù)據(jù)集為測試集和訓(xùn)練集的方法有:

  • 留出法
    直接將數(shù)據(jù)集分為互斥的兩部分。
    D = S ∪ T;S ∩ T = 空
    需要注意的是,要將測試/訓(xùn)練集劃分的盡量保持?jǐn)?shù)據(jù)分布的一致性。
    其缺點(diǎn):
    存在隨機(jī)性,所以單次使用留出法的結(jié)果不夠可靠和穩(wěn)定,通常是取多次的均值。

  • 交叉驗(yàn)證(K折交叉驗(yàn)證)
    將數(shù)據(jù)集D分為K個(gè)互斥的子集,每次選擇其中的K-1個(gè)作為訓(xùn)練集,剩下的一個(gè)作為測試集。這樣一來共有K次訓(xùn)練和測試,結(jié)果返回K次測試的均值。
    其特例稱為留一法,就是使K=數(shù)據(jù)量m。


  • 自助法
    對于有m個(gè)數(shù)據(jù)的數(shù)據(jù)集D,每次隨機(jī)的從中取出一個(gè)樣本并復(fù)制進(jìn)D',然后放回D中。這樣進(jìn)行m次后,我們獲得一個(gè)與數(shù)據(jù)集D一樣大的D',其中由部分重復(fù)。
    我們使用D'作為訓(xùn)練集D\D'作為測試集。
    自助法適用于數(shù)據(jù)集較小的情況,此外因?yàn)閺某跏紨?shù)據(jù)集中產(chǎn)生了多次不同的訓(xùn)練集,有利于集成學(xué)習(xí)。但是因?yàn)橹貜?fù)的樣本,改變了原數(shù)據(jù)集的分布,所以引入了估計(jì)偏差,所以當(dāng)數(shù)據(jù)量足夠時(shí)不常使用。
    測試集總量約為1/3.

3 性能度量

對模型的泛化能力進(jìn)行評估,不僅需要可行的實(shí)驗(yàn)估計(jì)方法,還需要衡量其泛化能力的評價(jià)標(biāo)準(zhǔn),這就是性能度量。

  • 均方誤差
    對于給定的數(shù)據(jù)集D = {(x1,y1),(x2,y2),...,(xn,yn)},yn為xn的真實(shí)標(biāo)記,要評估學(xué)習(xí)器f的性能就要將f(x) 與 y比較。
    回歸任務(wù)中最常見的性能度量就是“均方誤差”
  • 查全率、查準(zhǔn)率與F1
    錯(cuò)誤率和精度雖然常用,單并不能滿足所有需求。例如在信息檢索中,我們更關(guān)心“檢索出的信息中多少是用戶所關(guān)注的”、“用戶關(guān)注的信息有多少被檢索出來了”。所以查準(zhǔn)率 precision(準(zhǔn)確率)和查全率 recall(召回率)更為適用于該需求。
    對于二分類問題,可以將預(yù)測結(jié)果根據(jù)真實(shí)結(jié)果劃分為真正率(true positive)、假正率(false positive)、真反率(true negative)、假反率(false negative)。顯然TP+TN+FP+FN = 樣本總數(shù)。

查全率與查準(zhǔn)率相互矛盾

上圖中,如果一個(gè)學(xué)習(xí)器的P-R曲線完全被另一個(gè)學(xué)習(xí)器的P-R曲線所包裹,那么后者優(yōu)于前者。
平衡點(diǎn)BEP是P = R時(shí)的取值。通過BEP比較可以判斷哪個(gè)學(xué)習(xí)器更加優(yōu)秀。
更常見的是F1度量

當(dāng)應(yīng)用場景對P、R的重視程度不同時(shí):
β > 1時(shí)查全率有更大的影響。

當(dāng)然、當(dāng)我們有多個(gè)混淆矩陣結(jié)果的時(shí)候,可以用取均值的方法獲得宏P(guān)、宏R、宏F1等。

  • ROC與AUC
    很多學(xué)習(xí)器是為測試樣本產(chǎn)生一個(gè)實(shí)數(shù)或概率預(yù)測,然后將這個(gè)預(yù)測值與閾值進(jìn)行比較,大于閾值為正例,否則為反例。因此,我們可以根據(jù)預(yù)測對樣本進(jìn)行排序,將最可能的排在前列,分類過程就相當(dāng)于選擇一個(gè)截?cái)帱c(diǎn),前段為正例。當(dāng)我們需要查準(zhǔn)率較高時(shí),截?cái)帱c(diǎn)靠前;當(dāng)需要查全率較高的時(shí)候,截?cái)帱c(diǎn)靠后。ROC曲線就是基于這個(gè)角度來研究學(xué)習(xí)器的泛化性能的。
    ROC曲線的縱軸為真正例率TPR(True Positive Rate),橫軸為假正例率FPR。

ROC繪制規(guī)則為:
從(0,0)開始,對于給與的m1個(gè)正例和m2個(gè)反例,根據(jù)預(yù)測結(jié)果進(jìn)行排序,依次將這些樣例化為正例,若為真正例,則y值增加 1/m1,否則x值增加 1/m2,最后將這些點(diǎn)連線。所獲得面積為AUC。

  • 代價(jià)敏感錯(cuò)誤率與代價(jià)曲線
    現(xiàn)實(shí)任務(wù)中不同類型的錯(cuò)誤會造成不同的后果,如醫(yī)療中的錯(cuò)診。將健康的人錯(cuò)診為病人遠(yuǎn)沒有將病人錯(cuò)診為健康人的代價(jià)嚴(yán)重。為了衡量不同類型錯(cuò)誤的損失,可以為錯(cuò)誤賦予非均等的代價(jià)。

代價(jià)敏感錯(cuò)誤率為:

在非均等代價(jià)下,ROC曲線不能直接反應(yīng)出學(xué)習(xí)器的期望總代價(jià)。

代價(jià)曲線繪制方法:
設(shè)ROC曲線上某一點(diǎn)坐標(biāo)(TPR,FPR),計(jì)算出FNR = 1 - TPR,在平面繪制(0,F(xiàn)PR)到(1,F(xiàn)NR)的直線,線段下的面積表示了該條件下的期望的總體代價(jià)。ROC上的每個(gè)點(diǎn)都可以轉(zhuǎn)為一條直線,然后取所有直線的下界,所圍成的面積為在所有條件下學(xué)習(xí)器的期望總代價(jià)。

4 比較檢驗(yàn)

上述的評估與度量方法并不能徹底得出學(xué)習(xí)器的性能結(jié)果,原因有以下三點(diǎn):

  1. 結(jié)果是基于測試集的,而非真實(shí)泛化性能。
  2. 測試集上的性能與測試集本身的選擇有關(guān)系。
  3. 學(xué)習(xí)算法有隨機(jī)性。

所以,我們要使用統(tǒng)計(jì)假設(shè)檢驗(yàn)作為重要的依據(jù)。
基于假設(shè)檢驗(yàn)我們可以得出,若測試集上A的表現(xiàn)優(yōu)于B,那么A的泛化性能是否在統(tǒng)計(jì)意義上優(yōu)于B,以及這個(gè)結(jié)論的把握有多大。

  • 假設(shè)檢驗(yàn)
    對學(xué)習(xí)器泛化錯(cuò)誤率分布有某種判斷或猜測,例如錯(cuò)誤率為某個(gè)定值。根據(jù)測試錯(cuò)誤率推出泛化錯(cuò)誤率的分布。
    以錯(cuò)誤率為性能度量,假設(shè)測試錯(cuò)誤率為?^, 泛化錯(cuò)誤率為?。由二項(xiàng)分布(獨(dú)立采樣基礎(chǔ)上)知,泛化錯(cuò)誤率為?的學(xué)習(xí)器被測得測試錯(cuò)誤率為?^
    的概率為:
  • 二項(xiàng)式檢驗(yàn)
    對錯(cuò)誤率小于定值定值a這樣的假設(shè)進(jìn)行檢驗(yàn)。
    假設(shè)檢驗(yàn)需要做的就是假設(shè) ? ≤ ?0在α的顯著度下能否被拒絕。?0是給定的一個(gè)概率值,意味著泛化錯(cuò)誤率不能小于?0,α也是一個(gè)值,常用取值是0.05。如果不能被拒絕,也就意味著有95%的置信度認(rèn)為學(xué)習(xí)器的泛化錯(cuò)誤率不大于?0。

比如?0=0.3,根據(jù)二項(xiàng)分布,如果是10個(gè)樣本,那么有3個(gè)錯(cuò)誤分類的概率最大。
具體計(jì)算時(shí)只需把錯(cuò)誤樣本數(shù)大于3的概率求和,看是否小于α即可。

5 偏差與方差

在估計(jì)了學(xué)習(xí)算法的泛化性能后,我們還希望了解它為什么能具有這樣的性能。“偏差-方差分解”就是用來解釋學(xué)習(xí)算法泛化性能的一種工具。

x:測試樣本
y_D:x在數(shù)據(jù)集上的標(biāo)記
y:x的真是標(biāo)記
f(x,D):為訓(xùn)練集D上學(xué)得的模型f在x上的預(yù)測輸出
f(x)均值:為期望預(yù)測

有E(f;D)=bias2(x)+var(x)+?2
即泛化誤差分解為偏差、方差、噪聲之和。

回顧三者的定義,

  • 偏差:
    度量學(xué)習(xí)算法的期望預(yù)測與真實(shí)結(jié)果的偏離程度,即刻畫了學(xué)習(xí)算法本身的擬合能力
  • 方差:
    度量了同樣大小的訓(xùn)練集的變動所導(dǎo)致的學(xué)習(xí)性能的變化,即刻畫了數(shù)據(jù)擾動所造成的影響
    *噪聲:
    表達(dá)了當(dāng)前任務(wù)下任何學(xué)習(xí)算法所能達(dá)到的期望泛化誤差的下限,即刻畫了學(xué)習(xí)問題本身的難度

偏差-方差分解說明,泛化性能是由學(xué)習(xí)算法的能力、數(shù)據(jù)的充分性及學(xué)習(xí)任務(wù)本身的難度共同決定的。

一般來說,偏差與方差是有沖突的

在訓(xùn)練不足的時(shí)候,學(xué)習(xí)器擬合能力不夠,訓(xùn)練數(shù)據(jù)的擾動不足以影響學(xué)習(xí)器,這個(gè)時(shí)候,偏差主導(dǎo)了泛化錯(cuò)誤率。
當(dāng)訓(xùn)練加深到一定程度的時(shí)候,學(xué)習(xí)器擬合能力加強(qiáng),訓(xùn)練數(shù)據(jù)的擾動逐漸可以被學(xué)習(xí)器學(xué)到,方差主導(dǎo)了泛化錯(cuò)誤率。
訓(xùn)練充足的時(shí)候,學(xué)習(xí)器的擬合能力非常強(qiáng),訓(xùn)練數(shù)據(jù)的輕微擾動都會導(dǎo)致學(xué)習(xí)器的變化,若訓(xùn)練數(shù)據(jù)自身的非全局特性被學(xué)習(xí)器學(xué)到,就發(fā)生了過擬合。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容