1.7 什么时候该改变开发/测试集和指标?(When to change dev/test sets and metrics)
Last updated
Last updated
算法模型的评价标准有时候需要根据实际情况进行动态调整,目的是让算法模型在实际应用中有更好的效果
假设有两个猫的图片的分类器:
评估指标:分类错误率
算法A:3%错误率
算法B:5%错误率
初始的评价标准是错误率,A更好一些。实际使用时发现算法A会通过一些色情图片,但是B没有。从用户的角度来说,更倾向选择B模型,虽然B的错误率高一些。这时候需要改变之前只使用错误率作为评价标准,考虑新的情况进行改变。如增加色情图片的权重,增加其代价
假设开始的评估指标如下:
该评估指标对色情图片和非色情图片一视同仁
修改的方法,在其中加入权重:
通过设置权重,当算法将色情图片分类为猫时,误差项会快速变大
概括来说,机器学习可分为两个过程:
Define a metric to evaluate classifiers
How to do well on this metric
第一步是找靶心,第二步是通过训练,射中靶心。但是在训练的过程中可能会根据实际情况改变算法模型的评价标准,进行动态调整,如果评估指标无法正确评估算法的排名,则需要重新定义一个新的评估指标
对example1中的两个不同的猫图片的分类器A和B:
实际情况是一直使用网上下载的高质量的图片进行训练;当部署到手机上时,由于图片的清晰度及拍照水平的原因,当实际测试算法时,会发现算法B的表现其实更好
如果在训练开发测试的过程中得到的模型效果比较好,但是在实际应用中所真正关心的问题效果却不好的时候,就需要改变开发、测试集或者评估指标
Guideline:
定义正确的评估指标来更好的给分类器的好坏进行排序
优化评估指标