简单理解 TP、FN、FT 及 TN和准确率、精确率、召回率 的含义

在机器学习或是其他地方,经常会看到TP、FN、FT 和  TN这几个字符,那到底是什么意思呢?

简单来讲其实就是预测结果的两种情况(正确和错误)和真实结果的两种情况(正的和负的)的两两组合,2*2=4,总共有四种情况。

P:positive 正的,即真实值是正的;

N:negative 负的,即真实值是负的;

T:true 正确的,即预测是正确的;

F:false 错误的,即预测是错误的。

 

下面通过一个例子来看看。

预测某班级学生是否去上课了:

假设某大学某班级总共100个人,该班级学风和纪律比较差,在一次上课中,真实情况是有50个人去上课了,另外50个人没去上课。

 

我们有一个判断某个学生是否去上课的模型,该模型对这次的预测情况如下:

预测60个人去上课了,但实际情况是这60个人中有40个人去上课了,即【预测的这60个人中有40个人预测对了,这40个人确实是去上课了,对应TP=40】;【有20个人预测错了,这20个人其实是没去上课,对应FP=20】;

预测40个人没去上课,但实际情况是这40个人中有10个人去上课了,即【预测的这40个人中有30个人预测对了,这30个人确实是没去上课,对应FN=10】,【有10个人预测错了,这10个人其实是去上课了,对应TN=30】。

 

根据上面的描述(真实值和预测值)可以画出如下表格(该矩阵也称为混淆矩阵):

  实际情况
去上课了=P 没有去上课=N
预测结果 去上课了 TP=40 FP=20
没有去上课 FN=10 TN=30

所以,总共预测对的人数:TP+TN=40+30=70;

总共预测错的人数:FP+FN=30;

因此,可以根据上面的数据计算几个指标:

1.准确率

预测正确的数量(预测结果中真正去上课了和真正没去上课的人数)占总样本数的百分比。在该例中即为预测真正去上课了和真正没去上课占全班人数的比例。

Accuracy = (TP+TN) /  (TP+TN+FP+FN) = 70 / 100 * 100% = 70 %

2.精确率 / 查准率

预测结果为判断依据,预测为正例(预测为去上课了TP+FP)的样本中预测正确(预测真正去上课了TP)的比例。在该例子中即为预测为去上课了中真正去上课了的人数的比例。

Precision = TP / (TP+FP) = 40 / (40+20) * 100% = 66.7%

3.召回率 / 查全率

实际样本为判断依据,实际为正例(真实值中去上课了的人数TP+FN)的样本中,被预测正确的正例(去上课了的学生中真正被预测正确的人数TP)占总实际正例样本的比例。

Recall = TP / (TP+FN) = 40 / (40+10) * 100% = 80%

4.F1

单独用精确率或者召回率是否能很好的评估模型好坏,举个例子:

1、什么情况下精确率很高但是召回率很低?

一个极端的例子,比如我们黑球实际上有3个,分别是1号、2号、3号球,如果我们只预测1号球是黑色,此时预测为正例的样本都是正确的,精确率p=1,但是召回率r=1/3。

2、什么情况下召回率很高但是精确率很低?

如果我们10个球都预测为黑球,此时所有实际为黑球都被预测正确了,召回率r=1,精确率p=3/10。

F1值就是中和了精确率和召回率的指标:

F1=\frac{2PR}{P+R}

当P和R同时为1时,F1=1。当有一个很大,另一个很小的时候,比如P=1,R~0,此时F1~0。分子2PR的2完全了为了使最终取值在0-1之间,进行区间放大,无实际意义。

你可能感兴趣的:(机器学习,TP,FN,FT,TN)