標籤:

分類及離散度量指標

問題引出

大多數分類問題都是正負樣本分布不均衡,並且不同類別的錯分代價不均等。例如:絕大多數信用卡刷卡行為都是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:机器学习 |