二分类模型评价指标
0. 前言
前面学习了一些分类算法,但是对于如何评价模型的好坏并未有太多了解,故此篇博客来讨论一下这个问题。
二分类问题
二分类问题其实就是预测某个样本是或不是的问题,在计算机中的是或不是我们用1和0来表示,即预测该样本是1这类还是0这类。
举个栗子:预测某条评论是不是正面的评价
用10条数据来说明:
某条评论是不是正面评价 | 实际结果(1:是,0:不是) | 预测结果 | 预测对了么? |
---|---|---|---|
是 | 1 | 0 | × |
是 | 1 | 0 | × |
是 | 1 | 1 | √ |
是 | 1 | 1 | √ |
是 | 1 | 1 | √ |
不是 | 0 | 0 | √ |
不是 | 0 | 0 | √ |
不是 | 0 | 0 | √ |
不是 | 0 | 0 | √ |
不是 | 0 | 1 | × |
对于二分类的问题,可以将样本根据真实类别与预测类别进行组合,有4中组合结果(真正例、假正例,真反例、假反例),由此会得到一个分类结果的混淆矩阵。
混淆矩阵
真实情况 | 预测结果 | |
真 | 假 | |
真 | TP(真正例) | FN(假反例) |
假 | FP(假正例) | TN(真反例) |
以上面表格中的数据来建立一个混淆矩阵就是:
真实情况 | 预测结果 | |
真 | 假 | |
真 | 实际:正面评价 预测:正面评价 √ |
实际:正面评价 预测:反面评价 × |
假 | 实际:反面评价 预测:正面评价 × |
实际:反面评价 预测:反面评价 √ |
将上面的文字用数据代替,则混淆矩阵如下:
真实情况 | 预测结果 | |
真 | 假 | |
真 | 3 | 2 |
假 | 1 | 4 |
关于TP FP TN FN,这就是上面提到的4种组合,实际是由这4个英文单词组合:
True、False、Positive、Negative
① 其中T和F就是我们上面表格中的√、×,即最终预测对了还是错了(是正确的预测还是错误的预测)。
② 其中的P和F就是机器学习算法或者模型预测的结果(P表示是正例、1、正面评价,N是反例、0、反面评价)
TP:正确预测为正例
FP:错误预测为正例
TN:正确预测为反例
FN:错误预测为反例
所以
真实情况 | 预测结果 | |
真 | 假 | |
真 | 3(TP) | 2(FN) |
假 | 1(FP) | 4(TN) |
准确率、精确率、召回率
还是用上边的10条数据为例讲解:
某条评论是不是正面评价 | 实际结果(1:是,0:不是) | 预测结果 | 预测对了么? |
---|---|---|---|
是 | 1 | 0 | × |
是 | 1 | 0 | × |
是 | 1 | 1 | √ |
是 | 1 | 1 | √ |
是 | 1 | 1 | √ |
不是 | 0 | 0 | √ |
不是 | 0 | 0 | √ |
不是 | 0 | 0 | √ |
不是 | 0 | 0 | √ |
不是 | 0 | 1 | × |
-
准确率
准确率(accuracy),即对于整个测试样本来说,机器学习算法预测对的占比。
用上面的数据来计算就是:预测对的数目(√)7个除以总的样本数目10条
7/10 = 70% -
精确率
精确率(precision),又称查准率,即机器学习算法预测为正(正例、0、正面评价…)的样本中,实际为正的占比。
用上面的数据来计算就是:3/4 = 75%
通过混淆矩阵,查准率P有如下计算公式:
P = T P T P + F P {TP}\over{TP+FP} TP+FPTP
即P = 3 3 + 4 {3}\over{3+4} 3+43 = 3 7 {3}\over{7} 73 = 75%
-
召回率
召回率(recall),又称查全率,即实际为正的样本中,预测为正的样本的占比。
用上面的数据来计算就是:3/5 = 60%
通过混淆矩阵,查全率R有如下计算公式:
R = T P T P + F N {TP}\over{TP+FN} TP+FNTP
即R = 3 3 + 2 {3}\over{3+2} 3+23 = 3 5 {3}\over{5} 53 = 60%
关于上述的查全率(召回率)和查准率(精确率)便于理解,可以有更形象化的解释:
查全率:宁可错杀一个,也不放过一个
查准率:宁可不杀,也不错杀
以查准率为纵轴、查全率为横轴作图,可以得到查准率-查全率曲线,即“P-R”曲线。
下面是西瓜书中的“P-R图”
可以观察到查准率和查全率大致呈一个反比的趋势。
如果能综合考虑查准率和查全率的性能度量肯定很好,F1就是这样的一个度量。
F1度量
F1是基于查准率与查全率的调和平均定义的:
1 F 1 {1}\over{F1} F11 = 1 2 {1}\over{2} 21 *( 1 P {1}\over{P} P1 + 1 R {1}\over{R} R1)
所以F1公式如下:
F1 = 2 ∗ 查 准 率 ∗ 查 全 率 查 准 率 + 查 全 率 {2*查准率*查全率}\over{查准率+查全率} 查准率+查全率2∗查准率∗查全率 = 2 ∗ P ∗ R P + R {2*P*R } \over {P+R} P+R2∗P∗R