精確率、召回率、準確率與ROC曲線

-牧野-發表於2018-05-15
精確率表示的是預測為某類樣本(例如正樣本)中有多少是真正的該類樣本,一般用來評價分類任務模型。
比如對於一個分類模型,預測結果為A類的所有樣本中包含A0個真正的A樣本,和A1個不是A樣本的其他類樣本,那麼該分類模型對於分類A的精確率就是A0/(A0+A1)。
通常來說精確率越高,分類效果越好。但是在樣本分佈非常不均衡的情況下, 精確率高並不一定意味著是一個好的模型。

比如對於預測長沙明天是否會下雪的模型,在極大概率下長沙是不會下雪的,所以隨便一個模型預測長沙不會下雪,它的精確率都可以達到99%以上,所以單純靠準確率來評價一個演算法模型在有些情況下是完全不夠的。 


召回率表示的是樣本中的某類樣本有多少被正確預測了。比如對與一個分類模型,A類樣本包含A0個樣本,預測模型分類結果是A類樣本中有A1個正樣本和A2個其他樣本,那麼該分類模型的召回率就是 A1/A0,其中 A1+A2=A0 


準確率表示的是所有分類中被正確分類的樣本比例,比如對於一個分類模型,樣本包含A和B兩類,模型正確識別了A類中的A0個樣本,B類中的B0個樣本,則準確率為 (A0+B0)/(A+B) 


ROC曲線和AUC

ROC(Receiver Operating Characteristic)曲線是以假正率(FP_rate)和真正率(TP_rate)為軸的曲線,ROC曲線下面的面積我們叫做AUC,如下圖所示:


 
說明:
  1. 曲線與FP_rate軸圍成的面積(記作AUC)越大,說明效能越好,即:曲線越靠近A點(左上方)效能越好,曲線越靠近B點(右下方)曲線效能越差。
  2. A點是最完美的performance點,B處是效能最差點。
  3. 位於C-D線上的點說明演算法效能和隨機猜測是一樣的–如C、D、E點。位於C-D之上說明演算法效能優於隨機猜測–如G點,位於C-D之下說明演算法效能差於隨機猜測–如F點。
  4. ROC曲線在高不平衡資料條件下仍不能夠很好的展示實際情況

相關文章