本文主要是介绍机器学习中TP,TN,FP,FN,Acc,Pre,Sen, Rec的含义,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、 TP,TN,FP,FN的理解
定义
第一个字母T/F代表预测的结果是否和实际情况相符:即如果真实情况为正样本(P),预测为正样本(P),则为T;如果真实情况为负样本(N),预测为负样本(N),则为T;如果真实情况为P,预测为N,则为F;如果真实情况为N预测为P,则为F。
第二个字母P/N代表预测结果的正负:如果预测为正样本,则为P;如果预测为负样本,则为N。
TP:true positive,被判定为正样本,事实上也是正样本;
TN:true negative,被判定为负样本,事实上也是负样本;
FP:false positive,被判定为正样本,但事实上是负样本;
FN:false negative,被判定为负样本,但事实上是正样本;
举例
我们使用牧童放羊的例子作为例子:
有一位牧童要照看镇上的羊群,但是他开始厌烦这份工作。为了找点乐子,他大喊道:“狼来了!”其实根本一头狼也没有出现。村民们迅速跑来保护羊群,但他们发现这个牧童是在开玩笑后非常生气。 [这样的情形重复出现了很多次。] 一天晚上,牧童看到真的有一头狼靠近羊群,他大声喊道:“狼来了!”村民们不想再被他捉弄,都待在家里不出来。这头饥饿的狼对羊群大开杀戒,美美饱餐了一顿。这下子,整个镇子都揭不开锅了。恐慌也随之而来。
我们做如下定义:
“狼来了”是正类别P;
“狼没来”是负类别N。
2、Acc, Pre, Sen, Rec的理解
2.1 准确率Accuracy
正确率是我们最常用的指标,就是被分对的样本比例,表示预测正确占总数据的比例:
Acc=(TP+TN)/(TP+TN+FP+FN)
注:准确率是我们最常见的评价指标,而且很容易理解,就是被分对的样本数除以所有的样本数,通常来说,正确率越高,分类器越好。
准确率确实是一个很好很直观的评价指标,但是有时候准确率高并不能代表一个算法就好。比如某个地区某天地震的预测,假设我们有一堆的特征作为地震分类的属性,类别只有两个:0:不发生地震、1:发生地震。一个不加思考的分类器,对每一个测试用例都将类别划分为0,那那么它就可能达到99%的准确率,但真的地震来临时,这个分类器毫无察觉,这个分类带来的损失是巨大的。为什么99%的准确率的分类器却不是我们想要的,因为这里数据分布不均衡,类别1的数据太少,完全错分类别1依然可以达到很高的准确率却忽视了我们关注的东西。再举个例子说明下。在正负样本不平衡的情况下,准确率这个评价指标有很大的缺陷。比如在互联网广告里面,点击的数量是很少的,一般只有千分之几,如果用acc,即使全部预测成负类(不点击)acc也有 99% 以上,没有意义。因此,单纯靠准确率来评价一个算法模型是远远不够科学全面的。
2.2 错误率Error rate
错误率与准确率相反,表示被分类器错分的比例。
error rate=(FP+FN)/(TP+TN+FP+FN)
注:一般来说错误率与准确率相加等于1,一般作为评价标准时,只计算一个就可以。
2.3 灵敏度Sensitive
灵敏度表示所有正例中,被分对的比例,衡量给了分类器对正例的识别能力。
Sen=TP/P=TP/(TP+FN)
灵敏度与召回率Recall计算公式完全一致,用例子说明即为在地震中预测对地震的数目占实际地震的数目的比例。表达了对正例的识别能力。
2.4 特效度Specificity
特效度表达了对负例的识别能力,和灵敏度相似。
Spe=TN/N=TN/(TN+FP)
2.5 精确度Precision
精度是精确性的度量,表示被分为正例的示例中,实际为正例的比例:
Pre=TP/(TP+FP)
2.6 召回率Recall
表示在所有实际正向数据中,有多少预测正确了,与灵敏度一样。
Rec=TP/(TP+FN)
2.7 综合评价指标(F-Measure)
Precision和Recall有的时候会出现矛盾的情况,这样就需要综合考虑他们,最常见的办法就是F-Measure
当参数α=1时,就是最常见的F1
这篇关于机器学习中TP,TN,FP,FN,Acc,Pre,Sen, Rec的含义的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!