數(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è)為正的樣本中有多少是正的樣本。?
召回率recall
正樣本中有多少被預(yù)測(cè)正確了。?
召回率的應(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)確率和召回率的綜合得分。?
曲線
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)。

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)行理解
ROC曲線無(wú)視樣本不平衡
前面已經(jīng)對(duì)ROC曲線為什么可以無(wú)視樣本不平衡做了解釋,下面我們用動(dòng)態(tài)圖的形式再次展示一下它是如何工作的。我們發(fā)現(xiàn):**無(wú)論紅藍(lán)色樣本比例如何改變,ROC曲線都沒有影響。
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)表示
概念
偏差和方差
偏差和方差的定義如下:
-
偏差(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
也可以通過下面的圖片直觀理解偏差和方差:
如左下角的“打靶圖”,假設(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ì)模型偏差&方差的影響:
| 多項(xiàng)式次數(shù) | 模型復(fù)雜度 | 方差 | 偏差 | 過/欠擬合 |
|---|---|---|---|---|
| 低 | 低 | 低 | 高 | 欠擬合 |
| 中 | 中 | 中 | 中 | 適度 |
| 高 | 高 | 高 | 低 | 過擬合 |
下面是多項(xiàng)式次數(shù)對(duì)訓(xùn)練誤差/測(cè)試誤差的影響:
| 多項(xiàng)式次數(shù) | 模型復(fù)雜度 | 訓(xùn)練誤差 | 測(cè)試誤差 |
|---|---|---|---|
| 低 | 低 | 高 | 高 |
| 中 | 中 | 中 | 低 |
| 高 | 高 | 低 | 高 |
關(guān)于解決方差和偏差的問題中:
我們要知道偏差和方差是無(wú)法完全避免的,只能盡量減少其影響。
- 在避免偏差時(shí),需盡量選擇正確的模型,一個(gè)非線性問題而我們一直用線性模型去解決,那無(wú)論如何,高偏差是無(wú)法避免的。
- 有了正確的模型,我們還要慎重選擇數(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)的模型變化非常大。
- 最后,要選擇合適的模型復(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)系。