通俗解釋機器學習中的召回率、精確率、準確率,一文讓你一輩子忘不掉這兩個詞。
趕時間的同學們看這里:提升精確率是為了不錯報、提升召回率是為了不漏報
先說個題外話,暴擊一下亂寫博客的人,網絡上很多地方分不清準確率和精確率,在這里先正確區(qū)分一下精確率和準確率,以及他們的別稱
切入正題
很多人分不清召回率和精確率的區(qū)別,即使記住了公式,過段時間還是會忘掉,這里我會完全講清楚這幾個率的區(qū)別
準確率很好理解,被正確預測出來的數量 / 所有的樣本,這里不在贅述,主要講解精確率和召回率
精確率和召回率就是分母不一樣,下面以預測地震為例
請聽題:你的老板讓你做一個地震預測模型(以天為單位記某一天地震為正樣本,不地震為負樣本),你需要預測接下來100天的地震情況。
假設你是拉普拉斯妖,你知道第50天和51天會地震,其余的1-49和51-100天不會地震。
現(xiàn)在假設你的模型已經做好,但是不能精確率和召回率二者不可得兼,擺在你面前的是提升其中的一個率,你應該怎么辦?
通俗解釋一下
咋一看他們只有分母不一樣,但是為啥不一樣呢?
精確率:分母是預測到的正類,精確率的提出是讓模型的現(xiàn)有預測結果盡可能不出錯(寧愿漏檢,也不能讓現(xiàn)有的預測有錯)
以地震模型為例說就是寧愿地震了沒報,也不能誤報地震,比如說為了不錯報,只預測了第50天可能發(fā)生地震,此時的
1.精確率:1/1=100%
2.召回率:1/2=50%
雖然有一次地震沒預測到,但是我們做出的預測都是對的。
召回率:分母是原本的正類,召回率的提出是讓模型預測到所有想被預測到的樣本(就算多預測一些錯的,也能接受)
以地震模型為例說這100次地震,比如說為了不漏報,預測了第30天、50天、51天、70天、85天地震,此時的
1.精確率:2/5=40%
2.召回率:2/2=100%
雖然預測錯了3次,但是我們把會造成災難的2次地震全預測到了。
應該如何取舍呢?
假設地震發(fā)生沒有預測到會造成百億級別的損失,而地震沒發(fā)生誤報了地震會造成百萬級別的損失
顯然,這種情況下我們應該接受為了不能漏掉一次地震而多次誤報帶來的損失,即提升召回率
精確率和召回率有什么用?為什么需要它?通俗講解(人話)
上面我們已經講的很清楚了,這里以兩種需求為例
預測地震 - 不能接受漏報
人臉識別支付(銀行人臉支付) - 不能接受誤檢
人臉識別支付:主要提升精確率,更傾向于不能出現(xiàn)錯誤的預測。
應用場景:你刷臉支付時就算幾次沒檢測到你的臉,最多會讓你憤怒,對銀行損失不大,但是如果把你的臉檢測成別人的臉,就會出現(xiàn)金融風險,讓別人替你買單,對銀行損失很大。所以寧愿讓你付不了錢,也不會讓別人幫你付錢。
預測地震:主要提升召回率,更傾向于寧愿多預測一些錯的也不能漏檢。
應用場景:地震預測時寧愿多預測一些錯的,也不想漏掉一次地震,預測錯誤最多會讓大家多跑幾趟,造成少量損失。只要預測對一次,就會挽回百億級別的損失,之前所有的損失都值了。
不同的應用場景,需要的評價標準不一樣,所以才會有這些率。
以上是個人理解,若有問題請指出謝謝大家!