如何評(píng)價(jià)模型好壞

數(shù)據(jù)集(訓(xùn)練&驗(yàn)證&測(cè)試)評(píng)價(jià)分類結(jié)果混淆矩陣分類評(píng)價(jià)指標(biāo)準(zhǔn)確率precision:召回率recallF1-score曲線ROC曲線PR曲線 概念偏差和方差偏差方差產(chǎn)生的原因偏差方差平衡總結(jié)

學(xué)習(xí)目標(biāo)

  • 數(shù)據(jù)拆分:訓(xùn)練數(shù)據(jù)集&測(cè)試數(shù)據(jù)集

  • 評(píng)價(jià)分類結(jié)果:準(zhǔn)確率precision、混淆矩陣、精確率、召回率recall、F1score、ROC曲線

  • 評(píng)價(jià)回歸結(jié)果:MSE、RMSE、MAE、R-Squred

  • 了解模型的偏差方差

數(shù)據(jù)集(訓(xùn)練&驗(yàn)證&測(cè)試)

https://en.wikipedia.org/wiki/Training,_validation,_and_test_sets

機(jī)器學(xué)習(xí)的普遍任務(wù)就是從數(shù)據(jù)中學(xué)習(xí)和構(gòu)建模型(該過程稱之為訓(xùn)練),并且能夠在將來(lái)遇到的數(shù)據(jù)上進(jìn)行預(yù)測(cè)。用于構(gòu)建最終模型的數(shù)據(jù)集通常有多個(gè);在構(gòu)建模型的不同階段,通常有三種數(shù)據(jù)集:訓(xùn)練集、驗(yàn)證集和測(cè)試集。

首先,模型在訓(xùn)練集(training dataset)上進(jìn)行擬合。對(duì)于監(jiān)督式學(xué)習(xí),訓(xùn)練集是由用來(lái)擬合參數(shù)(例如人工神經(jīng)網(wǎng)絡(luò)中神經(jīng)元之間鏈接的權(quán)重)的樣本組成的集合。在實(shí)踐中,訓(xùn)練集通常是由輸入向量(標(biāo)量)和輸出向量(標(biāo)量)組成的數(shù)據(jù)對(duì)。其中輸出向量(標(biāo)量)被稱為目標(biāo)或標(biāo)簽。在訓(xùn)練過程中,當(dāng)前模型會(huì)對(duì)訓(xùn)練集中的每個(gè)樣本進(jìn)行預(yù)測(cè),并將預(yù)測(cè)結(jié)果與目標(biāo)進(jìn)行比較。根據(jù)比較的結(jié)果,學(xué)習(xí)算法會(huì)更新模型的參數(shù)。模型擬合的過程可能同時(shí)包括特征選擇和參數(shù)估計(jì)。

接下來(lái),擬合得到的模型會(huì)在第二個(gè)數(shù)據(jù)集——驗(yàn)證集(validation dataset)上進(jìn)行預(yù)測(cè)。在對(duì)模型的超參數(shù)(例如神經(jīng)網(wǎng)絡(luò)中隱藏層的神經(jīng)元數(shù)量)進(jìn)行調(diào)整時(shí),驗(yàn)證集提供了對(duì)在訓(xùn)練集上擬合得到模型的無(wú)偏評(píng)估。驗(yàn)證集可用于正則化中的提前停止:在驗(yàn)證集誤差上升時(shí)(這是在訓(xùn)練集上過擬合的信號(hào)),停止訓(xùn)練。不過,在實(shí)踐中,由于驗(yàn)證集誤差在訓(xùn)練過程中會(huì)有起伏,這種做法有時(shí)不奏效。由此,人們發(fā)明了一些規(guī)則,用做判定過擬合更好的信號(hào)。

最后,測(cè)試集(test dataset)可被用來(lái)提供對(duì)最終模型的無(wú)偏評(píng)估。若測(cè)試集在訓(xùn)練過程中從未用到(例如,沒有被用在交叉驗(yàn)證當(dāng)中),則它也被稱之為預(yù)留集。

評(píng)價(jià)分類結(jié)果

指標(biāo)都是為了衡量模型的泛化能力,

混淆矩陣

P(預(yù)測(cè)為正) N(預(yù)測(cè)為負(fù))
T(實(shí)際為正) TP FN
F(實(shí)際為負(fù)) FP TN

T/F是指預(yù)測(cè)是否正確,P/N 表示預(yù)測(cè)結(jié)果。

  • TP 表示預(yù)測(cè)為正,且預(yù)測(cè)正確;

  • FN 表示預(yù)測(cè)為負(fù),且預(yù)測(cè)錯(cuò)誤;

  • FP 表示預(yù)測(cè)為正,且預(yù)測(cè)錯(cuò)誤;

  • TN表示預(yù)測(cè)為負(fù),且預(yù)測(cè)正確。

分類評(píng)價(jià)指標(biāo)

https://mp.weixin.qq.com/s/zeOviV1rjcSSwk79FznnNA

準(zhǔn)確率precision:

預(yù)測(cè)為正的樣本中有多少是正的樣本。?precison = \frac{TP}{TP+FP}

召回率recall

正樣本中有多少被預(yù)測(cè)正確了。?recall = \frac{TP}{TP+FN}

召回率的應(yīng)用場(chǎng)景:比如拿網(wǎng)貸違約率為例,相對(duì)好用戶,我們更關(guān)心壞用戶,不能錯(cuò)放過任何一個(gè)壞用戶。因?yàn)槿绻覀冞^多的將壞用戶當(dāng)成好用戶,這樣后續(xù)可能發(fā)生的違約金額會(huì)遠(yuǎn)超過好用戶償還的借貸利息金額,造成嚴(yán)重償失。召回率越高,代表實(shí)際壞用戶被預(yù)測(cè)出來(lái)的概率越高,它的含義類似:寧可錯(cuò)殺一千,絕不放過一個(gè)。

F1-score

通常,如果想要找到二者之間的一個(gè)平衡點(diǎn),我們就需要一個(gè)新的指標(biāo):F1分?jǐn)?shù)。F1分?jǐn)?shù)同時(shí)考慮了查準(zhǔn)率和查全率,讓二者同時(shí)達(dá)到最高,取一個(gè)平衡。F1分?jǐn)?shù)的公式為 = 2查準(zhǔn)率查全率 / (查準(zhǔn)率 + 查全率)。**我們?cè)趫D中看到的平衡點(diǎn)就是F1分?jǐn)?shù)得來(lái)的結(jié)果。

F1Score指準(zhǔn)確率和召回率的綜合得分。?F1Score = \frac{2PR}{P+R}

曲線

ROC曲線

ROC曲線全稱是‘受試者工作曲線’。ROC曲線越遠(yuǎn)離對(duì)角線,模型效果越好。如果要比較兩個(gè)分類器的性能孰優(yōu)孰劣,可以比較ROC曲線下的區(qū)域面積即為AUC值,AUC值越接近1模型的效果越好。

ROC 曲線下面積是,對(duì)于隨機(jī)選擇的正類別樣本確實(shí)為正類別(recall),以及隨機(jī)選擇的負(fù)類別樣本為正類別(fpr),分類器更確信前者的概率。

縱軸:真正例率TPR=TP/(TP+FN),也就是召回率Recall;

橫軸:假正例率FPR=FP/(FP+TN)。

img

FPR表示模型虛報(bào)的響應(yīng)程度,而TPR表示模型預(yù)測(cè)響應(yīng)的覆蓋程度。我們所希望的當(dāng)然是:虛報(bào)的越少越好,覆蓋的越多越好。所以總結(jié)一下就是TPR越高,同時(shí)FPR越低(即ROC曲線越陡),那么模型的性能就越好。參考如下動(dòng)態(tài)圖進(jìn)行理解

img

ROC曲線無(wú)視樣本不平衡

前面已經(jīng)對(duì)ROC曲線為什么可以無(wú)視樣本不平衡做了解釋,下面我們用動(dòng)態(tài)圖的形式再次展示一下它是如何工作的。我們發(fā)現(xiàn):**無(wú)論紅藍(lán)色樣本比例如何改變,ROC曲線都沒有影響。

img

PR曲線

PR圖反應(yīng)了分類器在不同閾值下識(shí)別正例的準(zhǔn)確率和覆蓋率之間的權(quán)衡。

在一些應(yīng)用中,對(duì)查全率和查準(zhǔn)率的重視程度有所不同。推薦系統(tǒng)中,更希望推薦商品是用戶感興趣的,此時(shí)查準(zhǔn)率更重要;逃犯信息檢索中,更希望少漏掉逃犯,查全率更重要,可以通過加權(quán)計(jì)算F1值來(lái)比較性能。

縱軸:查準(zhǔn)率Precision=TP/(TP+FP),

橫軸:查全率Recall=TP/(TP+FN)。

Precison,Recall的分子都是TP,分母一個(gè)是TP+FP,一個(gè)是TP+FN。兩者的關(guān)系可以由PR圖來(lái)表示

img

概念

偏差和方差

偏差和方差的定義如下:

  • 偏差(bias):偏差衡量了模型的預(yù)測(cè)值與實(shí)際值之間的偏離關(guān)系。例如某模型的準(zhǔn)確度為96%,則說(shuō)明是低偏差;反之,如果準(zhǔn)確度只有70%,則說(shuō)明是高偏差。

    偏差bias = training error

  • 方差(variance):方差描述的是訓(xùn)練數(shù)據(jù)在不同迭代階段的訓(xùn)練模型中,預(yù)測(cè)值的變化波動(dòng)情況(或稱之為離散情況)。從數(shù)學(xué)角度看,可以理解為每個(gè)預(yù)測(cè)值與預(yù)測(cè)均值差的平方和的再求平均數(shù)。通常在模型訓(xùn)練中,初始階段模型復(fù)雜度不高,為低方差;隨著訓(xùn)練量加大,模型逐步擬合訓(xùn)練數(shù)據(jù),復(fù)雜度開始變高,此時(shí)方差會(huì)逐漸變高。

    方差variance=training error - dev

也可以通過下面的圖片直觀理解偏差和方差:

img
  • 如左下角的“打靶圖”,假設(shè)我們的目標(biāo)是中心的紅點(diǎn),所有的預(yù)測(cè)值都偏離了目標(biāo)位置,這就是偏差;

  • 在右上角的“打靶圖”中,預(yù)測(cè)值圍繞著紅色中心周圍,沒有大的偏差,但是整體太分散了,不集中,這就是方差。

以上四種情況:

  • 低偏差,低方差:這是訓(xùn)練的理想模型,此時(shí)藍(lán)色點(diǎn)集基本落在靶心范圍內(nèi),且數(shù)據(jù)離散程度小,基本在靶心范圍內(nèi);

  • 低偏差,高方差:這是深度學(xué)習(xí)面臨的最大問題,過擬合了。也就是模型太貼合訓(xùn)練數(shù)據(jù)了,導(dǎo)致其泛化(或通用)能力差,若遇到測(cè)試集,則準(zhǔn)確度下降的厲害;

  • 高偏差,低方差:這往往是訓(xùn)練的初始階段;

  • 高偏差,高方差:這是訓(xùn)練最糟糕的情況,準(zhǔn)確度差,數(shù)據(jù)的離散程度也差

模型誤差 = 偏差 + 方差 + 不可避免的誤差(噪音)。一般來(lái)說(shuō),隨著模型復(fù)雜度的增加,方差會(huì)逐漸增大,偏差會(huì)逐漸減小,見下圖:

[圖片上傳失敗...(image-d63233-1586095778322)]

偏差方差產(chǎn)生的原因

一個(gè)模型有偏差,主要的原因可能是對(duì)問題本身的假設(shè)是不正確的,或者欠擬合。如:針對(duì)非線性的問題使用線性回歸;或者采用的特征和問題完全沒有關(guān)系,如用學(xué)生姓名預(yù)測(cè)考試成績(jī),就會(huì)導(dǎo)致高偏差。

方差表現(xiàn)為數(shù)據(jù)的一點(diǎn)點(diǎn)擾動(dòng)就會(huì)較大地影響模型。即模型沒有完全學(xué)習(xí)到問題的本質(zhì),而學(xué)習(xí)到很多噪音。通常原因可能是使用的模型太復(fù)雜,如:使用高階多項(xiàng)式回歸,也就是過擬合。

有一些算法天生就是高方差的算法,如kNN算法。非參數(shù)學(xué)習(xí)算法通常都是高方差,因?yàn)椴粚?duì)數(shù)據(jù)進(jìn)行任何假設(shè)。

有一些算法天生就是高偏差算法,如線性回歸。參數(shù)學(xué)習(xí)算法通常都是高偏差算法,因?yàn)閷?duì)數(shù)據(jù)有跡象。

偏差方差平衡

偏差和方差通常是矛盾的。降低偏差,會(huì)提高方差;降低方差,會(huì)提高偏差。

這就需要在偏差和方差之間保持一個(gè)平衡。

以多項(xiàng)式回歸模型為例,我們可以選擇不同的多項(xiàng)式的次數(shù),來(lái)觀察多項(xiàng)式次數(shù)對(duì)模型偏差&方差的影響:

img
多項(xiàng)式次數(shù) 模型復(fù)雜度 方差 偏差 過/欠擬合
欠擬合
適度
過擬合

下面是多項(xiàng)式次數(shù)對(duì)訓(xùn)練誤差/測(cè)試誤差的影響:

img
多項(xiàng)式次數(shù) 模型復(fù)雜度 訓(xùn)練誤差 測(cè)試誤差

關(guān)于解決方差和偏差的問題中:

我們要知道偏差和方差是無(wú)法完全避免的,只能盡量減少其影響。

  1. 在避免偏差時(shí),需盡量選擇正確的模型,一個(gè)非線性問題而我們一直用線性模型去解決,那無(wú)論如何,高偏差是無(wú)法避免的。
  2. 有了正確的模型,我們還要慎重選擇數(shù)據(jù)集的大小,通常數(shù)據(jù)集越大越好,但大到數(shù)據(jù)集已經(jīng)對(duì)整體所有數(shù)據(jù)有了一定的代表性后,再多的數(shù)據(jù)已經(jīng)不能提升模型了,反而會(huì)帶來(lái)計(jì)算量的增加。而訓(xùn)練數(shù)據(jù)太小一定是不好的,這會(huì)帶來(lái)過擬合,模型復(fù)雜度太高,方差很大,不同數(shù)據(jù)集訓(xùn)練出來(lái)的模型變化非常大。
  3. 最后,要選擇合適的模型復(fù)雜度,復(fù)雜度高的模型通常對(duì)訓(xùn)練數(shù)據(jù)有很好的擬合能力。

其實(shí)在機(jī)器學(xué)習(xí)領(lǐng)域,主要的挑戰(zhàn)來(lái)自方差。處理高方差的手段有:

  • 降低模型復(fù)雜度
  • 減少數(shù)據(jù)維度;降噪
  • 增加樣本數(shù)
  • 使用驗(yàn)證集

總結(jié)

偏差衡量了模型的預(yù)測(cè)值與實(shí)際值之間的偏離關(guān)系,主要的原因可能是對(duì)問題本身的假設(shè)是不正確的,或者欠擬合。方差描述的是模型預(yù)測(cè)值的變化波動(dòng)情況(或稱之為離散情況),模型沒有完全學(xué)習(xí)到問題的本質(zhì),通常原因可能是使用的模型太復(fù)雜,過擬合。

參數(shù)或者線性的算法一般是高偏差低方差;非參數(shù)或者非線性的算法一般是低偏差高方差。所以我們需要調(diào)整參數(shù)來(lái)去衡量方差和偏差的關(guān)系。

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

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

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