分类方法经常使用的评估模型好坏的方法.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)