模型评价指标(准确率、精度、召回率)

机器学习中我们常常使用准确率、精度、召回率三大指标评价一个模型训练的好坏,那么这三大参数分别代表什么意义?
在介绍评价指标前,需要先明确几个计算指标:

  • 真正例(True Positive,TP):模型将测试样本中True类型的样本预测为True的样本数量
  • 假负例(False Negative,FN):模型将测试样本中True类型的样本预测为False的样本数量
  • 假正例(False Positive,FP):模型将测试样本中False类型的样本预测为True的样本数量
  • 真负例(True Negative,TN) :模型将测试样本中False类型的样本预测为False的样本数量

准确率(Accuracy)

准确率描述的是模型预测正确(包括真正例、正负例)的样本数量站总样本的比例,即模型预测的准确率,计算公式如下所示:
Accuracy=真正例+真负例训练样本总数=TP+TNTP+FN+FP+TN Accuracy=\frac{真正例+真负例}{训练样本总数}= \frac{TP+TN}{TP+FN+FP+TN} Accuracy=+=TP+FN+FP+TNTP+TN
准确率只能在一定程度上表示一个模型的好坏,如果在测试数据集中的True样本的数量远大于False样本的数量,那么模型将所有样本都标记为True,此时的Accuracy值一定是很高的,但是这能表示这个模型预测的很准确吗?显然是不能的,因此我们要引入其它的评价标准。

精度(Precision)

精度描述的是模型预测为True且实际为True的样本数量占模型总预测为True的样本数量的比例,计算公式如下所示:
Precision=真正例真正例+假正例=TPTP+FP Precision =\frac{真正例}{真正例+假正例}=\frac{TP}{TP+FP} Precision=+=TP+FPTP
我们在训练模型中当然希望模型预测的结果的精度很高,但是精度高的模型一定好吗?显然是否定的,假设模型只预测出来一个True样本,且样本实际也是True,那么此时的Precision是1,但是模型会预测到很多的假反例,这样的模型依然是不理想的,因此我们仍然要引入其它评价标准。

召回率(Recall)

召回率描述的是模型预测为True且实际为True的样本数量占测试数据集中实际为True样本的总数的比例,计算公式如下所示:
Recall=真正例真正例+假负例=TPTP+FN Recall=\frac{真正例}{真正例+假负例}=\frac{TP}{TP+FN} Recall=+=TP+FNTP
召回率越高表示模型能够找到测试样本中True样本的能力越强,但是如果模型将所有的测试样本全部预测为True,此时的Recall值为1,但是这样的模型仍然不是一个理想的模型。

根据上述分析,我们知道精度率和召回率是互相矛盾的,往往模型具有较高的精确率的时候召回率会很低,反之召回率越高则精确率越低,因此在实际运用中,我们常常要根据实际需求统筹考虑准确率、精度、召回率,这样才能训练出最优的模型。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐