数据代表了现代商业中最重要的竞争优势之一,并且在整个决策过程中对数据日益增长的依赖提升了数据科学家以及支持他们的 IT 团队的角色。但像所有部门一样,数据科学团队仍然会遇到他们的份内烦恼、挫折以及,嗯,恐怖故事。
点燃蜡烛,如果你敢,请阅读这些来自办公桌以外的惊悚数据科学故事!
当您必须在干草堆中找到针时
Sean Law,嘉信理财的首席数据科学家,最近在一个 2300 万行的 JSON 文件中遇到了这个“大海捞针”问题,该文件一直返回无效。不得不解析所有这些数据以找到破坏系统的少量小错误听起来像是一场噩梦,但这只是数据科学家的又一天。
大多数甚至所有数据科学家都熟悉这类问题,包括 Anaconda 高级数据科学家 Vicky Kwan,她在调查基础设施错误时遇到了类似的问题。在 300 行 CloudFormation 中搜索丢失的“ }”之后,CloudFormation 是一种用于建模、配置和管理 AWS 及第三方资源的基础设施即代码 (IaC) 服务,Vicky 最终修复了该错误并保持了 Anaconda 服务器的运行。
格式错误和数据转换噩梦并非数据科学家独有;包括 IT 在内的所有部门的技术人员经常与此类挑战作斗争。解析数据既费力又令人疲惫,但解决这些问题是将数据转化为见解并推动业务发展的重要组成部分。
我们在内部询问了一些关于处理数据转换和格式化的技巧和窍门。以下是我们团队的一些建议
-
IT 团队经常帮助将数据转换为不同的结构,例如 JSON 到 CSV。查看 Python 中的 pandas 库,以简化此过程。
-
使用现有的解析器,而不是编写自己的解析器。当您这样做时,使用解析器而不是正则表达式。“我只想使用正则表达式从这个 HTML 文档中提取电子邮件”这条路只会充满泪水。
-
永远不要忘记在任何转换后手动扫描数据样本。只需滚动浏览一些记录,您就会发现许多明显的错误,并且很容易假设“未引发错误”意味着“一切都按我预期的那样转换了”。
-
如果需要一遍又一遍地运行转换,那么对基本事物(如跟踪记录、事件时间或值)进行自动“快速一致性检查”非常有帮助。
当模型有点太准确时
如果您的模型返回的准确率接近 100%,那么您的第一反应应该是查找您哪里出错了,因为很可能在某个地方犯了错误。如果该模型侥幸逃过审查并投入生产,那么肯定会出问题。这个问题可能会对业务产生严重后果,并且是需要管理和监控的重要因素。
根据最近的 Reddit 帖子,多位用户遇到了这种情况,他们分享了他们令人毛骨悚然的故事
我正在审查一位数据科学家的预测模型。他们使用了神经网络,可能是因为他们只懂这个。他们的模型非常准确。近乎完美。这对我来说是一个危险信号。所以我深入挖掘。他们使用的是时间序列数据,随着时间的推移,这些数据丢失了很多。因为他们需要一个矩阵,所以他们必须对缺失的数据点做些什么。因此,他们用值 0 估算了所有缺失的数据。现在很大一部分数据只是 0。在我指出问题后,该模型结果证明毫无用处。– Reddit 用户
一位同事自信地宣称他的模型准确率达到了 98%。在代码审查中,我发现他没有正确拆分他的训练集和测试集。他几乎在他的整个测试集上进行训练……我不应该审查代码,它差点就投入生产了。– Reddit 用户
我只是在另一篇文章中评论过:一位经济学博士因为我询问他是否验证了他的模型而把我推开。我注意到他根本没有拆分他的数据集,并且,我引用他的话,做了“经济评估”……他的模型被部署了,并且明显不正确:它会预测住房质量评分,并将高收入住宅区估计为“低质量”。– Reddit 用户
代码就是代码,无论是用于纯软件开发、管理基础设施 (IAC) 还是数据科学模型。将久经考验的软件开发技术应用于数据科学可能很新颖,但您可以并且应该将来自其他技术领域的那些来之不易的经验教训应用于数据科学。例如,在模型开发期间进行结对编程可以帮助发现和消除错误并提高您的速度。
没有人会故意让模型失败,让第二或第三个人检查您的工作是确保改进的最佳方法。在发布之前要求进行代码审查也可以加强您团队的产出。
最后,必须在过程的每一步都考虑文档记录。这不仅可以保持代码的透明度并允许其他人发现您可能错过的东西,而且适当的文档记录也是 IT 治理的关键部分,并且会让您的审计师感到满意。
当您意识到自己的错误完全展示在利益相关者面前时
当您不确切知道自己哪里出错时,修复错误和审查模型可能会非常耗时。但有时您会立即发现它——只是在同事或利益相关者面前。
Dan Killam,旧金山河口研究所的环境科学家,最近在 Twitter 上分享了一个可怕的数据科学故事,讲述了一个真正令人毛骨悚然的事件:向关键受众展示带有错误标记的对象
在 Medium 的一篇帖子中,Vincent Vanhoucke,谷歌的杰出科学家,谈到了他作为实习生的第一个项目之一,以及一次失败如何导致了一生的教训
想象一下另一个恐怖故事:你是一名实习生,你被要求构建一个“是”与“否”的语音分类器。你有音频文件:yes1.wav、no1.wav、yes2.wav、no2.wav、yes3.wav 等等。你构建了你的分类器并获得了很好的结果。当您即将展示您的工作时,您发现您的模型实际上唯一做的就是读取音频文件文件名中的“yes”或“no”来确定答案,而不是听音频样本。因此,您羞愧地畏缩,哭了很多,并找到了最近的出口。–我的数据科学恐怖故事,Vincent Vanhoucke
我们都会犯错,这对我们这些刚刚开始职业生涯的人来说是个好消息。因为那些在我们之前来的人,那些我们仰望的领域名人——他们也会犯错。这是意料之中的。只需询问您的同事,每个人都会举例说明技术演示出错、向领导层进行的演示未达到目标或导致全球中断的生产变更。
有些人会认为,如果您没有犯错,那么您可能没有努力实现您的最佳表现。因此,以自我同情心接受您的绊倒,在当下对它们抱有幽默感,最重要的是,从它们中学习。有时,错误是最好的老师。
不要让可怕的故事阻碍您
数据科学团队和 IT 团队的挑战之间存在很多重叠,尤其是在确保组织准备好迎接未来目标方面。作为 IT 资源的正确配置和配置、数字资产稳定性和安全性的命脉,数据可能会让人感觉像是一个高风险,有时甚至是令人毛骨悚然的业务领域。
在任何职业生涯中,总会有一些时刻是可怕的、尴尬的或有压力的,但这些时刻对于学习和成长是必要的。通过一些努力,我们可以走出困境,回顾过去的“恐怖故事”,将它们视为挑战我们变得更好的时刻。凭借韧性、支持性社区和出色的工具,我们肯定会在前进的道路上找到一些特大号的糖果棒。
Anaconda 祝您万圣节快乐!