2017年12月13日 星期三

what is the use of the ROC curve in data mining?

對於多類別的分類問題,ROC(Receiver Operating Characteristic,接收器作業特徵值)曲線圖 可用來觀察分類器在參數不同鬆緊設定下,預測某特定類別值的表現情形。 因此,ROC曲線圖適合用來調整參數,呈現對於不同類型分類錯誤的取捨結果。

假設雙類別問題中,資料集案例數陽遠少於陰,因此比較關心陽類別的預測表現。 則ROC平面可定義成 橫軸為偽陽率(陰預測為陽比率,False Positive Rate)=FP/(FP+TN),又稱錯誤命中率、假警報率,其值相當於(1-特殊度); 縱軸為真陽率(陽預測為陽比率,True Positive Rate)=TP/(TP+FN),又稱召回率、敏感度、偵測率。

假設分類器可預測案例為陽的機率,則給定陽機率門檻參數可決定案例類別如下: 若預測機率高於門檻,則案例歸為陽,否則歸為陰。 因此,陽機率門檻參數的調整將位於如下兩種極端情況之間:

  1. 惜口如金,嚴苛型參數: 設定陽機率門檻很高,很少案例歸為陽,但判斷為陽的案例其正確率也很高。 由於多數案例判斷為陰,因此本來是陽誤歸為陰的機會增加,即第一類錯誤較多。
  2. 來者不拒,寬鬆型參數: 設定陽機率門檻很低,很多案例歸為陽,但判斷為陽的案例其正確率也很低。 由於多數案例判斷為陽,因此本來是陰誤歸為陽的機會增加,即第二類錯誤較多。

由上面可以知道,機率門檻參數的調整基本上就是在第一類錯誤及第二類錯誤之間作取捨。 如果第一類錯誤較可容忍,第二類錯誤較不可容忍,參數要調向嚴苛方向,即門檻要調高; 反之如果第一類錯誤較不可容忍,第二類錯誤較可容忍,參數要調向寬鬆方向,即門檻要調低。 因此,繪製ROC曲線的目的就在顯示不同分類錯誤的取捨結果。

ROC曲線畫法如下: 設定陽機率門檻變化由最嚴1到最鬆0,將各門檻值的分類器表現,其偽陽率及真陽率的交點連線起來,形成ROC曲線圖。 其中,若將所有案例依預測為陽的機率由大到小排序,則橫軸的偽陽率相當於機率在陽機率門檻值以上的陰案例出現比例; 縱軸的真陽率相當於機率在陽機率門檻值以上的陽案例出現比例。 ROC曲線由左到右表示,某分類器從預測陽性全不容許錯到完全容許錯之間,所有陽案例出現比例的變化。 對角直線由左到右表示,隨機分類器從0%全預測為陽,到100%全預測為陽,所有陽案例出現比例的變化。 任一分類器只要ROC曲線位於對角線上方就比隨機分類器好,離的越遠,越靠近左上角越好。

例如,使用 Weka 的 簡單貝氏分類器(NaiveBayes) 套用到內附的 乳癌案例集 (breast-cancer.arff)。 此案例集的雙類別分佈為: 無復發事件(no-recurrence-events)201例,有復發事件(recurrence-events)85例。 顯然復發案例較少,因此我們將針對復發預測進行門檻調整,畫出復發預測的ROC曲線圖如下。 此曲線圖橫軸(X)為偽陽率或假警報率,縱軸(Y)為真陽率或偵測率。

若照預設的陽機率門檻0.5,則凡是案例預測為陽的機率高於門檻者,皆視為陽(即復發)。 所以系統在偽陽率=16.4%之下,可以達到真陽率=43.5%。 表示若允許16.4%的假警報錯誤,則偵測率可達43.5%。 曲線圖上每個點表示1個案例,最右上為預測為陽機率接近0的案例,最左下為預測為陽機率接近1的案例, 中間案例則按預測為陽機率由低(曲線右上)到高(曲線左下)依序擺放。 因此,位居分界線的門檻案例約略落在1(曲線右上)起算第215個案例的預測機率位置上。 凡機率在門檻案例以上(曲線往左)者皆預測為陽性(即復發),以下(曲線往右)者皆預測為陰性(即不復發)。 有關第215個排序的門檻案例,其相關資訊如下:

此時的混淆矩陣長相如下:

分類判斷為陽分類判斷為陰
案例實際為陽真陽性(TP=37)偽陰性(FN=48)
案例實際為陰偽陽性(FP=33)真陰性(TN=168)

如果調升陽機率門檻大於0.5門檻,也就是變嚴苛、不容錯,由ROC曲線可以看到,門檻案例的分界線將往曲線左方移動。 也就是偽陽率變低,但是真陽率也將跟著變低。最極端情況,陽機率門檻設為1,偽陽率及真陽率將雙雙落為0,也就是不容假警報錯誤下,偵測率將為0%。 此時的混淆矩陣長相如下,所有案例都處於預測為陰的過於保守情況:

分類判斷為陽分類判斷為陰
案例實際為陽真陽性(TP=0)偽陰性(FN=85)
案例實際為陰偽陽性(FP=0)真陰性(TN=201)

反之,如果調降陽機率門檻小於0.5門檻,也就是變寬鬆、更容錯,由ROC曲線可以看到,門檻案例的分界線將往曲線右方移動。 也就是偽陽率變高,但是真陽率也將跟著變高。最極端情況,陽機率門檻設為0,偽陽率及真陽率將雙雙達頂1,也就是完全容許假警報錯誤下,偵測率將為100%。 此時的混淆矩陣長相如下,所有案例都處於預測為陽的過於積極情況:

分類判斷為陽分類判斷為陰
案例實際為陽真陽性(TP=85)偽陰性(FN=0)
案例實際為陰偽陽性(FP=201)真陰性(TN=0)

所以畫出分類器的某類別ROC曲線圖可以輔助用戶在偽陽率及真陽率之間,也就是容許假警報錯誤及偵測率之間作取捨,道理在此。 取捨的依據就是調整預測為陽的機率門檻,在適當鬆緊之間,找到一個平衡點,能同時滿足自己可容許的假警報率及希望的偵測率。

另外,每個分類器在ROC平面,依陽機率門檻值的變化可以畫出一條ROC曲線。此曲線底下的面積稱為AUC(Area Under the Curve)。 AUC值最大為1,最小為0,值越大越好,可表示任抽一個陽案例及陰案例,分類器會讓陽案例的位置排在陰案例之前的機率。 隨機分類器的ROC曲線為一左下到右上的對角直線,其AUC值為0.5,表示任抽一陽一陰,陽會排在陰之前的機率為0.5。

    註:
  1. An Introduction to ROC Analysis
  2. ROC曲線
  3. 混淆矩陣定義如下:
    分類判斷為陽分類判斷為陰
    案例實際為陽真陽性(TP, True Positive)偽陰性(FN, False Negative)
    案例實際為陰偽陽性(FP, False Positive)真陰性(TN, True Negative)

沒有留言: