分類及離散度量指標
問題引出
大多數分類問題都是正負樣本分布不均衡,並且不同類別的錯分代價不均等。例如:絕大多數信用卡刷卡行為都是ok的,有極少的情形是欺詐行為;但將正常行為判定為欺詐異常行為和將異常行為劃分為正常行為,兩者的代價後果是不同的。
錯誤率 = 錯分的樣本數目/樣本總數。
這樣做的實際上掩蓋了一些事實,不知道劃分錯誤的樣本的真實面貌。即不知道是正樣本->負樣本,還是負樣本->正樣本,正如上面所言,兩者帶來的代價是不同的。
ROC&AUC
為了區分每一種情形,引入了混淆矩陣:
正確率(precision)=TP/(TP+FP),預測為正例的樣本中真正正例的比例。也稱精確率。
召回率(recall)=TP/(TP+FN),預測為正例的真實正例占真實正例的比例。
準確率(accuracy) = (TP+TN)/ALL,預測正確的樣本佔全部樣本的比例。評估分類時,更多用的是precision和accuracy
註:正確率,準確率,精確率,召回率....容易混淆,主要是因為翻譯不當,還是記住英文吧。
還有F1值,是precision和accuracy的調和平均值:
由於precision和accuracy很難同時保證,因此使用ROC曲線先度量分類中的這種非均衡性。
縱坐標是TPR(真陽率),即在全部的正例中,識別為正的佔比;---其實就是召回率。
橫坐標是FPR(假陽率),即在全部的負例中,識別為正的佔比。
可以看出TPR和Recall的形式是一樣的,就是查全率了,FPR就是保證這樣的查全率你所要付出的代價,就是把多少負樣本也分成了正的了。
ROC曲線給出的是當閾值由大到小變化時,兩種比率的變化情況。好的分類器的ROC曲線應該盡量的靠近左上方。它意味著在假陽率很低的情況下有很高的召回。圖中的虛線給出的是在隨機猜測的結果曲線。
不同的ROC曲線間的比較,可以使用曲線下的面積(AUC)來進行計算。完美分類器的AUC是1.0,而隨機猜測的AUC是0.5。
通常給出一個閾值,(TPR,FPR)僅是一個點,為了畫出曲線,需要將閾值由高到低的設置多組,分別計算TPR和FPR,取的閾值越多曲線越平滑。
閾值的選取,最好不要用(MAX-MIN)/N的方式來選取,因為樣本在各個區間通常分布是不均勻的,這樣計算的AUC不太可信。最好將樣本的預測值由高到低的排序,然後按照分位點去選取閾值。
PR曲線(Precision-Recall曲線)
與ROC曲線左上凸不同的是,PR曲線是右上凸效果越好。
Q:ROC和PR在分別是適用於哪些場景呢?
一般在樣本分布不均衡的時候,ROC會比PR更好的評估。
B-AUC
將二類AUC擴展到多分類評估方法的時候,一般採用將其轉成多個二分類的思想,通常使用「一對多」(one against rest)的方法,即分為當前類和非當前類。
首先先按照各個label所佔的概率大小排列,然後以第一個類作為正例,其餘類作為負例計算AUC_1,然後將正例樣本去除,剩餘的作為下一個二分類器的訓練樣本,以此類推得到很多個AUC值。最後將所有的二分類的AUC乘以每個類別的概率值進行累加。執行過程如下所示:
變異係數(Coefficient of Variation)
當需要比較兩組數據離散程度大小的時候,如果兩組數據的測量尺度相差太大,或者數據量綱的不同,直接使用標準差來進行比較不合適,此時就應當消除測量尺度和量綱的影響。通常在應用中,可以用CV來衡量序列的波動情況。變異係數是原始數據標準差與原始數據平均數的比。CV沒有量綱,這樣就可以進行客觀比較了。事實上,可以認為變異係數和極差、標準差和方差一樣,都是反映數據離散程度的絕對值。其數據大小不僅受變數值離散程度的影響,而且還受變數值平均水平大小的影響。當進行兩個或多個資料變異程度的比較時,如果度量單位與平均數相同,可以直接利用標準差來比較。如果單位或平均數不同時,比較其變異程度就不能採用標準差,而需採用標準差與平均數的比值來比較。在進行數據統計分析時,如果變異係數大於15%,則要考慮該數據可能不正常,應該剔除。舉例:集合1 :0.1,0.5,0.9 ,集合2:400,500,600
標準差評估的是樣本根據平均值的分散程度:在這裡集合1的標準差為0.326,集合2的標準差為81.649但我們認為1更加分散,只是兩個數據集的取值範圍不同導致在標準差上差別很大。因此引入CV,再除以平均數的話,去除測量尺度,此時:cv1=0.653197,cv2=0.163298參考:《機器學習實戰》
推薦閱讀:
※機器學習如何重塑人類世界
※對抗樣本引發的系列討論
※L1範數與L2範數的區別
※打造機器學習的基礎架構平台
TAG:机器学习 |