機器學習中的查全率recall、精度和F1得分的通俗解釋

banq發表於2021-05-17

一家商店的老闆最近發現了驚人的入店行竊率。他開發了一種機器學習模型,該模型可以預測客戶是否入店行竊,並且準確率高達95%!他部署了該模型,但一個月後卻沒有發現任何扒手。
為什麼?
在我們解決這個問題之前,重要的是要了解什麼是準確性。準確度是您正確預測某事物的次數除以您實際預測該事物的次數。
如果仔細檢視資料集,您會注意到進入商店的10,000名客戶中,當月只有500名是入店行竊者。一些快速的數學運算將告訴您,95%的顧客不是扒手,而另外5%是。
如果您判斷這些人都不是扒手,那麼100例案例中有95例是正確的,這就是模型所做的。在其他5例情況下,您可能會錯,但是誰在乎呢?我們仍然有95%的準確率。
但這顯然不是我們想要的:在資料嚴重偏斜的“不平衡”資料集中會發生此問題。
要麼有扒手,要麼沒有,兩者中前者在資料集中的存在明顯更多。我們的模型找到了提高準確性的捷徑。
 

故事的寓意:準確性不適用於資料偏斜的情況。
那麼,我們該如何解決這個問題呢?
使用不同的指標評估模型,讓我們看一下查全率率recall和精度,但是首先,瞭解一些術語很重要。
這是一個混淆矩陣,它向您顯示模型預測與基本事實的所有可能情況。

機器學習中的查全率recall、精度和F1得分的通俗解釋
這個解釋更好,混淆矩陣向我們展示了模型對基礎事實的預測:它表示的是樣本中的正例有多少被預測正確了。那也有兩種可能,一種是把原來的正類預測成正類(TP),另一種就是把原來的正類預測為負類(FN)。
讓我們將其與入店行竊的案例聯絡起來:

  • 情況1:我們的模型預測某人實際購物時入店行竊(TP-真實肯定)
  • 情況2:我們的模型預測某人在不購物時就入店行竊(FP-誤報)
  • 案例3:我們的模型預測某人在購物時沒有購物(FN-False Negative)
  • 情況4:我們的模型預測某人沒有購物時就沒有入店行竊(TN-真否定)

正式而言,“查全率”是使用此公式定義的。機器學習中的查全率recall、精度和F1得分的通俗解釋
  • 該指標的主要作用是告訴我們:模型在識別相關樣本方面的表現如何。

或者
  • 我們的模型在捕捉實際的入店行竊者方面有多好?

現在,如果模型沒有將任何人歸類為入店行竊者,那麼查全率將為0。另一方面,如果我們將每個人都標記為“入店行竊者”,查全率為100%,該怎麼辦?
 

準確性
有一個度量標準確實在乎對客戶的虛假指控,即準確性。,它表示的是預測為正的樣本中有多少是真正的正樣本。那麼預測為正就有兩種可能了,一種就是把正類預測為正類(TP),另一種就是把負類預測為正類(FP).
在前面查全率的分母中,用假陽性FP來代替假陰性FN。

  • 在我們正確預測的所有正類中,實際上有多少是正的。

或者
  • 我們的模型在不進行虛假指控方面有多好?

至此,您可能已經猜到了,如果我們僅針對模型中的高精度進行最佳化,將會遇到什麼問題。
該模型可以認為:每個人不是扒手,並且精度很高。
recall查全率和精度是相關的,高精度會導致查全率低,而精度低會導致查全率高。
我們顯然希望兩者都儘可能高,是否有將精度和查全率結合在一起的指標?
 

F1分數
F₁分數是精確度和查全率的加權調和平均值:

機器學習中的查全率recall、精度和F1得分的通俗解釋

現在,如果我們最佳化模型以使其具有F₁分數,則可以具有較高的精度和召回率。這轉化為我們的模型能夠抓住入店行竊者,同時又不會錯誤地指責無辜的顧客。
該模型可以確定,當它抓住一個扒手時,實際上是一個扒手,並且這個故事結束了。



 

相關文章