11. When to change dev/test sets and metrics 何时更改开发/测试集和评估指标(《MACHINE LEARNING YEARNING》翻译)

何时更改开发/测试集和评估指标

当开始一个新项目时,我一般会试图快速选择一个 开发/测试集 ,因为这可以给团队制定一个明确的目标。

我通常会要求我的团队在不到一周之内想出一个初始的开发/测试集和评估指标。提出一个不太完美的方案并迅速行动起来往往比过分考虑这些会更好。但是“一周”这个时间表并不适用于成熟的应用。例如,反垃圾邮件是一个成熟的深度学习应用。我曾经见过那些开发已经成熟的系统的团队可能会花费数月时间来获得更好的开发/测试集。

如果你后来发现你初始的开发/测试集或评估指标与你的目标并不完全一致,那么通过一切手段快速更改它们。例如,如果在你的开发集和评估指标上分类器A比分离器B表现好,但你的团队认为实际应用中分类器B更适合您的产品,这可能是一个你需要更改开发/测试集或评估指标的迹象。

有三个主要原因可能会造成开发集/评估指标不正确地把分类器A排得更高:

  1. 你需要做得好的实际数据分布和开发/测试集是不同的。
    假设你的初始开发/测试集主要是一些成年猫的照片。你查看猫app的后台,发现用户上传了比预期多很多的幼猫的照片。所以,开发/测试集的数据分布并不能代表你需要做好的实际的数据分布。这种情况下,更新你的开发/测试集,使其更具代表性。
    这里写图片描述

  2. 你已经过拟合了开发集。
    在开发集上重复地评估不同方法的过程可能导致你的算法逐渐对开发集“过拟合(overfit)”。当你做完开发后,你将在测试集上评估你的算法。如果你发现算法在开发集上的表现远好于在测试集上的表现,这可能是你已经过拟合开发集的迹象。这种情况下,你需要更新你的开发集了。
    如果你需要跟踪团队的进度,你也可以用测试集定期评估你的系统——每月或每周一次。但不要使用测试集来做出关于改进算法的任何决定,包括是否回退到上一周的系统。如果这样做了,你将开始过度拟合测试集,并且不可能再依靠它来给出系统性能的完全无偏估计(unbiased estimate)(你可能会在发表论文或做出重要商业决策是使用这个估计)。

  3. 评估指标正在衡量的并不是项目所需要优化的东西。
    假设对于你的猫app,你的评估指标是分类准确率。该指标现在把分类器A排在分类器B前面。但是假如你尝试了这两种算法,发现分类器A会偶尔允许色情图片通过。那么即使分类器A准确率更高,色情图片所带来的坏影响也意味着其表现是不被接受的。你需要做什么呢?
    这里,评估指标不能辨别出对产品而言算法B比算法A更好这一事实。所以,你不能再相信该指标能挑选出最佳算法。现在时改变评估指标的时候了。例如,你可以改变评估指标,严重惩罚色情图片分类错误。我强烈建议你选择一个新的评估指标,以此来为你的团队明确定义一个新的目标,而非在不信任的评估指标下一直前行,并恢复到手工选择分类器。

在项目中改变开发/测试集和评估指标是很常见的。拥有一个初始的开发/测试集和评估指标能帮助你快速迭代。如果你发现 开发/测试集和评估指标 不再使你的团队在正确方向上前进,这不是什么大问题!只需要改变它们,并确保你的团队知道新的方向。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值