精确率(precision)与召回率(recall)

这两个”率”经常看到,但也很容易忘记怎么回事,所以我在这里通过博客的方式再记录一下,加深印象。

样本数据

用于机器学习的样本一般是这样的:

特征向量 -> 分类

即数据已经标注好了。

拆分数据

将样本数据分成2份,一份是用于训练模型的,一份是用来验证模型性能(效果)的。

模型

将训练数据喂给机器学习算法,得到一个模型。

模型可以预测任意特征向量的分类,比如预测用户是否点击某个广告,结果就是点/不点。

评估

有了模型,就可以把验证数据集过一遍模型预测,得到每条数据的预测结果。

接下来,一般会评估2个指标:

  • 精确率(precision)
  • 召回率(recall)

精确率,就是评估模型预测的准不准,是不是出现了很多的错误预测。因为验证集是我们从样本数据中拆出来的,都是标注过原本分类的,所以只需要和模型预测的分类做比较就可以评估出预测效果了。

这里分类有2种,点击和不点击,我们只需要去评估一下点击的预测准确率。

准确率 = 预测正确的点击 / 预测为点击

比如100条数据,模型预测60条的分类是点击,其中只有50条在原始标注中也是点击,那么准确率是:

准确率 = 50 / 60

也就是说,模型预测有60条是点击分类,其中50条预测正确。

召回率 = 预测正确的点击 / 样本为点击

召回率表达的是模型能否把尽可能多的点击样本给找出来。

如果希望尽可能多的提升召回,那么可能意味着模型偏向于预测点击分类,从而可能导致准确率下降。

参考资料

《机器学习性能评估指标》

如果文章帮助您解决了工作难题,您可以帮我点击屏幕上的任意广告,或者赞助少量费用来支持我的持续创作,谢谢~