《SPSS统计分析与行业应用实战》之诊断试验与ROC分析
一、常用診斷試驗的指標
(1)正樣本和負樣本
正樣本就是使模型得出正確結論的例子,負樣本是模型得出錯誤結論的例子。
比如你要從一堆貓狗圖片中檢測出狗的圖片,那么狗就是正樣本,貓就是負樣本;反過來你若是想檢測出貓的圖片,那么貓就是正樣本,狗就是負樣本。
?
(2)FN, FP, TN, TP
先建立一個二分類的混淆矩陣,混淆矩陣是機器學習中總結分類模型預測結果的情形分析表,以矩陣形式將數據集中的記錄按照真實的類別與分類模型預測的類別判斷兩個標準進行匯總。其中矩陣的行表示真實值,矩陣的列表示預測值,下面我們先以二分類為例,矩陣表現形式,如下:
現在我們舉個列子,并畫出混淆矩陣表,假如寵物店有10只動物,其中6只狗,4只貓,現在有一個分類器將這10只動物進行分類,分類結果為5只狗,5只貓,那么我們畫出分類結果混淆矩陣,并進行分析,如下(我們把狗作為正類):
通過混淆矩陣我們可以輕松算的真實值狗的數量(行數量相加)為6=5+1,真實貓的數量為4=0+4,預測值分類得到狗的數量(列數量相加)為5=5+0,分類得到貓的數量為5=1+4。同時,我們不難發現,對于二分類問題,矩陣中的4個元素剛好表示TP,TN,FP,TN這四個符號量,如下圖:
TP:True Positive,被判定為正樣本,事實上也是正樣本。真的正樣本,也叫真陽性。
FN:False Negative,被判定為負樣本,但事實上是正樣本。假的負樣本,也叫假陰性。
FP:False Positive,被判定為正樣本,但事實上是負樣本。假的正樣本,也叫假陽性。
TN:True Negative,被判定為負樣本,事實上也是負樣本。真的負樣本,也叫真陰性。
?
1.準確率? accuracy
準確率:樣本中類別預測正確的比例,即
準確率反映模型類別預測的正確能力,包含了兩種情況,正例被預測為正例,反例被預測為反例,當我們對類別為1、類別為0的關注程度一致時(類別為對稱的),準確率是一個不錯的評價指標,但是如果我們更關注樣本被預測為類1的情況,準確率就不是一個合適的指標,因為通過它你無法知道正例的預測情況,因為反例的預測情況也包含在其中,而這并不是我們關注的。
2.精確率 precision
精確率:被預測為正例的樣本中,真實的正例所占的比例,即
精確率反映模型在正例上的預測能力,該指標的關注點在正例上,如果我們對正例的預測準確性很關注,那么精確率是一個不錯的指標。例如在醫學病情診斷上,患者在意的是“不要誤診”,此時精確率是合適的指標。
精確率是受樣本比例分布影響的,反例數量越多,那么其被預測為正例的數量也會越多,此時精確率就會下降,因此當樣本分布不平衡時,要謹慎使用精確率。
3.召回率 recall
召回率,又稱靈敏度(Sensitivity):真實的正例樣本中,被預測為正例的樣本所占的比例,真陽性率,即
召回率反映模型在正例正確預測上的覆蓋率,“不允許有一條漏網之魚”,如果我們關注的是對真實正例樣本預測為正的全面性,那么召回率是很好的指標。例如在一些災害檢測的場景中,任何一次災害的漏檢都是難以接受的,此時召回率是很合適的指標。
召回率是不受樣本比例不平衡影響的,因為它只關注的是正例樣本上的預測情況。
4.F1-score
F1-score :兼顧精準率與召回率的模型評價指標,其定義為:
當對精準率或者召回率沒有特殊要求時,評價一個模型的優劣就需要同時考慮精準率與召回率,此時可以考慮使用F1-score。F1-score考慮了Precision、Recall數值大小的影響,只有當二者都比較高時,F1-score才會比較大。
5.特異度 Specificity
特異度(Specificity),即真陰性率(True Negative Rate,TNR)
Specificity = TNR = TN / (TN + FP)
?
二、ROC曲線及AUC
1.ROC
ROC(Receiver Operating Characteristic)曲線全稱是“受試者工作特征”,通常用來衡量一個二分類學習器的好壞。如果一個學習器的ROC曲線能將另一個學習器的ROC曲線完全包住,則說明該學習器的性能優于另一個學習器。
既然已經這么多評價標準,為什么還要使用ROC和AUC呢?
因為ROC曲線有個很好的特性:當測試集中的正負樣本的分布變化的時候,ROC曲線能夠保持不變。在實際的數據集中經常會出現類不平衡(class imbalance)現象,即負樣本比正樣本多很多(或者相反),而且測試數據中的正負樣本的分布也可能隨著時間變化。
ROC(receiver operating characteristic curve)是一條曲線,其橫軸表示的是FPR--錯誤地預測為正例的概率(1 - 特異度),縱軸表示的是TPR(True Positive Rate)——正確地預測為正例地概率,二者地計算如下:
從TPR地計算方式來看,其實際上就是召回率。前面已說過,Recall不受樣本不平衡的影響,實際上FPR也具有該特點。ROC曲線類似于下圖,TPR、FPR地取值范圍均在0~1之間
對于一個特定的分類器和測試數據集,顯然只能得到一個分類結果,即一組FPR和TPR結果,而要得到一個曲線,我們實際上需要一系列FPR和TPR的值,這又是如何得到的呢?
對于許多學習器在判定二分類問題時是預測出一個對于真值的范圍在[0.0, 1.0]之間的概率值,而判定是否為真值則看該概率值是否大于或等于設定的閾值(Threshold)。
例如:如果閾值設定為0.5則所有概率值大于或等于0.5的均為正例,其余為反例。因此對于不同的閾值我們可以得到一系列相應的FPR和TPR,從而繪制出ROC曲線。具體案例如下:
y_true = [0, 1, 0, 1],? 真實值
y_score = [0.1, 0.35, 0.4, 0.8], 預測值
分別取4組判定正例用的閾值:[0.1, 0.35, 0.4, 0.8],可得相應4組FPR,TPR:
(1)threshold = 0.1時,由y_score得到的預測值y_pred = [1, 1, 1, 1]
TP = 2, FP = 2, TN = 0,FN = 0
橫坐標FPR = FP / (FP + TN) = 1
縱坐標TPR = TP / (TP + FN) = 1
(2)threshold = 0.35時,y_pred= [0, 1, 1, 1]
TP = 2, FP = 1, TN = 1, FN = 0
FPR = FP / (FP + TN) = 0.5
TPR = TP / (TP + FN) = 1
(3)threshold = 0.4時,y_pred= [0, 0, 1, 1]
TP = 1, FP = 1, TN = 1, FN = 1
FPR = FP / (FP + TN) = 0.5
TPR = TP / (TP + FN) = 0.5
(4)threshold = 0.8時,y_pred= [0, 0, 0, 1]
TP = 1, FP = 0, TN = 2, FN = 1
FPR = FP / (FP + TN) = 0
TPR = TP / (TP + FN) = 0.5
當threshold取值越多,ROC曲線越平滑。
2.AUC
AUC(area under curve)是一個數值,從定義上可以直觀的看到其表征的意思——曲線與坐標軸圍成的面積,ROC-AUC即表示的是ROC曲線與坐標軸圍成的面積。
很明顯的,TPR越大、FPR越小,模型效果越好,因此ROC曲線越靠近左上角表明模型效果越好,此時AUC值越大,極端情況下為1。與F1-score不同的是,AUC值并不需要先設定一個閾值。
AUC (Area Under Curve) 被定義為ROC曲線下的面積,顯然這個面積的數值不會大于1。又由于ROC曲線一般都處于y=x這條直線的上方,所以AUC的取值范圍一般在0.5和1之間。使用AUC值作為評價標準是因為很多時候ROC曲線并不能清晰的說明哪個分類器的效果更好,而作為一個數值,對應AUC更大的分類器效果更好。案例中的AUC值為0.75
根據(Fawcett, 2006),AUC的值的含義是:
The AUC value is equivalent to the probability that a randomly chosen positive example is ranked higher than a randomly chosen negative example.
這句話的意思是:首先AUC值是一個概率值,當你隨機挑選一個正樣本以及一個負樣本,當前的分類算法根據計算得到的Score值將這個正樣本排在負樣本前面的概率就是AUC值。
當然,AUC值越大,當前的分類算法越有可能將正樣本排在負樣本前面,即能夠更好的分類。
可以從AUC判斷分類器(預測模型)優劣的標準
AUC = 1,是完美分類器,采用這個預測模型時,存在至少一個閾值能得出完美預測。絕大多數預測的場合,不存在完美分類器。
0.5 < AUC < 1,優于隨機猜測。這個分類器(模型)妥善設定閾值的話,能有預測價值。
AUC = 0.5,跟隨機猜測一樣(例:丟銅板),模型沒有預測價值。
AUC < 0.5,比隨機猜測還差;但只要總是反預測而行,就優于隨機猜測。
總結
以上是生活随笔為你收集整理的《SPSS统计分析与行业应用实战》之诊断试验与ROC分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Matlab】数字图像处理_基本原理_
- 下一篇: 案例 | 上海移动:数字化通向互联网的三