11.何时需要改变数据集和衡量指标 翻译自 吴恩达新书-Machine Learning Yearning

更多好玩的机器学习教程: 进入袋马学院领一份 ,全部免费.

当开始一个新的项目时,我会快速的选择开发和测试数据集,这样可以给团队定出明确的目标。

我一般会要求我的团队在一周内,提出初始的开发/测试数据集和初始的衡量指标。一开始的想法不完美并没关系,但是要快,千万不能过度思考。但是这一做法不适合成熟的机器学习应用,比如反垃圾有效系统,据我所知,真的这些成熟的系统,工作人员会花费数月的时间来优化开发/测试数据集。

如果后来你发现,初始的开发/测试集或衡量指标无法到达目标,那你就需要尽可能快的改变它们了。比如,在开发数据集和衡量指标上,分数算法A好于分类算法B,但是在实际的产品中,分类算法B表现得更好,这就意味着,你需要改变你的开发/测试数据集或衡量指标了。

开发数据集和度量指标错误得评估算法A,可能有以下三个原因:

  1. 实际的数据分布与开发/测试集中的数据不同
    比如初始的开发/测试集中都是成年的猫咪图片,而你的应用中,用户上传的都是小猫咪的图片,这时开发和测试集中的数据分布不同于真实的数据分布,在这种情况下,你需要更新你的开发/测试样本集,让其于实际的数据分布一致。
    11.何时需要改变数据集和衡量指标 翻译自 吴恩达新书-Machine Learning Yearning_第1张图片
  2. 在开发数据集上发生了过拟合
    重复的开发数据集上评估你的想法,可能会逐渐让算法产生过拟合现象。当你完成开发时,你应该在测试数据集上评估你的系统优劣。如果你发现算法在开发数据集上的编写远好于测试样本集,这就意味着你的算法在开发数据集上产生了过拟合。这时,你需要获取一个新的开发数据集。如果你需要跟进你团队的进展,你可以定期的在测试数据集上评估你的系统,比如一周一次或一个月一次。但是对算法做出决策时,不要用测试数据集上的结果,比如不能用测试结果的好坏,来决定是否要回滚到上一周的系统上。如果你这么做了,很可能会让你的算法在测试数据集上,发生过拟合,之后你就不要指望测试数据集能给你提供无偏的估计了。
  3. 度量指标跟项目需要优化的目标不一致
    假设你是用分类准确率作为猫咪应用的衡量指标。在此指标下,分类算法A优于分类算法B。但是当你尝试使用这两个算法时,发现算法A偶尔会让色情图片也通过筛选。算法A虽然准确率更高,但是偶尔让色情图片通过,这却是不可接受的。这时度量指标无法识别出,其实算法B更适合于我们的产品。这时度量指标就不能帮助我们找出更好的算法了。此时我们就需要改变我们的度量方法了。比如算法让色情图片通过的时,我们就加入很重的惩罚项。我强烈建议使用新的度量指标,来给团队定义一个新的优化目标,而不是在没有可信度量指标时,通过手动的方式选择算法。

在项目开发时,变更开发/测试集和评估指标是很平常的事。拥有一个初始开发/测试集和衡量指标,可以帮助你快速的迭代。如果你发现开发/测试集和度量指标,不能再给你们提供正确的前进方向了,这也没什么大不了的,只需改变它们,让你的团队知道新的方向即可。

更多好玩的机器学习教程: 进入袋马学院领一份 ,全部免费.

你可能感兴趣的:(吴恩达-YEARNING)