1. 程式人生 > >白話理解: 準確率(Accuracy), 精確率(Precision), 召回率(Recall)

白話理解: 準確率(Accuracy), 精確率(Precision), 召回率(Recall)

本文重點是在白話,不是數學上面的嚴格定義. 那首先要有一個業務場景,就好比上學,學習資料庫,就要用到學生成績. 在這,我們的業務場景就是對100個西瓜進行分類(已知生熟各半)

下面是針對上面場景,對各個術語的解釋

準確率(Accuracy): 對所有西瓜分類正確的比率.

精確率(Precision): 挑出來的熟西瓜,有多少是正確的.

召回率(Recall) : 50個熟西瓜,有多少被分來到熟西瓜這個類別.

下面我們來分析各個術語有什麼應用場景:

Accuracy: 這個是我們最常用的,但是這個指標有一個缺點,就是當資料分來不均勻的時候,就沒辦法用於業務了. 比如, 當生西瓜只有2個,熟西瓜有98個的時候. 只要判斷所有的都是熟西瓜,準確率就是98%.但是這個模型其實是不合理的.

Precision: 這個指標就是為吃瓜群眾準備的了, 比如100個西瓜裡面,我只需要挑選出2個西瓜,並且都是熟西瓜,那麼這個Precision就是100%. 其他的西瓜,就可以都判斷為生西瓜.

Recall: 這個指標就是為瓜農準備的了, 瓜農肯定是想100%把所有的熟西瓜挑出來,送到市場上賣, 有多少熟西瓜被挑選出來了,就是用Recall這個指標來衡量了.

如果是黑心瓜農,直接把所有的西瓜,都當成熟西瓜,那麼Recall就是100%了. 想想寧可錯殺一千,不能錯過一個.就是隻注意了Recall.

如果是良心瓜農的話,會兼顧Precision. 也就是儘可能的排除生西瓜.

下面是三個不同角色對應的場景舉例:

  • 針對吃瓜群眾, 只希望挑出2個熟西瓜.其他的不管(Precision=100%)