敏捷数据科学研究的最佳建议

笔者邀请您,先思考:

1 如何做敏捷数据科学项目?

几天前,我读了Shay Palachy和Ori Cohen关于敏捷数据科学项目管理的两篇很棒的文章。这些文章讨论了数据科学项目的不同阶段,以及它们与常规软件项目有何不同。这些文章启发我写下自己对敏捷数据科学的看法,这些看法关注研究方法,而不是整个项目阶段。

敏捷数据科学研究非常困难,当您不确定您的问题是否可以解决时,如何进行时间评估呢?在查看数据之前,您如何计划您的输出?您可能做不到。敏捷数据科学需要很多调整,在这篇文章中,我将分享一些最适合我的敏捷数据科学研究的最佳实践。

设定项目目标

每个机器学习项目都应该从定义项目的目标开始。我们必须定义什么是一个好的结果,以便知道什么时候停止研究和继续下一个问题。此阶段通常由业务利益相关者完成。

目标由3个问题定义:

  • 我们正在优化的KPI是什么? 这可能是项目中最重要的问题,KPI必须可以通过测试集来衡量,但也要与业务KPI尽可能相关。
  • 评估方法是什么? 测试集的大小是多少? 我们需要时间序列分组/组拆分吗? 我们需要在线测试吗?
  • 有价值KPI的最小值是什么? 有时机器学习模型将取代一些简单的启发式算法,即使65%的准确率对业务也是非常有价值的。 我们需要定义什么是成功。

总是与基线模型进行比较

什么是好的表现是一个非常难的问题,它很大程度上取决于问题的困难程度和业务需求。我的建议是通过构建一个简单的基线模型来开始建模,它可以是一个简单的机器学习模型,使用基本特征,甚至是一个业务规则(启发式),就像重要类别中的平均标签一样。 通过这种方式,我们可以比较基线来衡量我们的效能,并监控我们在任务中的改进。

从简单的模型开始

迭代是敏捷开发的核心特征之一。 在数据科学项目中,我们不会像工程团队那样迭代特征,我们会迭代模型。从具有少量特征的简单模型开始并使其迭代地变得越来越复杂以具有许多优点。当模型足够好并且节省时间和复杂性时,您可以随时停止。 您确切知道您所做的每项更改如何影响模型性能,这为您的下一次实验提供了直觉,也许最重要的是,通过迭代增加复杂性,您可以更轻松,更快地调试模型中的错误和数据泄漏。

计划子目标

计划研究项目很难,因为它们有很大的不确定性。 根据我的经验,最好使用子目标来规划您的项目,例如,数据探索,数据清理,数据集构建,特征工程和建模是研究的一小部分,您可以至少在几周内制定计划。 这些子目标可以在没有最终模型的情况下自行创造价值。 例如,在数据探索之后,数据科学家可以为业务人员提供可操作的见解,数据集清理和构建可以帮助其他数据科学家和分析师立即做自己的项目。

快速失败

快速失败可能是我最重要的一点,可能是最难做到的。 在每次迭代中,您必须问自己,模型性能达到最低有价值KPI的概率是多少? 我认为迭代地使模型更复杂真的有助于这一部分。 添加更多功能并尝试更多模型通常会带来渐进式改进。 如果您的模型性能为70%且您的最低有价值KPI为90%,那么您可能无法实现这一目标,因此,您需要停止项目并转向下一个问题或更改一些极端的内容,例如更改标签或标记更多的数据。 我并不是说你不应该试图解决非常困难的问题,只要确保你没有浪费时间在可能无法实现项目目标的方法上。

尽快转向生产

我的最后建议是尽可能早地将模型部署到生产环境中,或者在模型有价值之后稍微部署一下。 我知道也许你的最终模型会有完全不同的特征,很多工作都会被浪费掉。 但是,首先,你的模型给出了价值,为什么要等待? 其次,更重要的是,在很多情况下,生产有自己的限制,一些特征在生产系统上不可用,有些特征有不同的格式,可能你的模型是减速或使用大量的RAM等,及早解决这些问题,可以节省大量不切实际的建模时间。

作者:yonatan hadar 原文链接: https://towardsdatascience.com/my-best-tips-for-agile-data-science-research-b40365cc979d

原文发布于微信公众号 - 数据科学与人工智能(DS_AI_shujuren)

原文发表时间:2019-02-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券