模型評估常用方法


1 模型評估常用方法?

​ 一般情況來說,單一評分標准無法完全評估一個機器學習模型。只用good和bad偏離真實場景去評估某個模型,都是一種欠妥的評估方式。下面介紹常用的分類模型和回歸模型評估方法。

分類模型常用評估方法:

回歸模型常用評估方法:

2 混淆矩陣

3 錯誤率及精度

  1. 錯誤率(Error Rate):分類錯誤的樣本數占樣本總數的比例。
  2. 精度(accuracy):分類正確的樣本數占樣本總數的比例。

4 查准率與查全率

將算法預測的結果分成四種情況:

  1. 正確歸為正樣本(True Positive,TP):預測為真,實際為真
  2. 正確歸為負樣本(True Negative,TN):預測為假,實際為假
  3. 錯誤歸為正樣本(False Positive,FP):預測為真,實際為假
  4. 錯誤歸為負樣本(False Negative,FN):預測為假,實際為真

則:

查准率(Precision)=TP/(TP+FP)

理解:預測出為陽性的樣本中,正確的有多少。區別准確率(正確預測出的樣本,包括正確預測為陽性、陰性,占總樣本比例)。
例,在所有我們預測有惡性腫瘤的病人中,實際上有惡性腫瘤的病人的百分比,越高越好。

查全率(Recall)=TP/(TP+FN)

理解:正確預測為陽性的數量占總樣本中陽性數量的比例。
例,在所有實際上有惡性腫瘤的病人中,成功預測有惡性腫瘤的病人的百分比,越高越好。

5 ROC與AUC

​ ROC全稱是“受試者工作特征”(Receiver Operating Characteristic)。

​ ROC曲線的面積就是AUC(Area Under Curve)。

​ AUC用於衡量“二分類問題”機器學習算法性能(泛化能力)。

​ ROC曲線,通過將連續變量設定出多個不同的臨界值,從而計算出一系列真正率和假正率,再以假正率為橫坐標、真正率為縱坐標繪制成曲線,曲線下面積越大,推斷准確性越高。在ROC曲線上,最靠近坐標圖左上方的點為假正率和真正率均較高的臨界值。

​ 對於分類器,或者說分類算法,評價指標主要有Precision,Recall,F-score。下圖是一個ROC曲線的示例。

ROC曲線的橫坐標為False Positive Rate(FPR),縱坐標為True Positive Rate(TPR)。其中

\[TPR = \frac{TP}{TP+FN} , \ \ FPR = \frac{FP}{FP+TN} \]

​ 下面着重介紹ROC曲線圖中的四個點和一條線。

​ 第一個點(0,1),即FPR=0, TPR=1,這意味着FN(False Negative)=0,並且FP(False Positive)=0。意味着這是一個完美的分類器,它將所有的樣本都正確分類。
​ 第二個點(1,0),即FPR=1,TPR=0,意味着這是一個最糟糕的分類器,因為它成功避開了所有的正確答案。
​ 第三個點(0,0),即FPR=TPR=0,即FP(False Positive)=TP(True Positive)=0,可以發現該分類器預測所有的樣本都為負樣本(Negative)。
​ 第四個點(1,1),即FPR=TPR=1,分類器實際上預測所有的樣本都為正樣本。

​ 經過以上分析,ROC曲線越接近左上角,該分類器的性能越好。

​ ROC曲線所覆蓋的面積稱為AUC(Area Under Curve),可以更直觀的判斷學習器的性能,AUC越大則性能越好。

6 如何畫ROC曲線

​ 下圖是一個示例,圖中共有20個測試樣本,“Class”一欄表示每個測試樣本真正的標簽(p表示正樣本,n表示負樣本),“Score”表示每個測試樣本屬於正樣本的概率。

步驟:
1、假設已經得出一系列樣本被划分為正類的概率,按照大小排序。
2、從高到低,依次將“Score”值作為閾值threshold,當測試樣本屬於正樣本的概率大於或等於這個threshold時,我們認為它為正樣本,否則為負樣本。舉例來說,對於圖中的第4個樣本,其“Score”值為0.6,那么樣本1,2,3,4都被認為是正樣本,因為它們的“Score”值都大於等於0.6,而其他樣本則都認為是負樣本。
3、每次選取一個不同的threshold,得到一組FPR和TPR,即ROC曲線上的一點。以此共得到20組FPR和TPR的值。
4、根據3、中的每個坐標點,畫圖。

7 如何計算TPR,FPR

分析數據
y_true​ = [0, 0, 1, 1];scores = [0.1, 0.4, 0.35, 0.8];

列表

將截斷點依次取為score值,計算TPR和FPR

當截斷點為0.1時:
說明只要score>=0.1,它的預測類別就是正例。 因為4個樣本的score都大於等於0.1,所以,所有樣本的預測類別都為P。

scores = [0.1, 0.4, 0.35, 0.8];y_true = [0, 0, 1, 1];y_pred = [1, 1, 1, 1];

正例與反例信息如下:

由此可得:
TPR = TP/(TP+FN) = 1; FPR = FP/(TN+FP) = 1;

當截斷點為0.35時:
scores = [0.1, 0.4, 0.35, 0.8];y_true = [0, 0, 1, 1];y_pred = [0, 1, 1, 1];

正例與反例信息如下:

由此可得:
TPR = TP/(TP+FN) = 1; FPR = FP/(TN+FP) = 0.5;

當截斷點為0.4時:
scores = [0.1, 0.4, 0.35, 0.8];y_true = [0, 0, 1, 1];y_pred = [0, 1, 0, 1];

正例與反例信息如下:

由此可得:
TPR = TP/(TP+FN) = 0.5; FPR = FP/(TN+FP) = 0.5;

當截斷點為0.8時:
scores = [0.1, 0.4, 0.35, 0.8];y_true = [0, 0, 1, 1];y_pred = [0, 0, 0, 1];

正例與反例信息如下:

由此可得:
TPR = TP/(TP+FN) = 0.5; FPR = FP/(TN+FP) = 0;

根據TPR、FPR值,以FPR為橫軸,TPR為縱軸畫圖

8 如何計算AUC

  • 將坐標點按照橫坐標FPR排序 。
  • 計算第\(i\)個坐標點和第\(i+1\)個坐標點的間距\(dx\)
  • 獲取第\(i\)或者\(i+1\)個坐標點的縱坐標y。
  • 計算面積微元\(ds=ydx\)
  • 對面積微元進行累加,得到AUC。

9 為什么使用Roc和Auc評價分類器

​ 模型有很多評估方法,為什么還要使用ROC和AUC呢?
​ 因為ROC曲線有個很好的特性:當測試集中的正負樣本的分布變換的時候,ROC曲線能夠保持不變。在實際的數據集中經常會出現樣本類不平衡,即正負樣本比例差距較大,而且測試數據中的正負樣本也可能隨着時間變化。

10 直觀理解AUC

​ 下圖展現了三種AUC的值:

AUC是衡量二分類模型優劣的一種評價指標,表示正例排在負例前面的概率。其他評價指標有精確度、准確率、召回率,而AUC比這三者更為常用。
​ 一般在分類模型中,預測結果都是以概率的形式表現,如果要計算准確率,通常都會手動設置一個閾值來將對應的概率轉化成類別,這個閾值也就很大程度上影響了模型准確率的計算。

​ 舉例:
​ 現在假設有一個訓練好的二分類器對10個正負樣本(正例5個,負例5個)預測,得分按高到低排序得到的最好預測結果為[1, 1, 1, 1, 1, 0, 0, 0, 0, 0],即5個正例均排在5個負例前面,正例排在負例前面的概率為100%。然后繪制其ROC曲線,由於是10個樣本,除去原點我們需要描10個點,如下:

​ 描點方式按照樣本預測結果的得分高低從左至右開始遍歷。從原點開始,每遇到1便向y軸正方向移動y軸最小步長1個單位,這里是1/5=0.2;每遇到0則向x軸正方向移動x軸最小步長1個單位,這里也是0.2。不難看出,上圖的AUC等於1,印證了正例排在負例前面的概率的確為100%。

​ 假設預測結果序列為[1, 1, 1, 1, 0, 1, 0, 0, 0, 0]。

​ 計算上圖的AUC為0.96與計算正例與排在負例前面的概率0.8 × 1 + 0.2 × 0.8 = 0.96相等,而左上角陰影部分的面積則是負例排在正例前面的概率0.2 × 0.2 = 0.04。

​ 假設預測結果序列為[1, 1, 1, 0, 1, 0, 1, 0, 0, 0]。

​ 計算上圖的AUC為0.88與計算正例與排在負例前面的概率0.6 × 1 + 0.2 × 0.8 + 0.2 × 0.6 = 0.88相等,左上角陰影部分的面積是負例排在正例前面的概率0.2 × 0.2 × 3 = 0.12。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM