1. 程式人生 > >搞懂迴歸和分類模型的評價指標的計算:混淆矩陣,ROC,AUC,KS,SSE,R-square,Adjusted R-Square

搞懂迴歸和分類模型的評價指標的計算:混淆矩陣,ROC,AUC,KS,SSE,R-square,Adjusted R-Square

今天看到某同學總結了迴歸和分類模型的評價指標,兩篇部落格講的特別清楚,看完後以前的疑惑都解除了,收穫很大,加一點補充,整理出來方便以後檢視,藍色的大標題是原文連結。

對於迴歸模型效果的判斷指標經過了幾個過程,從SSE到R-square再到Ajusted R-square, 是一個完善的過程:

  • SSE(誤差平方和):The sum of squares due to error
  • R-square(決定係數):Coefficient of determination
  • Adjusted R-square:Degree-of-freedom adjusted coefficient of determination

下面我對以上幾個名詞進行詳細的解釋下,相信能給大家帶來一定的幫助!!

一、SSE(誤差平方和)

計算公式如下:

這裡寫圖片描述

  • 同樣的資料集的情況下,SSE越小,誤差越小,模型效果越好

  • 缺點:SSE數值大小本身沒有意義,隨著樣本增加,SSE必然增加,也就是說,不同的資料集的情況下,SSE比較沒有意義

二、R-square(決定係數)

這裡寫圖片描述

  • 數學理解: 分母理解為原始資料的離散程度,分子為預測資料和原始資料的誤差,二者相除可以消除原始資料離散程度的影響

  • 其實“決定係數”是通過資料的變化來表徵一個擬合的好壞。

  • 理論上取值範圍(-∞,1], 正常取值範圍為[0 1] ——實際操作中通常會選擇擬合較好的曲線計算R²,因此很少出現-∞

越接近1,表明方程的變數對y的解釋能力越強,這個模型對資料擬合的也較好
越接近0,表明模型擬合的越差
經驗值:>0.4, 擬合效果好

  • 缺點:資料集的樣本越大,R²越大,因此,不同資料集的模型結果比較會有一定的誤差

三、Adjusted R-Square (校正決定係數)

這裡寫圖片描述

  • n為樣本數量,p為特徵數量
  • 消除了樣本數量和特徵數量的影響

對於分類模型,常用的指標有混淆矩陣、ROC曲線,AUC值,KS曲線以及KS值、Lift圖,Gain圖等,查閱了很多的資料,加入自己的理解整理了一下他們的計算方法和意義,希望對大家有幫助。

1. 混淆矩陣—確定截斷點後,評價學習器效能

假設訓練之初以及預測後,一個樣本是正例還是反例是已經確定的,這個時候,樣本應該有兩個類別值,一個是真實的0/1,一個是預測的0/1

這裡寫圖片描述

TP(實際為正預測為正),FP(實際為負但預測為正),TN(實際為負預測為負),FN(實際為正但預測為負)

通過混淆矩陣我們可以給出各指標的值:

查全率(召回率,recall):樣本中的正例有多少被預測準確了,衡量的是查全率,預測對的正例數佔真正的正例數的比率:

  • 查全率=檢索出的相關資訊量 / 系統中的相關資訊總量 = TP / (TP+FN)

查準率(精準率,Precision):針對預測結果而言,預測為正的樣本有多少是真正的正樣本,衡量的是查準率,預測正確的正例數佔預測為正例總量的比率:

  • 查準率=正確預測到的正例數/實際正例總數 = TP / (TP+FP)

準確率:反映分類器統對整個樣本的判定能力,能將正的判定為正,負的判定為負的能力,計算公式:

  • Accuracy=(TP+TN) / (TP+FP+TN+FN)

陰性預測值:可以理解為負樣本的查準率,陰性預測值被預測準確的比例,計算公式:

  • NPV=正確預測到的負例數/實際負例總數=TN / (TN+FN)

查準率和查全率通常是一對矛盾的度量,通常一個高,另外一個就低。兩個指標都很重要,我們應該如何綜合考慮這兩個指標呢?

主要有兩種辦法:

“平衡點“ Break-Even Point, BEP

查準率=查全率的點,過了這個點,查全率將增加,查準率將降低。如下圖,藍色和橘黃色的交叉點就是“平衡點”

這裡寫圖片描述

F1度量—查準率和查全率的加權調和平均數

(1)當認為查準率和查全率一樣重要時,權重相同時:

這裡寫圖片描述

(2)當查準率查全率的重要性不同時,即權重不同時:
通常,對於不同的問題,查準率查全率的側重不同。比如,對於商品推薦系統,為了減少對使用者的干擾,查準率更重要;逃犯系統中,查全率更重要。因此,F1度量的一般形式:

這裡寫圖片描述

其中β表示查全率與查準率的權重,很多參考書上就只給出了這個公式,那麼究竟怎麼推導來的呢?
兩個指標的設定及其關係如下,因為只考慮這兩個指標,所以二者權重和為1,即

這裡寫圖片描述

可以推導得到。

  1. β=1,查全率的權重=查準率的權重,就是F1
  2. β>1,查全率的權重>查準率的權重
  3. β<1,查全率的權重<查準率的權重

那麼問題又來了,如果說我們有多個二分類混淆矩陣,應該怎麼評價F1指標呢?

多個二分類混淆矩陣可能有以下幾種情況:多次訓練/測試,多個數據集上進行訓練/測試,多分類任務的兩兩類別組合等。

這裡介紹兩種做法:

(1)巨集F1

設有n個混淆矩陣,計算出查全率和查準率的平均值,在計算F1即可

這裡寫圖片描述

這種做法認為每一次的混淆矩陣(訓練)是同等權重的

(2)微F1

設有n個混淆矩陣,計算出混淆矩陣對應元素(TP,FP,FN,TN)的平均值,再計算查全率、查準率,F1

這裡寫圖片描述

這種做法認為每一個樣本的權重是一樣的

多分類問題的混淆矩陣怎麼看?

這裡寫圖片描述

假設有一個用來對貓(cats)、狗(dogs)、兔子(rabbits)進行分類的系統,混淆矩陣就是為了進一步分析效能而對該演算法測試結果做出的總結。假設總共有 27 只動物:8只貓, 6條狗, 13只兔子。結果的混淆矩陣如上圖:

在這個混淆矩陣中,實際有8只貓,但是系統將其中3只預測成了狗;對於6條狗,其中有1條被預測成了兔子,2條被預測成了貓。從混淆矩陣中我們可以看出系統對於區分貓和狗存在一些問題,但是區分兔子和其他動物的效果還是不錯的。所有正確的預測結果都在對角線上,所以從混淆矩陣中可以很方便直觀的看出哪裡有錯誤,因為他們呈現在對角線外面。

在預測分析中,混淆表格(有時候也稱為混淆矩陣),是由false positives,falsenegatives,true positives和true negatives組成的兩行兩列的表格。它允許我們做出更多的分析,而不僅僅是侷限在正確率,對於上面的矩陣,可以表示為下面的表格:

這裡寫圖片描述

2. ROC曲線, AUC —評價學習器效能,檢驗分類器對客戶進行正確排序的能力

分類器產生的結果通常是一個概率值不是直接的0/1變數,通常數值越到,代表正例的可能性越大。
根據任務的不同也會採取不同的“截斷點”,大於則為正例,小於則為反例。如重視查全率,則閾值可以設定低一些;而重視查準率,閾值可以設定高一些。

如果設定了截斷點或明確了任務,那麼我們根據混淆矩陣就可以知道分類器的效果好壞。
在未設定截斷點(任務不明確)情況下,我們如何評價一個分類模型的效果的好壞或者比較不同分類模型效果?
我們可以觀察這個學習器利用所有可能的截斷點(就是所有樣本的預測結果)對樣本進行分類時的效果,注意要先對所有可能的截斷點進行排序,方便對比觀察。

ROC曲線描繪的是不同的截斷點時,並以FPR和TPR為橫縱座標軸,描述隨著截斷點的變小,TPR隨著FPR的變化。
縱軸:TPR=正例分對的概率 = TP/(TP+FN),其實就是查全率
橫軸:FPR=負例分錯的概率 = FP/(FP+TN)

如果是隨機分類,沒有進行任何學習器,FPR=TPR,即正例分對和負例分錯概率相同,預測出來的正例負例和正例負例本身的分佈是一致的,所以是一條45°的直線。因此,ROC曲線越向上遠離這條45°直線,說明用了這個學習器在很小的代價(負例分錯為正例,橫軸)下達到了相對較大的查全率(TPR)。

這裡寫圖片描述

作圖步驟:

  1. 根據學習器的預測結果(注意,是正例的概率值,非0/1變數)對樣本進行排序(從大到小)—–這就是截斷點依次選取的順序
  2. 按順序選取截斷點,並計算TPR和FPR—也可以只選取n個截斷點,分別在1/n,2/n,3/n等位置
  3. 連線所有的點(TPR,FPR)即為ROC圖 例圖:因為樣本有限,通常不是平滑曲線

判斷標準:

  1. 一個ROC曲線完全”包住“另一個ROC曲線—>第一個學習器效果更好
  2. 兩個ROC曲線相交—>利用ROC曲線下的面積(AUC,area under ROC curve,是一個數值)進行比較

3. KS曲線,KS值—學習器將正例和反例分開的能力,確定最好的“截斷點” KS曲線和ROC曲線都用到了TPR,FPR。KS曲線是把TPR和FPR都作為縱座標,而樣本數作為橫座標。

這裡寫圖片描述
作圖步驟:

  1. 根據學習器的預測結果(注意,是正例的概率值,非0/1變數)對樣本進行排序(從大到小)—–這就是截斷點依次選取的順序
  2. 按順序選取截斷點,並計算TPR和FPR —也可以只選取n個截斷點,分別在1/n,2/n,3/n等位置
  3. 橫軸為樣本的佔比百分比(最大100%),縱軸分別為TPR和FPR,可以得到KS曲線
  4. TPR和FPR曲線分隔最開的位置就是最好的”截斷點“,最大間隔距離就是KS值,通常>0.2即可認為模型有比較好偶的預測準確性 例圖: