準確率(Accuracy) 精確率(Prescision) 召回率(Recall)

jacobssy發表於2018-06-15

在機器學習訓練當中(包括深度學習)要評價一個模型的好壞,我們就必須要上一些指標來衡量我們的模型是否達到了一定的水平,拋開具體的業務來說(當然這樣是不可取的,一切的模型都要為業務服務,畢竟是要創造商業價值的)我們會有一些比較通用的指標,這裡主要講一下準確率,精確率,召回率三個指標,用一個例子來幫助理解這三個指標。


  • 首先在這裡假設一個例子,我訓練了一個分類的模型,目的是從狗和貓的圖片中選出貓。

  • 假設這裡有100張圖片,貓有40張,狗有60張。

  • 我將這100張圖片送進分類模型,最後這個模型挑選出了60張它認為是貓的圖片(其中30張確實是貓,另外30張是狗的圖片),它認為剩餘的40張圖片為狗。

1 準確率( 對於給定的測試資料集,分類器正確分類的樣本數與總樣本數之比)

在這個例子當中,分類器正確的識別了30張貓,20張狗的圖片,也就是說準確率是50/100 ,即accuracy = 0.5,是不是感覺這模型不行?不急,接著往下看。

2 精確率

要解釋這個概念,我們先來看一組概念(研究也是這樣,要得到一個概念,要設計出多組概念,暈。)

enter image description here

在這個例子裡,TP = 30,FP = 30,FN =10,TN = 30

那麼,精確率是什麼呢?精確率就是 TP/TP+FP,即在模型預測到貓的圖片當中,真正是貓的比例,在這個例子裡,precision = 30/30+30 = 0.5

3 召回率(recall)

召回率是什麼呢?召回率就是TP/TP+FN,即在模型預測的貓的圖片佔所有貓的比例,也就是我們的模型從所有的貓中選出來了多少貓,recall = 30/30+10 = 0.75

4 總結

  • 自己理解就是,準確率就是找得對,召回率就是找得全

  • 準確率和召回率是互相影響的,理想情況下肯定是做到兩者都高,但是一般情況下準確率高、召回率就低,召回率低、準確率高,當然如果兩者都低,那是什麼地方出問題了

  • 有很多評判模型的指標,例如AP mAP ROC AUC等等 ,參考連結:https://www.cnblogs.com/sddai/p/5696870.html (有更多的解釋)

相關文章