機器學習基礎__01__性能度量

目錄

一、性能度量

二、迴歸問題的性能度量

三、分類問題的性能度量

3.1 混淆矩陣

3.2 準確率、召回率與F1

3.3 ROC與AUC


一、性能度量

性能度量是衡量模型泛化能力的評價標準,反映了任務需求。
通俗講就是對於多個模型,哪個好呢?性能度量就是評判這個。

什麼樣的模型是好的,不僅取決於算法和數據,還取決於任務需求。

二、迴歸問題的性能度量

迴歸問題常用的性能度量是“圴方誤差”
\frac{1}{m} \sum_{i=1}^{m}\left(f\left(\boldsymbol{x}_{i}\right)-y_{i}\right)^{2}f\left(\boldsymbol{x}_{i}\right) 是預測值,y_{i} 是真實值。

三、分類問題的性能度量

3.1 混淆矩陣

一些標記:
正例Positive,反例Negative
預測是正確的True,預測是錯誤的False
TP:預測是正例,預測正確,即實際是正例
FP:預測是正例,預測錯誤,即實際是反例
TN:預測是反例,預測正確,即實際是反例
FN:預測是反例,預測錯誤,即實際是正例
實際正例:TP+FN
實際反例:FP+TN

混淆矩陣:

3.2 準確率、召回率與F1

  • 準確率

P = \frac{TP}{TP + FP},準確率(亦稱查準率)強調準,表示預測是正例中,預測對的比例。

  • 召回率

R = \frac{TP}{TP + FN},召回率(亦稱查全率)強調全,表示實際是正例中,預測對的比例。

舉例:對於某個請求關鍵詞,實際有200篇文章相關。某個算法預測100篇文章相關,而這100篇預測中,實際相關的只有80篇。
那麼 P = 80 / 100 = 0.8,R = 80 / 200 = 0.4

  一句話總結:P與R分子相同,都是TP,P的分母是預測正例,R的分母是實際正例。

  • PR圖與BEP

PR圖怎麼畫?

其實這要從排序型模型說起。拿邏輯迴歸舉例,邏輯迴歸的輸出是一個0到1之間的概率數字,因此,如果我們想要根據這個概率判斷用戶好壞的話,我們就必須定義一個閾值。通常來講,邏輯迴歸的概率越大說明越接近1,也就可以說他是壞用戶的可能性更大。比如,我們定義了閾值爲0.5,即概率小於0.5的我們都認爲是好用戶,而大於0.5都認爲是壞用戶。因此,對於閾值爲0.5的情況下,我們可以得到相應的一對查準率和查全率。我們就遍歷0到1之間所有的閾值,而每個閾值下都對應着一對查準率和查全率,從而我們就得到了這條曲線。

在PR圖中,包圍面積大的好:算法A > 算法C,算法B > 算法C,那麼算法A與算法B呢?
BEP,是在PR圖中取P=R,這樣算法A > 算法B > 算法C
比BEP更常用的是F1度量

  • F1

F1 = \frac{2}{\frac{1}{P} + \frac{1}{R}} = \frac{2 * P * R}{P + R},F1中P與R權重一樣。

若對P/R有不同偏好:
F_{\beta}=\frac{\left(1+\beta^{2}\right) \times P \times R}{\left(\beta^{2} \times P\right)+R}
\beta > 1時,R有更大影響,當\beta < 1時,P有更大影響

有的場景你會絕大程度地關心準確率,而另外一些場景你會更關心召回率。舉例子,如果你訓練一個分類器去檢測視頻是否適合兒童觀看,你會傾向選擇那種即便拒絕了很多好視頻、但保證所保留的視頻都是好(高準確率)的分類器,而不是那種高召回率、但讓壞視頻混入的分類器(這種情況下你或許想增加人工去檢測分類器選擇出來的視頻)。另一方面,加入你訓練一個分類器去檢測監控圖像當中的竊賊,有着 30% 準確率、99% 召回率的分類器或許是合適的(當然,警衛會得到一些錯誤的報警,但是幾乎所有的竊賊都會被抓到)。

 

3.3 ROC與AUC

ROC(Receiver Operating Characteristic)曲線,又稱接受者操作特徵曲線。該曲線最早應用於雷達信號檢測領域,用於區分信號與噪聲。後來人們將其用於評價模型的預測能力,ROC曲線是基於混淆矩陣得出的。

  • ROC曲線

真正例率TPR = \frac{TP}{TP + FN},分母是實際是正例,(TPR其實就是召回率)
實際是正例中,預測是正例的比例(預測對了,TP)


假正例率 FPR = \frac{FP}{FP + TN},分母是實際是負例
實際是負例中,預測是正例的比例(預測錯了,FP)

ROC曲線中,橫座標是假正例率,縱座標是真正例率

我們發現TPR和FPR分別是基於實際表現正例和負例出發的,也就是說它們分別在實際的正樣本和負樣本中來觀察相關概率問題。正因爲如此,所以無論樣本是否平衡,都不會被影響。還是拿之前的例子,總樣本中,90%是正樣本,10%是負樣本。我們知道用準確率是有水分的,但是用TPR和FPR不一樣。這裏,TPR只關注90%正樣本中有多少是被真正覆蓋的,而與那10%毫無關係,同理,FPR只關注10%負樣本中有多少是被錯誤覆蓋的,也與那90%毫無關係,所以可以看出:如果我們從實際表現的各個結果角度出發,就可以避免樣本不平衡的問題了,這也是爲什麼選用TPR和FPR作爲ROC/AUC的指標的原因。

與前面的P-R曲線類似,ROC曲線也是通過遍歷所有閾值來繪製整條曲線的。

TPR表示覆蓋程度,FPR表示虛報的程度(負樣本中有多少被錯誤預測爲正例,因爲我們關心的是正例),所以我們希望覆蓋越多越好,虛報越少越好。即TPR越高,FPR越低(即ROC曲線越陡),模型性能越好。

ROC一個最大優點是:無視樣本不平衡。

  • AUC

AUC表示ROC曲線下面積,越大表示模型性能越好。

auc計算公式:https://blog.csdn.net/qq_22238533/article/details/78666436

參考:

1. 講解非常好

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章