第二个模型是一个压根不能工作的“坏模型”,它在这 10000 封邮件中完全没有找出任何垃圾邮件,如表 6-3 所示。
奇怪的是,按照正确率的计算公式,在此场景下,这个不能工作的模型算出来的正确率居然更高,为 98.5%。计算过程为:
显然,第二个不能工作的模型对我们而言没有任何价值,该场景下的正确率不能正确反映模型的性能,即我们所说的“正确率悖论”。这也是另外一个从侧面说明我们做机器学习研究时必须先理解问题,因地制宜地选取指标,不能抱着特定方法僵化操作的例子。
现在我们需要采用另外的评价指标来对这个测试集进行度量,“精确率”是一个比较合适的选择。精确率是针对模型预测结果而言的,它是指“被模型正确标记的正例样本”在“被模型检索到的所有样本”中所占的比例,通俗点说就是“预测为正的样本中有多少是真正的正例样本”,再通俗点的说法就是“你的预测有多少是对的”。精确率反映的是模型的“查准比例”,它的计算公式如下所示:
$$
\$ 123,456
$$
根据这个公式,可以算出前面两个模型的精确率,模型一的精确率是 100/$( 1 0 0 + 1 5 0 ) = 4 0 \%$ ,而模型二没有工作,不论正确与否,它没有检索出任何一个样本,即公式中分母部分为零,因此精确率对模型二是毫无意义的,这就如实地反映出了一个无法工作的模型是没有意义的这个事实。使用精确率评估这两个模型的预测结果要比正确率更为合适。
最后一个指标“召回率”是针对测试集中被正确检索的样本而言的,它表示的是样本中有多少正例被模型正确预测了。“正确预测”有两种可能,一种是把实际中的正例预测成真正例(TP),另一种是把实际中的反例预测成假反例(FN),即以下公式:
第 6 章 机器学习概览
231