机器学习--如何理解Accuracy, Precision, Recall, F1 score
當我們在談論一個模型好壞的時候,我們常常會聽到準確率(Accuracy)這個詞,我們也會聽到"如何才能使模型的Accurcy更高".那么是不是準確率最高的模型就一定是最好的模型?
這篇博文會向大家解釋準確率并不是衡量模型好壞的唯一指標,同時我也會對其他衡量指標做出一些簡單說明。
首先我們先要了解混淆矩陣(Confusion Matrix), 如下圖,混淆矩陣經常被用來衡量一個分類模型在測試樣本上的性能,本文提到的所有衡量標準都會用到下面混淆矩陣中出現的的四個值
真正例和真反例表示被正確預測的數據,假正例和假反例表示被錯誤預測的數據,接下來的內容基本都是圍繞著四個值展開,因此我們有必要在這里弄清楚這四個值的含義是什么.
TP(True Positive)-被正確預測的正例.表示真實值為正,同時也被正確的預測為正;
TN(True Negative)-被正確預測的反例.表示真實值為反例,也被正確的預測為反例;
FP(False Positive)-表示真實值為負例,被錯誤的預測為正例;
FN(False Negative)-表示真實值為正例,被錯誤的預測為反例;
在了解了這四個值之后讓我們來計算接下來的Accuracy, Precision, Recall, F1 Score
Accuracy
Accuracy是最直觀的衡量模型好壞的指標,它實際上是被正確預測的數據量比上所有參與預測的數據量的值。 正如我開篇提到的,有人會認為如果我們的模型具有很高的Accuracy,那么我們的模型是最好的。
首先要明確只有當我們擁有一個對稱數據集時,也就是假陽性和假陰性的值幾乎相同時,Accuracy才可以被用來作為一個很好的衡量標準。 因此,我們必須查看其他參數才能完整地評估模型的性能。
Precision and Recall
有人翻譯他們為精確率和召回率,我更喜歡用查準率和查全率來翻譯這兩個詞.
查準率P就表示在預測結果為正例的樣本里,真實情況也為正例所占的比率
適用場景:當反例被錯誤的預測為正例(假正例)產生的代價很高的時候,適合用查準率,因為高查準率意味著低假正率/假陽性.比如在垃圾郵件檢測中,假正例意味著非垃圾郵件(實際為負)被錯誤的預測為垃圾郵件(預測為正).如果一個垃圾郵件監測系統的查準率不高導致很多非垃圾郵件被歸到垃圾郵箱里去,那么郵箱用戶可能會丟失或者漏看一些很重要的郵件.
查全率R表示在真實情況為正例的所有樣本中,預測結果也為正例的樣本所占的比率
使用場景:當正例被錯誤的預測為反例(假反例)產生很高的代價時,用查全率,因為高查全率意味著低假反率/假陰性.比如說在銀行的欺詐檢測或醫院的病患者檢測中,如果將欺詐性交易(實際為正)預測為非欺詐性交易(預測為負),則可能會給銀行帶來非常嚴重的損失。再比如以最近的新冠疫情為例,如果一個患病者(實際為正)經過試劑檢測被預測為沒有患病(預測為負),這樣的假反例或者說假陰性產生的風險就非常大.
F1 Score
F1是查準率和查全率的一個加權平均,根據wikipedia給出的解釋,F1 Score表達式如下
F1把假反例和假正例都考慮在內,它不像Accuracy這么容易理解,但是F1比Accuracy更適用,尤其是當你的數據集類別分布不均衡時.比如說你的樣本中正樣本:負樣本 = 100:1.
當假正例和假反例造成的代價差不多的時候直接用Accuracy就可以,但是當假正例和假反例產生的代價差別很大的時候,則可以考率更好的度量比如Precision,Recall和F1 Score.
reference :Accuracy, Precision, Recall & F1 Score: Interpretation of Performance Measures
Accuracy, Precision, Recall or F1?
總結
以上是生活随笔為你收集整理的机器学习--如何理解Accuracy, Precision, Recall, F1 score的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue的diff 算法
- 下一篇: Websocket--- long lo