一、分類模型評估
1、混淆矩陣(confusion matrix)
TP(True Positive) —- 將正類預測為正類數
FN(False Negative) —- 將正類預測為負類數
FP(False Positive) —- 將負類預測為正類數
TN(True Negative) —- 將負類預測為負類數
分類模型總體判斷的準確率:反映分類器統對整個樣本的判定能力,能將正的判定為正,負的判定為負
精確率(Precision):指的是所得數值與真實值之間的精確程度;預測正確的正例數占預測為正例總量的比率,一般情況下,精確率越高,說明模型的效果越好。
公式如下:
召回率(Recall ):預測對的正例數占真正的正例數的比率,一般情況下,Recall越高,說明有更多的正類樣本被模型預測正確,模型的效果越好。
公式如下:
False discovery rate (FDR):錯誤發現率,表示在模型預測為正類的樣本中,真正的負類的樣本所占的比例。一般情況下,錯誤發現率越小,說明模型的效果越好。
公式如下:
False omission rate (FOR):錯誤遺漏率,表示在模型預測為負類的樣本中,真正的正類所占的比例。即評價模型”遺漏”掉的正類的多少。一般情況下,錯誤遺漏率越小,模型的效果越好。
公式如下:
Negative predictive value (NPV):陰性預測值,在模型預測為負類的樣本中,真正為負類的樣本所占的比例。 一般情況下,NPV越高,說明的模型的效果越好。
公式如下:
False positive rate (FPR), Fall-out:假正率,表示的是,預測為正例的負樣本數,占模型負類樣本數量的比值。一般情況下,假正類率越低,說明模型的效果越好。
公式如下:
False negative rate (FNR), Miss rate:假負類率,缺失率,模型預測為負類的樣本中,是正類的數量,占真實正類樣本的比值。缺失值越小,說明模型的效果越好。
公式如下:
True negative rate (TNR):一般情況下,真負類率越高,說明的模型的效果越好
公式如下:
F1是精確率和召回率的調和均值,即:
舉例:
如有150個樣本數據,這些數據分成3類,每類50個。分類結束后得到的混淆矩陣為:
每一行之和為50,表示50個樣本,第一行說明類1的50個樣本有43個分類正確,5個錯分為類2,2個錯分為類3。
混淆矩陣的每一列代表了預測類別,每一列的總數表示預測為該類別的數據的數目;每一行代表了數據的真實歸屬類別,每一行的數據總數表示該類別的數據實例的數目。每一列中的數值表示真實數據被預測為該類的數目:如下圖,第一行第一列中的43表示有43個實際歸屬第一類的實例被預測為第一類,同理,第二行第一列的2表示有2個實際歸屬為第二類的實例被錯誤預測為第一類。
那么針對以上的混淆矩陣,我們怎樣取計算召回率以及假正率值呢?
針對類1:共有150個測試樣本,類1為50個,那類2和類3就屬于其他樣本共為100個,此時
混淆矩陣的缺點:
一些positive事件發生概率極小的不平衡數據集(imbalanced data),混淆矩陣可能效果不好。比如對信用卡交易是否異常做分類的情形,很可能1萬筆交易中只有1筆交易是異常的。一個將所有交易都判定為正常的分類器,準確率是99.99%。這個數字雖然很高,但是沒有任何現實意義。
2、ROC
ROC曲線指受試者工作特征曲線 / 接收器操作特性曲線(receiver operating characteristic curve),是反映敏感性和特異性連續變量的綜合指標,是用構圖法揭示敏感性和特異性的相互關系,它通過將連續變量設定出多個不同的臨界值,從而計算出一系列敏感性和特異性,再以敏感性為縱坐標、(1-特異性)為橫坐標繪制成曲線,曲線下面積越大,診斷準確性越高。
ROC曲線的縱軸是真正例率TPR,橫軸是假正例率FPR。
給定m+個正例,m-個反例,根據學習器預測的概率將樣本從大到小排列。先把閥值設到最大,使得所有的樣本都被預測為負,此時TPR,FPR都為0,在坐標(0,0)處標記一個點。接著將閥值依次設置為每個樣例的概率值,計算TPR,FPR兩個值作為坐標點,將所有點連接起來即得到ROC曲線
我們可以看出,左上角的點(TPR=1,FPR=0),為完美分類,也就是這個醫生醫術高明,診斷全對。
點A(TPR > FPR),醫生A的判斷大體是正確的。中線上的點B(TPR=FPR),也就是醫生B全都是蒙的,蒙對一半,蒙錯一半;下半平面的點C(TPR < FPR),這個醫生說你有病,那么你很可能沒有病,醫生C的話我們要反著聽,為真庸醫。
上圖中一個閾值,得到一個點?,F在我們需要一個獨立于閾值的評價指標來衡量這個醫生的醫術如何,也就是遍歷所有的閾值,得到ROC曲線。
還是一開始的那幅圖,假設如下就是某個醫生的診斷統計圖,直線代表閾值。我們遍歷所有的閾值,能夠在ROC平面上得到如下的ROC曲線。
曲線距離左上角越近,證明分類器效果越好。
如上,是三條ROC曲線,在0.23處取一條直線。那么,在同樣的低FPR=0.23的情況下,紅色分類器得到更高的TPR。也就表明,ROC曲線越往上,分類器效果越好。
(2)根據ROC曲線評估模型
a.若一個學習器的ROC曲線被另一個學習器的曲線完全包住,則后者優于前者。
b.若兩個學習器的ROC曲線發生交叉,則可根據曲線下方的面積大小來比較,ROC曲線下方的面積為AUC(Area Under ROC Curve).
3、AUC
曲線下面積(AUC,Area Under the Curve)
ROC曲線下面積經常用作衡量分類模型質量的指標。隨機分類的AUC為0.5,而完美分類的AUC等于1。在實踐中,大多數分類模型的AUC在0.5和1之間。
AUC值為ROC曲線所覆蓋的區域面積,顯然,AUC越大,分類器分類效果越好。
AUC = 1,是完美分類器,采用這個預測模型時,不管設定什么閾值都能得出完美預測。絕大多數預測的場合,不存在完美分類器。
0.5 < AUC < 1,優于隨機猜測。這個分類器(模型)妥善設定閾值的話,能有預測價值。
AUC = 0.5,跟隨機猜測一樣(例:丟銅板),模型沒有預測價值。
AUC < 0.5,比隨機猜測還差;但只要總是反預測而行,就優于隨機猜測。
AUC的物理意義
假設分類器的輸出是樣本屬于正類的score(置信度),則AUC的物理意義為,任取一對(正、負)樣本,正樣本的score大于負樣本的score的概率。
計算AUC:
第一種方法:AUC為ROC曲線下的面積,那我們直接計算面積可得。面積為一個個小的梯形面積之和。計算的精度與閾值的精度有關。
第二種方法:根據AUC的物理意義,我們計算正樣本score大于負樣本的score的概率。取N*M(N為正樣本數,M為負樣本數)個二元組,比較score,最后得到AUC。時間復雜度為O(N*M)。
第三種方法:與第二種方法相似,直接計算正樣本score大于負樣本的概率。我們首先把所有樣本按照score排序,依次用rank表示他們,如最大score的樣本,rank=n(n=N+M),其次為n-1。那么對于正樣本中rank最大的樣本,rank_max,有M-1個其他正樣本比他score小,那么就有(rank_max-1)-(M-1)個負樣本比他score小。其次為(rank_second-1)-(M-2)。最后我們得到正樣本大于負樣本的概率為 ,時間復雜度為O(N+M)。
總結:
AUC(Area Under Curve) 被定義為 ROC 曲線下的面積, 顯然這個面積的數值不會大于 1。 又由于 ROC 曲線一般都處于 y=x 這條直線的上方, 所以 AUC 的取值范圍在 0.5 和 1 之間。 使用 AUC 值作為評價標準是因為很多時候 ROC 曲線并不能清晰的說明哪個分類器的效果更好, 而作為一個數值, 對應 AUC 更大的分類器效果更好。
首先 AUC 值是一個概率值, 當你隨機挑選一個正樣本以及一個負樣本, 當前的分類算法根據計算得到的 Score 值將這個正樣本排在負樣本前面的概率就是 AUC 值。 當然, AUC 值越大, 當前的分類算法越有可能將正樣本排在負樣本前面, 即能夠更好的分類。
二、回歸模型評估
1、SSE(和方差)
SSE(和方差、誤差平方和):The sum of squares due to error
該統計參數計算的是擬合數據和原始數據對應點的誤差的平方和,計算公式如下:
2、MSE(均方差)
MSE(均方差、方差):Mean squared error
該統計參數是預測數據和原始數據對應點誤差的平方和的均值,也就是SSE/n,和SSE沒有太大的區別,計算公式如下:
3、RMSE(均方根、標準差)
RMSE(均方根、標準差):Root mean squared error,其又被稱為RMSD(root mean square deviation),其定義如下:
其中,y 是第個樣本的真實值,^y是第個樣本的預測值,n 是樣本的個數。該評價指標使用的便是歐式距離。
RMSE雖然廣為使用,但是其存在一些缺點,因為它是使用平均誤差,而平均值對異常點(outliers)較敏感,如果回歸器對某個點的回歸值很不理性,那么它的誤差則較大,從而會對RMSE的值有較大影響,即平均值是非魯棒的。
4、R-Squared(確定系數)
在講確定系數之前,我們需要介紹另外兩個參數SSR和SST,因為確定系數就是由它們兩個決定的
(1)SSR:Sum of squares of the regression,即預測數據與原始數據均值之差的平方和,公式如下:
(2)SST:Total sum of squares,即原始數據和均值之差的平方和,公式如下:
細心的網友會發現,SST=SSE+SSR,呵呵只是一個有趣的問題。而我們的“確定系數”是定義為SSR和SST的比值,故
其實“確定系數”是通過數據的變化來表征一個擬合的好壞。由上面的表達式可以知道“確定系數”的正常取值范圍為[0 1],越接近1,表明方程的變量對y的解釋能力越強,這個模型對數據擬合的也較好
5、MAE(平均絕對誤差)
平均絕對誤差(MAE:Mean Absolute Error)就是指預測值與真實值之間平均相差多大,公式如下:
其中,yi是真實值,^yi是預測值,ei = | yi ? ^yi| 即是絕對誤差。
6、交叉驗證(Cross-Validation)
交叉驗證,有的時候也稱作循環估計(Rotation Estimation),是一種統計學上將數據樣本切割成較小子集的實用方法,該理論是由Seymour Geisser提出的。在給定的建模樣本中,拿出大部分樣本進行建模型,留小部分樣本用剛建立的模型進行預報,并求這小部分樣本的預報誤差,記錄它們的平方加和。這個過程一直進行,直到所有的樣本都被預報了一次而且僅被預報一次。把每個樣本的預報誤差平方加和,稱為PRESS(predicted Error Sum of Squares)。
交叉驗證的基本思想是把在某種意義下將原始數據(dataset)進行分組,一部分做為訓練集(train set),另一部分做為驗證集(validation set or test set)。首先用訓練集對分類器進行訓練,再利用驗證集來測試訓練得到的模型(model),以此來做為評價分類器的性能指標。
本文轉自:博客園 - 平原2016,轉載此文目的在于傳遞更多信息,版權歸原作者所有。
原文鏈接:https://blog.csdn.net/sinat_30353259/article/details/81610154
評論