模型评价指标(准确率、精度、召回率)
机器学习中我们常常使用准确率、精度、召回率三大指标评价一个模型训练的好坏,那么这三大参数分别代表什么意义? 在介绍评价指标前,需要先明确几个计算指标:
- 真正例(True Positive,TP):模型将测试样本中True类型的样本预测为True的样本数量
- 假负例(False Negative,FN):模型将测试样本中True类型的样本预测为False的样本数量
- 假正例(False Positive,FP):模型将测试样本中False类型的样本预测为True的样本数量
- 真负例(True Negative,TN) :模型将测试样本中False类型的样本预测为False的样本数量
准确率(Accuracy)
准确率描述的是模型预测正确(包括真正例、正负例)的样本数量站总样本的比例,即模型预测的准确率,计算公式如下所示:
A
c
c
u
r
a
c
y
=
真
正
例
+
真
负
例
训
练
样
本
总
数
=
T
P
+
T
N
T
P
+
F
N
+
F
P
+
T
N
Accuracy=\frac{真正例+真负例}{训练样本总数}= \frac{TP+TN}{TP+FN+FP+TN}
Accuracy=训练样本总数真正例+真负例?=TP+FN+FP+TNTP+TN? 准确率只能在一定程度上表示一个模型的好坏,如果在测试数据集中的True样本的数量远大于False样本的数量,那么模型将所有样本都标记为True,此时的Accuracy值一定是很高的,但是这能表示这个模型预测的很准确吗?显然是不能的,因此我们要引入其它的评价标准。
精度(Precision)
精度描述的是模型预测为True且实际为True的样本数量占模型总预测为True的样本数量的比例,计算公式如下所示:
P
r
e
c
i
s
i
o
n
=
真
正
例
真
正
例
+
假
正
例
=
T
P
T
P
+
F
P
Precision =\frac{真正例}{真正例+假正例}=\frac{TP}{TP+FP}
Precision=真正例+假正例真正例?=TP+FPTP? 我们在训练模型中当然希望模型预测的结果的精度很高,但是精度高的模型一定好吗?显然是否定的,假设模型只预测出来一个True样本,且样本实际也是True,那么此时的Precision是1,但是模型会预测到很多的假反例,这样的模型依然是不理想的,因此我们仍然要引入其它评价标准。
召回率(Recall)
召回率描述的是模型预测为True且实际为True的样本数量占测试数据集中实际为True样本的总数的比例,计算公式如下所示:
R
e
c
a
l
l
=
真
正
例
真
正
例
+
假
负
例
=
T
P
T
P
+
F
N
Recall=\frac{真正例}{真正例+假负例}=\frac{TP}{TP+FN}
Recall=真正例+假负例真正例?=TP+FNTP? 召回率越高表示模型能够找到测试样本中True样本的能力越强,但是如果模型将所有的测试样本全部预测为True,此时的Recall值为1,但是这样的模型仍然不是一个理想的模型。
根据上述分析,我们知道精度率和召回率是互相矛盾的,往往模型具有较高的精确率的时候召回率会很低,反之召回率越高则精确率越低,因此在实际运用中,我们常常要根据实际需求统筹考虑准确率、精度、召回率,这样才能训练出最优的模型。
|