分類方法經常使用的評估模型好壞的方法.html
假設我如今有一個二分類任務,是分析100封郵件是不是垃圾郵件,其中不是垃圾郵件有65封,是垃圾郵件有35封.模型最終給郵件的結論只有兩個:是垃圾郵件與 不是垃圾郵件.機器學習
通過本身的努力,本身設計了模型,獲得告終果,分類結果以下:svg
如今咱們設置,不是垃圾郵件.爲正樣本,是垃圾郵件爲負樣本
咱們通常使用四個符號表示預測的全部狀況:學習
先看最終的計算公式:spa
關注預測爲正樣本的數據(可能包含負樣本)中,真實正樣本的比例
計算公式.net
例子解釋:對上前面例子,關注的部分就是預測結果
的70封不是垃圾郵件中真實不是垃圾郵件佔該預測結果的比率,如今Precision=60/(600+10)=85.71%設計
關注真實正樣本的數據(不包含任何負樣本)中,正確預測的比例
計算公式code
例子解釋:對上前面例子,關注的部分就是真實有65封不是垃圾郵件,這其中你的預測結果中有多少預測正確了,Recall=60/(60+5)=92.31%orm
β是用來平衡Precision,Recall在F-score計算中的權重,取值狀況有如下三種:htm
通常狀況下,β取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)