如何避免机器学习陷阱:一份给研究员的指南(4) How to avoid machine learning pitfalls: a guide for academic researchers

上文:如何避免机器学习陷阱:一份给研究员的指南(3)


如何避免机器学习陷阱:一份给研究员的指南(4)

How to avoid machine learning pitfalls: a guide for academic researchers

Michael A. Lones*

6. 如何报告你的结果

学术研究的目的不是自吹自擂,而是一个贡献知识的机会。为了有效的贡献知识,你需要完整的描述你所有的工作,包括有效的工作以及无效的工作。机器学习通常都是权衡,一个模型在问题的所有方面都优于其他模型是很少见的,在报告结果和结论时,你应该详细的深思熟虑的表达这些权衡。

6.1 心态坦然

首先,公开你做的工作以及你的发现,这会让其他人更容易基于你的工作前进。特别是让别人能获取你的模型是很有效的。例如,建立一个脚本能完成所有的工作,并在你发表结果时共享该脚本。这意味着别人能较快的复现你的工作,这样增加了你工作的可信度。也有利于其他工作者对比不同的模型,不再需要从头复现你的工作。共享这些信息也使得你更加谨慎高质量的记录你的实验,并编写清晰的代码,这对自己和他人都是有益的。值得注意的是,在机器学习社区里,可复现问题越来越突出,所以,在未来除非你充分的共享你的工作和相关记录,不然可能很难发表你的工作结果【看这里】。

6.2 多角度报告结果

在评估和比较模型是,一种更谨慎的做法是使用多个数据集,这样可以克服个别数据集自身的缺陷,也能更完整的揭示你模型的效果。每个数据集统计报告多个数据也是很好的方式,因为多个指标呈现了不同的结果,并增加了公开程度。如果公开了准确率这一指标,那再包含对类别失衡不敏感的指标也是有益的。如果你部分指标是精度、召回率、敏感性特异性,那应再包含模型错误率等。同时明确说明你使用的指标的计算方式。例如你报告了F-scores,则明确说明是F1还是其他准确率和召回率的平衡方式。如果你报告了AUC,那要明确是ROC曲线的面积还是PR曲线的面积。更多的讨论【看这里】。

6.3 不要超脱数据本身进行归纳

最重要的是不要得出不准确的结论,这有可能导致其他研究人员误入歧途。常见错误是,做出的一般性结论,却没有得到用于训练和评估模型的数据的支撑。例如,你的模型在一个数据集上做的很好,并不意味着他在其他数据集上也表现很好。虽然你可用通过使用多个数据集获得更可靠的结果,但从实验中推断的结果总是有限制的。这其中有许多原因【看这里】,很多因素都和数据集的管理方式有关。一个常见问题是存在偏差,或者说抽样误差,数据不能充分代表现实世界。另一个问题是重叠,多个数据集可能不是独立的,可能有相似的偏差。还有质量问题,这是深度学习数据集特有的问题,对数据量的巨大需求限制了可以进行质量检查的数量。简而言之,不要夸大你的发现,并意识到他们的局限性。

6.4 谨慎报告统计显著性

我们已经讨论了统计检验,以及如何使用统计检验来确定模型间的差异。然而,统计检验并不万能,有些是保守的,倾向于低估显著性,其他的是宽松的,倾向于高估显著性。这意味着阳性检测并不意味着某件事很显著,阴性也不意味着某件事不显著。以及使用阈值确定显著性的问题,例如95%的置信度下(p值<0.05时)意味着20次中有1次不准确。实际上,统计学家越来越倾向不要使用阈值,而且报告p值,让读者自行理解。除了统计学上的显著性,另一个需要思考的是两个模型间的差异是否真的重要。如果有足够的实例,你总是可以发现显著的差异,即使实际性能差异很小。为了更好的说明某件事是否重要,你可以测量效应大小。有很多方法:Cohen’sd统计可能是最广泛使用的,而更健壮的方法如Kolmogorov-Smirnov是更可取的。更多信息【看这里】。

6.5 深入观察你的模型

经过训练的模型包含很多有用信息,不幸的是,许多作者都只报告了一个模型最终的性能指标,而没有给出说明这个模型究竟学习到了什么。请记住,研究的目的不是要获得比别人更高的准确率,而是产生知识与新见解,并与研究社区分享。如果你能做到这一点,你的成果将有可能获得更好的发表。所以,一定要深入理解你的模型,试着理清它们是如何做出决策的。对于想决策树这样的模型,进行模型可视化会有帮助,大多数库都可以完成。对于复杂的模型,如深度神经网络,考虑使用可解释AI技术提取知识【看这里】,它们不太可能确切的告诉你模型在干什么,但有可能给你提供一些有用的信息。

7. 最后的一些想法

这篇文档没有告诉你需要知道的一切内容,有时也没有明确的结论,甚至我告诉你的事情有可能是错误的或者说有争议的。而这恐怕就是研究的本质。关于如何进行机器学习的理论几乎总是落后于实践,学术界也总是对最佳方法存在分歧,我们今天认为正确的东西明天可能就不正确了。因此,你必须像对待其他研究领域一样,以开放的心态对待机器学习,愿意跟上最新的发展,并虚心接受自己并非全知全能。

8. 致谢

谢谢每一个给本文初稿提供反馈意见的人。(译者:感谢每个看到这的读者,希望这篇文章能有所帮助)

你可能感兴趣的:(如何避免机器学习陷阱:一份给研究员的指南(4) How to avoid machine learning pitfalls: a guide for academic researchers)