机器学习性能衡量指标

评价算法优秀程序的时候,常用一系列指标来衡量,主要包括:Precision,Recall,F-1 Score,为什么要设计这些值?单单用Precision不行吗?

第一种解释:

1, 什么是Precision ?

Precison,准确度,主要表示检测出的Alert中有多少是正确的判断(True Positive,TP)。

实际使用中,由于样本中正常数据和异常数据的比例不同,准确性可能不能体现真实的算法性能,举个例子:

癌症检测:假定99.5%的人是健康的,0.5%的人患有癌症。

错误检测算法:简单所有患者都判断为健康的。

准确性:上述算法准确性为99.5% !!只有0.5%的不健康的人被误判为健康。

 

2, 为什么用Recall ?

上例中一种明显错误的检测算法可以轻松达到99.5%的准确度,所以准确性不能全面衡量算法优秀程度,为此设立了Recall值来衡量。

Recall,召唤率,异常数据被检测出来的比例。Recall = TP/(TP+FN)

在上例中,Recall就是0,没有异常值能够被检测出来。

 

3, 为什么用F-1 Score ?

将Precision和Recall结合起来就可以更综合衡量算法的优秀程度,F-1就是这样一个指标:

F-1 Score = 2*Precision*Recall /(Precision+Recall)

注:不能简单对Precision和Recall求均值(Average),上面那个明显错误的例子,Precision = 0.995, Recall = 0, 均值有0.5,明显不合理。

而采用F-1Score,F1依然是0,更合理。

第二种解释:

1. 四个概念定义:TP、FP、TN、FN

先看四个概念定义: 
- TP,True Positive 
- FP,False Positive 
- TN,True Negative 
- FN,False Negative

如何理解记忆这四个概念定义呢?

举个简单的二元分类问题 例子:

假设,我们要对某一封邮件做出一个判定,判定这封邮件是垃圾邮件、还是这封邮件不是垃圾邮件?

如果判定是垃圾邮件,那就是做出(Positive)的判定; 
如果判定不是垃圾邮件,那就做出(Negative)的判定。

True Positive(TP)意思表示做出Positive的判定,而且判定是正确的。因此,TP的数值表示正确的Positive判定的个数。 
同理,False Positive(TP)数值表示错误的Positive判定的个数。 
依此,True Negative(TN)数值表示正确的Negative判定个数。 
False Negative(FN)数值表示错误的Negative判定个数。

2. Precision、Recall、Accuracy、F1 Score(F Score)

四个概念定义:

precision = TP / (TP + FP)
recall = TP / (TP + FN)
accuracy = (TP + TN) / (TP + FP + TN + FN)
F1 Score = P*R/2(P+R),其中P和R分别为 precision 和 recall
 
 
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

如果某个二元分类问题,训练拟合得到了几个模型假设,那么通常我们选择在验证集上,F1 Score 数值最大的那个模型假设。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值