數(shù)據(jù)集(訓練&驗證&測試)評價分類結(jié)果混淆矩陣分類評價指標準確率precision:召回率recallF1-score曲線ROC曲線PR曲線 概念偏差和方差偏差方差產(chǎn)生的原因偏差方差平衡總結(jié)
學習目標
數(shù)據(jù)拆分:訓練數(shù)據(jù)集&測試數(shù)據(jù)集
評價分類結(jié)果:準確率precision华嘹、混淆矩陣、精確率法竞、召回率recall耙厚、F1score、ROC曲線
評價回歸結(jié)果:MSE岔霸、RMSE薛躬、MAE、R-Squred
了解模型的偏差方差
數(shù)據(jù)集(訓練&驗證&測試)
https://en.wikipedia.org/wiki/Training,_validation,_and_test_sets
機器學習的普遍任務(wù)就是從數(shù)據(jù)中學習和構(gòu)建模型(該過程稱之為訓練)呆细,并且能夠在將來遇到的數(shù)據(jù)上進行預(yù)測型宝。用于構(gòu)建最終模型的數(shù)據(jù)集通常有多個;在構(gòu)建模型的不同階段侦鹏,通常有三種數(shù)據(jù)集:訓練集诡曙、驗證集和測試集。
首先略水,模型在訓練集(training dataset)上進行擬合价卤。對于監(jiān)督式學習,訓練集是由用來擬合參數(shù)(例如人工神經(jīng)網(wǎng)絡(luò)中神經(jīng)元之間鏈接的權(quán)重)的樣本組成的集合渊涝。在實踐中慎璧,訓練集通常是由輸入向量(標量)和輸出向量(標量)組成的數(shù)據(jù)對。其中輸出向量(標量)被稱為目標或標簽跨释。在訓練過程中胸私,當前模型會對訓練集中的每個樣本進行預(yù)測,并將預(yù)測結(jié)果與目標進行比較鳖谈。根據(jù)比較的結(jié)果岁疼,學習算法會更新模型的參數(shù)。模型擬合的過程可能同時包括特征選擇和參數(shù)估計缆娃。
接下來捷绒,擬合得到的模型會在第二個數(shù)據(jù)集——驗證集(validation dataset)上進行預(yù)測。在對模型的超參數(shù)(例如神經(jīng)網(wǎng)絡(luò)中隱藏層的神經(jīng)元數(shù)量)進行調(diào)整時贯要,驗證集提供了對在訓練集上擬合得到模型的無偏評估暖侨。驗證集可用于正則化中的提前停止:在驗證集誤差上升時(這是在訓練集上過擬合的信號),停止訓練崇渗。不過字逗,在實踐中京郑,由于驗證集誤差在訓練過程中會有起伏,這種做法有時不奏效葫掉。由此些举,人們發(fā)明了一些規(guī)則,用做判定過擬合更好的信號挖息。
最后金拒,測試集(test dataset)可被用來提供對最終模型的無偏評估。若測試集在訓練過程中從未用到(例如套腹,沒有被用在交叉驗證當中)绪抛,則它也被稱之為預(yù)留集。
評價分類結(jié)果
指標都是為了衡量模型的泛化能力电禀,
混淆矩陣
P(預(yù)測為正) | N(預(yù)測為負) | |
---|---|---|
T(實際為正) | TP | FN |
F(實際為負) | FP | TN |
T/F是指預(yù)測是否正確幢码,P/N 表示預(yù)測結(jié)果。
TP 表示預(yù)測為正尖飞,且預(yù)測正確症副;
FN 表示預(yù)測為負,且預(yù)測錯誤政基;
FP 表示預(yù)測為正贞铣,且預(yù)測錯誤;
TN表示預(yù)測為負沮明,且預(yù)測正確辕坝。
分類評價指標
https://mp.weixin.qq.com/s/zeOviV1rjcSSwk79FznnNA
準確率precision:
預(yù)測為正的樣本中有多少是正的樣本。?
召回率recall
正樣本中有多少被預(yù)測正確了荐健。?
召回率的應(yīng)用場景:比如拿網(wǎng)貸違約率為例酱畅,相對好用戶,我們更關(guān)心壞用戶江场,不能錯放過任何一個壞用戶纺酸。因為如果我們過多的將壞用戶當成好用戶,這樣后續(xù)可能發(fā)生的違約金額會遠超過好用戶償還的借貸利息金額址否,造成嚴重償失餐蔬。召回率越高,代表實際壞用戶被預(yù)測出來的概率越高佑附,它的含義類似:寧可錯殺一千用含,絕不放過一個。
F1-score
通常帮匾,如果想要找到二者之間的一個平衡點,我們就需要一個新的指標:F1分數(shù)痴鳄。F1分數(shù)同時考慮了查準率和查全率瘟斜,讓二者同時達到最高,取一個平衡。F1分數(shù)的公式為 = 2查準率查全率 / (查準率 + 查全率)螺句。**我們在圖中看到的平衡點就是F1分數(shù)得來的結(jié)果虽惭。
F1Score指準確率和召回率的綜合得分。?
曲線
ROC曲線
ROC曲線全稱是‘受試者工作曲線’蛇尚。ROC曲線越遠離對角線芽唇,模型效果越好。如果要比較兩個分類器的性能孰優(yōu)孰劣取劫,可以比較ROC曲線下的區(qū)域面積即為AUC值匆笤,AUC值越接近1模型的效果越好。
ROC 曲線下面積是谱邪,對于隨機選擇的正類別樣本確實為正類別(recall)炮捧,以及隨機選擇的負類別樣本為正類別(fpr),分類器更確信前者的概率惦银。
縱軸:真正例率TPR=TP/(TP+FN),也就是召回率Recall咆课;
橫軸:假正例率FPR=FP/(FP+TN)。
FPR表示模型虛報的響應(yīng)程度扯俱,而TPR表示模型預(yù)測響應(yīng)的覆蓋程度书蚪。我們所希望的當然是:虛報的越少越好,覆蓋的越多越好迅栅。所以總結(jié)一下就是TPR越高殊校,同時FPR越低(即ROC曲線越陡),那么模型的性能就越好库继。參考如下動態(tài)圖進行理解
ROC曲線無視樣本不平衡
前面已經(jīng)對ROC曲線為什么可以無視樣本不平衡做了解釋箩艺,下面我們用動態(tài)圖的形式再次展示一下它是如何工作的。我們發(fā)現(xiàn):**無論紅藍色樣本比例如何改變宪萄,ROC曲線都沒有影響艺谆。
PR曲線
PR圖反應(yīng)了分類器在不同閾值下識別正例的準確率和覆蓋率之間的權(quán)衡。
在一些應(yīng)用中拜英,對查全率和查準率的重視程度有所不同静汤。推薦系統(tǒng)中,更希望推薦商品是用戶感興趣的居凶,此時查準率更重要虫给;逃犯信息檢索中,更希望少漏掉逃犯侠碧,查全率更重要抹估,可以通過加權(quán)計算F1值來比較性能。
縱軸:查準率Precision=TP/(TP+FP)弄兜,
橫軸:查全率Recall=TP/(TP+FN)药蜻。
Precison,Recall的分子都是TP瓷式,分母一個是TP+FP,一個是TP+FN语泽。兩者的關(guān)系可以由PR圖來表示
概念
偏差和方差
偏差和方差的定義如下:
-
偏差(bias):偏差衡量了模型的預(yù)測值與實際值之間的偏離關(guān)系贸典。例如某模型的準確度為96%,則說明是低偏差踱卵;反之廊驼,如果準確度只有70%,則說明是高偏差惋砂。
偏差bias = training error
-
方差(variance):方差描述的是訓練數(shù)據(jù)在不同迭代階段的訓練模型中妒挎,預(yù)測值的變化波動情況(或稱之為離散情況)。從數(shù)學角度看班利,可以理解為每個預(yù)測值與預(yù)測均值差的平方和的再求平均數(shù)饥漫。通常在模型訓練中,初始階段模型復(fù)雜度不高罗标,為低方差庸队;隨著訓練量加大,模型逐步擬合訓練數(shù)據(jù)闯割,復(fù)雜度開始變高彻消,此時方差會逐漸變高。
方差variance=training error - dev
也可以通過下面的圖片直觀理解偏差和方差:
如左下角的“打靶圖”宙拉,假設(shè)我們的目標是中心的紅點宾尚,所有的預(yù)測值都偏離了目標位置,這就是偏差谢澈;
在右上角的“打靶圖”中煌贴,預(yù)測值圍繞著紅色中心周圍,沒有大的偏差锥忿,但是整體太分散了牛郑,不集中,這就是方差敬鬓。
以上四種情況:
低偏差淹朋,低方差:這是訓練的理想模型,此時藍色點集基本落在靶心范圍內(nèi)钉答,且數(shù)據(jù)離散程度小础芍,基本在靶心范圍內(nèi);
低偏差数尿,高方差:這是深度學習面臨的最大問題仑性,過擬合了。也就是模型太貼合訓練數(shù)據(jù)了右蹦,導致其泛化(或通用)能力差诊杆,若遇到測試集鲫懒,則準確度下降的厲害;
高偏差刽辙,低方差:這往往是訓練的初始階段;
高偏差甲献,高方差:這是訓練最糟糕的情況宰缤,準確度差,數(shù)據(jù)的離散程度也差
模型誤差 = 偏差 + 方差 + 不可避免的誤差(噪音)晃洒。一般來說慨灭,隨著模型復(fù)雜度的增加,方差會逐漸增大球及,偏差會逐漸減小氧骤,見下圖:
[圖片上傳失敗...(image-d63233-1586095778322)]
偏差方差產(chǎn)生的原因
一個模型有偏差,主要的原因可能是對問題本身的假設(shè)是不正確的吃引,或者欠擬合筹陵。如:針對非線性的問題使用線性回歸;或者采用的特征和問題完全沒有關(guān)系镊尺,如用學生姓名預(yù)測考試成績朦佩,就會導致高偏差。
方差表現(xiàn)為數(shù)據(jù)的一點點擾動就會較大地影響模型庐氮。即模型沒有完全學習到問題的本質(zhì)语稠,而學習到很多噪音。通常原因可能是使用的模型太復(fù)雜弄砍,如:使用高階多項式回歸仙畦,也就是過擬合。
有一些算法天生就是高方差的算法,如kNN算法寄雀。非參數(shù)學習算法通常都是高方差写隶,因為不對數(shù)據(jù)進行任何假設(shè)。
有一些算法天生就是高偏差算法先口,如線性回歸。參數(shù)學習算法通常都是高偏差算法瞳收,因為對數(shù)據(jù)有跡象碉京。
偏差方差平衡
偏差和方差通常是矛盾的。降低偏差螟深,會提高方差谐宙;降低方差,會提高偏差界弧。
這就需要在偏差和方差之間保持一個平衡凡蜻。
以多項式回歸模型為例搭综,我們可以選擇不同的多項式的次數(shù),來觀察多項式次數(shù)對模型偏差&方差的影響:
多項式次數(shù) | 模型復(fù)雜度 | 方差 | 偏差 | 過/欠擬合 |
---|---|---|---|---|
低 | 低 | 低 | 高 | 欠擬合 |
中 | 中 | 中 | 中 | 適度 |
高 | 高 | 高 | 低 | 過擬合 |
下面是多項式次數(shù)對訓練誤差/測試誤差的影響:
多項式次數(shù) | 模型復(fù)雜度 | 訓練誤差 | 測試誤差 |
---|---|---|---|
低 | 低 | 高 | 高 |
中 | 中 | 中 | 低 |
高 | 高 | 低 | 高 |
關(guān)于解決方差和偏差的問題中:
我們要知道偏差和方差是無法完全避免的划栓,只能盡量減少其影響兑巾。
- 在避免偏差時,需盡量選擇正確的模型忠荞,一個非線性問題而我們一直用線性模型去解決蒋歌,那無論如何,高偏差是無法避免的委煤。
- 有了正確的模型堂油,我們還要慎重選擇數(shù)據(jù)集的大小,通常數(shù)據(jù)集越大越好碧绞,但大到數(shù)據(jù)集已經(jīng)對整體所有數(shù)據(jù)有了一定的代表性后府框,再多的數(shù)據(jù)已經(jīng)不能提升模型了,反而會帶來計算量的增加讥邻。而訓練數(shù)據(jù)太小一定是不好的迫靖,這會帶來過擬合,模型復(fù)雜度太高计维,方差很大袜香,不同數(shù)據(jù)集訓練出來的模型變化非常大。
- 最后鲫惶,要選擇合適的模型復(fù)雜度蜈首,復(fù)雜度高的模型通常對訓練數(shù)據(jù)有很好的擬合能力。
其實在機器學習領(lǐng)域欠母,主要的挑戰(zhàn)來自方差欢策。處理高方差的手段有:
- 降低模型復(fù)雜度
- 減少數(shù)據(jù)維度;降噪
- 增加樣本數(shù)
- 使用驗證集
總結(jié)
偏差衡量了模型的預(yù)測值與實際值之間的偏離關(guān)系赏淌,主要的原因可能是對問題本身的假設(shè)是不正確的踩寇,或者欠擬合。方差描述的是模型預(yù)測值的變化波動情況(或稱之為離散情況)六水,模型沒有完全學習到問題的本質(zhì)俺孙,通常原因可能是使用的模型太復(fù)雜,過擬合掷贾。
參數(shù)或者線性的算法一般是高偏差低方差睛榄;非參數(shù)或者非線性的算法一般是低偏差高方差。所以我們需要調(diào)整參數(shù)來去衡量方差和偏差的關(guān)系想帅。