分類模型的評價指標Fscore

分類方法經常使用的評估模型好壞的方法.html

0.預設問題

假設我如今有一個二分類任務,是分析100封郵件是不是垃圾郵件,其中不是垃圾郵件有65封,是垃圾郵件有35封.模型最終給郵件的結論只有兩個:是垃圾郵件不是垃圾郵件.機器學習

通過本身的努力,本身設計了模型,獲得告終果,分類結果以下:svg

  • 不是垃圾郵件70封(其中真實不是垃圾郵件60封,是垃圾郵件有10封)
  • 是垃圾郵件30封(其中真實是垃圾郵件25封,不是垃圾郵件5封)

如今咱們設置,不是垃圾郵件.爲正樣本,是垃圾郵件爲負樣本
咱們通常使用四個符號表示預測的全部狀況:學習

  • TP(真陽性):正樣本被正確預測爲正樣本,例子中的60
  • FP(假陽性):負樣本被錯誤預測爲正樣本,例子中的10
  • TN(真陰性):負樣本被正確預測爲負樣本,例子中的25
  • FN(假陰性):正樣本被錯誤預測爲負樣本,例子中的5

1.評價方法介紹

先看最終的計算公式:spa

1.Precision(精確率)

關注預測爲正樣本的數據(可能包含負樣本)中,真實正樣本的比例
計算公式.net


例子解釋:對上前面例子,關注的部分就是預測結果的70封不是垃圾郵件中真實不是垃圾郵件佔該預測結果的比率,如今Precision=60/(600+10)=85.71%設計

2.Recall(召回率)

關注真實正樣本的數據(不包含任何負樣本)中,正確預測的比例
計算公式code


例子解釋:對上前面例子,關注的部分就是真實有65封不是垃圾郵件,這其中你的預測結果中有多少預測正確了,Recall=60/(60+5)=92.31%orm

3.F-score中β值的介紹

β是用來平衡Precision,Recall在F-score計算中的權重,取值狀況有如下三種:htm

  • 若是取1,表示Precision與Recall同樣重要
  • 若是取小於1,表示Precision比Recall重要
  • 若是取大於1,表示Recall比Precision重要

通常狀況下,β取1,認爲兩個指標同樣重要.此時F-score的計算公式爲:

前面計算的結果,獲得Fscore=(2*0.8571*0.9231)/(0.8571+0.9231)=88.89%

3.其餘考慮
預測模型無非就是兩個結果

  • 準確預測(無論是正樣子預測爲正樣本,仍是負樣本預測爲負樣本)
  • 錯誤預測

那我就能夠直接按照下面的公式求預測準確率,用這個值來評估模型準確率不就好了

那爲何還要那麼複雜算各類值.理由是通常而言:負樣本遠大於正樣本

能夠想象,兩個模型的TN變化不大的狀況下,可是TP在兩個模型上有不一樣的值,TN>>TP是否是能夠推斷出:兩個模型的(TN+TP)近似相等.這不就意味着兩個模型按照以上公式計算的Accuracy近似相等了.那用這個指標有什麼用!!!

因此說,對於這種狀況的二分類問題,通常使用Fscore去評估模型.

須要注意的是:Fscore只用來評估二分類的模型,Accuracy沒有這限制

參考
1.機器學習中的 precision、recall、accuracy、F1 Score
2.分類模型的評估方法-F分數(F-Score)

相關文章
相關標籤/搜索