1. 程式人生 > >對於PRC和ROC曲線衡量分類器效果的思考

對於PRC和ROC曲線衡量分類器效果的思考

我們在分類中往往採用一些指標如Precision,Recall,ROC圖來衡量一個分類器的分類效果。


在實際中遇到的資料往往是正負樣本不平衡(class imbalance)的,比如假設100個人裡面有1個是癌症患者,那麼,分類器只要對所有樣本返回非癌症即可獲得99%的Accuracy,然而此時的分類器並沒有意義,它不能識別任何的癌症患者。此時我們需要Precision,Recall,調和F值,ROC等來衡量分類器的效果。


我們的問題是:在正負樣本比例不平衡時,PRCurve和ROCCurve哪個更能衡量分類器的效果?


在進行不平衡資料學習時,我們往往把少數量的樣本標記成正樣本(positive),然後進行樣本的學習和預估。

PRC和ROC在面對不平衡資料時的表現是不同的。在資料不平衡時,PRC曲線是敏感的,隨著正負樣本比例的變化,PRC會發生強烈的變化。而ROC曲線是不敏感的,其曲線能夠基本保持不變。ROC的面對不平衡資料的一致性表明其能夠衡量一個模型本身的預測能力,而這個預測能力是與樣本正負比例無關的。但是這個不敏感的特性使得其較難以看出一個模型在面臨樣本比例變化時模型的預測情況。而PRC因為對樣本比例敏感,因此能夠看出分類器隨著樣本比例變化的效果,而實際中的資料又是不平衡的,這樣有助於瞭解分類器實際的效果和作用,也能夠以此進行模型的改進。

綜上,在實際學習中,我們可以使用ROC來判斷兩個分類器的優良,然後進行分類器的選擇,然後可以根據PRC表現出來的結果衡量一個分類器面對不平衡資料進行分類時的能力,從而進行模型的改進和優化。

# 這個是我學不平衡問題時對這個問題的一點理解,如果有不對的地方,敬請指出。


----------------------------------------------------------

補充一些不平衡資料學習時對應解決方法。

一、使用ROC、PRC曲線來衡量分類器的效果

二、資料取樣法

1. 過取樣:通過增加少數樣本來提高少數類別的分類效能。

2. 欠取樣:通過減少多數樣本來提高少數類別的分類效能。

三、使用代價敏感學習

對於分類混淆矩陣,對不同的分類效果可以賦予不同的權值。

對於AdaBoost,可以基於代價函式來調整錯誤樣本權重向量D(原先是依據上一個分類器的錯誤率)。

對於NaiveBayes,可以選擇具有最小期望代價而不是最大概率的類別作為最後的結果。