分类模型的评价指标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)

相关文章
相关标签/搜索