logo
Loading...

【QA】PRC Curve與 ROC Curve 有什麼差別呢?? - Cupoy

PRC Curve與 ROC Curve在功能上極度相似,也是常見的評估指標,那這兩條曲線各別適合用...

【QA】PRC Curve與 ROC Curve 有什麼差別呢??

2021/12/08 下午 08:49
機器學習共學討論版
王健安
觀看數:20
回答數:1
收藏數:0

PRC Curve與 ROC Curve在功能上極度相似,也是常見的評估指標,那這兩條曲線各別適合用在哪呢?兩者的差異為何?

回答列表

  • 2021/12/08 下午 08:54
    王健安
    贊同數:0
    不贊同數:0
    留言數:0

    1. 先定義一下TP、TN、FN、FP ROC Curve與PRC Curve都會由以下四種指標定義出來,分別是 True Positive (TP)、False Positive (FP)、False Negative (FN) 與 True Negative (TN),下圖為詳細的示意圖。 ![image](http://kwassistfile.cupoy.com/0000017D9A1927A3000000036375706F795F72656C65617365414E53/1637748332343/large) 由圖可知,TP為正確預測到Positive的數量、FP為錯誤預測到Positive的數量(代表真實的類別為Negative)、FN為錯誤預測到Negative的數量(代表真實的類別為Positive)、TN為正確預測到Negative的數量。這四個指標也會定義出在機器學習中所有的評估指標。 2. 定義 ROC Curve 是由什麼組成 ROC Curve 是由「1-Specificity(False Positive)」與「Sensitivity」所組成,其中 $$$$ Seneitivity = \frac{TP}{TP+FN} $$$$ ,而 $$$$ Specificity = \frac{TN}{TN+FP} $$$$ 。 或許在實務操作上,使用諸如 sklearn 等套件就可以直接預測類別,事實上是先參考訓練資料後預測出發生某類別的「機率」,再判斷該筆資料是屬於哪一類,因此「閾值」的設定就變成關鍵,太大或太小都會讓模型效能變差,因此為了讓我們知道模型整體狀況,ROC Curve就是一個好用的評估方法,藉由不同的閾值產生Seneitivity與Specificity,就能夠劃出一條由左下至右上的曲線(如下圖所示)。 ![image](http://kwassistfile.cupoy.com/0000017D9A1927A3000000036375706F795F72656C65617365414E53/1637748332344/large) 而曲線下方包含的面積就是 The Area Under the ROC Curve (簡稱為:ROC-AUC),面積越大代表不論閾值設定為何,Sensitivity 與 Specificity 的平均效果會越好,模型效果也就會越好。 3. 定義PRC Curve是由什麼組成 PRC Curve 參考了 ROC Curve 的功能,近五年蓬勃發展的另一個曲線指標,其中是由 Recall 與 Precision 所組成, $$ Precision = \frac{TP}{TP+FP} $$,而 $$ Recall = \frac{TP}{TP+FN} $$。 它跟 ROC Curve 概念類似,透過模型預測出來的機率值,與不同的「閾值」,即可產生出不同的 Precision 與 Recall 的組合,把這些組合繪製成二維平面圖,即可繪製出一條由右下至左上的曲線(如下圖所示)。 ![image](http://kwassistfile.cupoy.com/0000017D9A1927A3000000036375706F795F72656C65617365414E53/1637748332345/large) 而曲線下方包含的面積就是 The Area Under the PRC Curve (簡稱為:PRC-AUC),面積越大代表不論閾值設定為何,Recall 與 Precision 的平均效果會越好,模型效果也就會越好。 4. 比較ROC Curve與PRC Curve的差異 ROC Curve 在醫學領域的報告或期刊十分常見,是一個已經使用且被認可多年、具有代表性的指標,因為它可以克服「閾值」所帶來的偏誤,不單純參考單一 Sensitivity 與 Specificity 就評斷模型好壞;然而,近年有關人工智慧的議題漸趨困難與專業,資料也相對難收集,常常出現「不平衡資料」,例如:有個專案是要「透過AI辨識病人是否有癌症」,但癌症是極少數人才會發生的疾病,蒐集資料時很難獲得有癌症的病患資料,因此有癌症的資料特別少而沒癌症的資料特別多,這時候儘管模型都猜測「某個病患沒有癌症」,也會有不錯的模型效能,但沒有達到最主要的目的,因此面對不平衡資料,「猜對少數類別比猜對全部」更重要,因為當少數類別能猜對,多數類別要猜對就非常容易。而 PRC Curve 就是用來面對不平衡資料時評估模型好壞的典型指標,因此當遇到不平衡資料時,PRC Curve 比 ROC Curve 更應該優先選擇。 參考資料: - [ ] https://estat.pixnet.net/blog/post/61795603-roc%E6%9B%B2%E7%B7%9A-%28receiver-operating-characteristic-curve%29 - [ ] https://www.yongxi-stat.com/receiver-operating-characteristic-roc/ - [ ] https://medium.com/nlp-tsupei/roc-pr-%E6%9B%B2%E7%B7%9A-f3faa2231b8c - [ ] https://acutecaretesting.org/en/articles/precision-recall-curves-what-are-they-and-how-are-they-used