【評價指標】詳解F1-score與多分類F1

文章轉自【機器學習煉丹術】機器學習

基本概念

首先,要背住的幾個概念就是:accuracy,precision,recal, TP,FP,TN,FN學習

  • TP:true positive。預測是正確的正樣本
  • FP:false positive。預測是錯誤的正樣本
  • TN:true negative。預測是正確的負樣本
  • FP:false positive。預測是錯誤的負樣本

一般咱們會作出這樣的一個混淆矩陣:

左邊的positive,negative表示樣本真實值,表格上邊的positive,negative表示樣本的預測結果。測試

如今咱們有這樣的一個例子:

圖中的TP,FP等是一個比例,假設總共有100個樣本,有40個是TP,有20個是FP……(不過混淆矩陣通常不用除以總樣本數量)spa

如今咱們有了
$TP=0.3,FP=0.1$
$TN=0.4,FN=0.2$blog

準確率Accuracy

準確率是指,對於給定的測試數據集,分類器正確分類的樣本書與總樣本數之比,也就是預測正確的機率。ci

對應上面的例子,能夠獲得Accuracy=0.7。rem

【準確率Accuracy的弊端】get

準確率做爲咱們最經常使用的指標,當出現樣本不均衡的狀況時,並不能合理反映模型的預測能力。例如測試數據集有90%的正樣本,10%的負樣本,假設模型預測結果全爲正樣本,這時準確率爲90%,然而模型對負樣本沒有識別能力,此時高準確率不能反映模型的預測能力。it

精確率Precision

表示預測爲正的樣本中,實際的正樣本的數量。io

對應上面的例子,$precision=\frac{0.3}{0.3+0.1}=0.75$。

【我的理解】

Precision是針對預測結果而言的。預測結果中,預測爲正的樣本中預測正確的機率。相似於一個考生在考卷上寫出來的答案中,正確了多少。體現模型的精準度,模型說:我說哪一個對哪一個就是對的。

召回率Recall

Recall表示實際爲正的樣本被判斷爲正樣本的比例

對應上述的例子,獲得$Recall=\frac{0.3}{0.3+0.2}=0.6$

【我的理解】

Recall是針對數據樣本而言的。數據樣本中,正樣本中預測正確的機率。相似於一個考生在考卷上回答了多少題。體現一個模型的全面性,模型說:全部對的我都能找出來。

F1 score

Precision和Recall是一對矛盾的度量,通常來講,Precision高時,Recall值每每偏低;而Precision值低時,Recall值每每偏高。當分類置信度高時,Precision偏高;分類置信度低時,Recall偏高。爲了可以綜合考慮這兩個指標,F-measure被提出(Precision和Recall的加權調和平均),即:

F1的核心思想在於,在儘量的提升Precision和Recall的同時,也但願二者之間的差別儘量小。F1-score適用於二分類問題,對於多分類問題,將二分類的F1-score推廣,有Micro-F1和Macro-F1兩種度量。

【Micro-F1】

統計各個類別的TP、FP、FN、TN,加和構成新的TP、FP、FN、TN,而後計算Micro-Precision和Micro-Recall,獲得Micro-F1。具體的說,統計出來各個類別的混淆矩陣,而後把混淆矩陣「相加」起來,獲得一個多類別的混淆矩陣,而後再計算F1score

【Macro-F1】

我感受更經常使用的是Macro-F1。統計各個類別的TP、FP、FN、TN,分別計算各自的Precision和Recall,獲得各自的F1值,而後取平均值獲得Macro-F1

【總結】

從上面兩者計算方式上能夠看出,Macro-F1平等地看待各個類別,它的值會受到稀有類別的影響;而Micro-F1則更容易受到常見類別的影響。

參考:

[1]http://zjmmf.com/2019/08/13/F...

[2]https://zhuanlan.zhihu.com/p/...

相關文章
相關標籤/搜索