让科学回归到数据科学中——Daniel Whitenack

让科学回归到数据科学中——Daniel Whitenack

本篇文章为Daniel Whitenack在2017 Chicago Data Science Conference上演讲稿:“Putting the Science Back in Data Science”的译文,有轻微修改。

译者:Siwei Li。

讲员介绍:

丹尼尔·怀特纳克(Daniel Whitenack)

数据科学家兼首席技术开发员

目前就职于Pachyderm, Inc.

关于Pachyderm, Inc.

为数据的版本管理(data versioning)、数据处理分析流程的重现以及数据工程师间的合作(collaboration)提供解决方案以及开放性平台。

再现性

再现性(reproducibility),也被称为“可重复性”,乃科学中的一个重要方面。其意义在于在相同控制条件下,以相同分析步骤进行重复量测,经由多组分析数据比对其接近程度,重复分析之数据极为接近。所谓让科学回归到数据科学中,意义重在使再现性在数据科学行业中获得关注并予以实现。

为何重视再现性?

数据科学家通常是在团队中工作而非独自完成某个项目。在团队中的每个成员都有自己擅长的知识,所有成员共同解决一个复杂的问题。如果一个成员不能让其他成员理解自己提出的解决方案并重现自己的分析结果,那么其他成员就很难对这个或许不成熟的方案提供建议或者进行完善。

数据科学家可能不会完全记住自己之前的每一点工作,所以需要一些方法来重现曾经的分析结果。还有很多情形中,用户向开发者或者分析员询问对分析结果的解释,那么可以重现分析流程及分析结果就尤为重要。因此很多时候数据科学家必须重视再现性并实现对曾经分析结果的再现。

如何实现再现性?

面对问题时,数据科学家们应该力求提出尽量简洁的解决方案,因为简洁的解决方案更具有再现性并且相对更容易被实现,并且其他人也更容易理解简洁的方案。据统计,通常每写约20行左右的代码就可能出现一个错误或问题。因此解决方案越简洁,出错的数量和概率也相应越小。

为用户设计生产应用的目标是希望用户根据这些应用提供的预测来做决策。如果设计的应用非但不能表现出再现性,反而产生异样的结果,甚至设计者亦不能及时提供解决方案,那么即使未来该应用得到优化,用户也很可能不会选择再信任这样的应用。因此,为了使设计可以真正投入使用并且赢得用户的信任,设计者们需重视产品的再现性。即使使用的模型中含有随机性从而导致每次产生的结果不会完全相同,这也不意味着达不到再现性的要求。事实上,对于含有随机性的模型,再现性的含义在于对其随机程度的把控,例如结果的预计范围、结果的波动程度以及结果的平均表现等。为了实现再现性,借鉴软件工程领域中的作法,在数据行业中同样可以进行版本管理控制、留备历史代码版本。但是在数据分析中,一个模型的估计结果以及之后的预测结果都依赖于用什么样的数据训练这个模型。因此留备数据的历史版本也同样重要。

传统建模弊端vs新型

解决方案

从传统角度上讲,一个数据科学家根据可用的训练数据来建立模型,在此过程中会产生一系列文件。在这个数据科学家本人眼中,这些文件可以通过一个流程图有逻辑地联系起来。但是在其他合作者,这些文件的相互关系相对杂乱。因此这些文件便需要被重命名,以便它们各自的内容及作用能被体现出来从而能被其他人理解。这个缺点会在数据规模变更大时被放大。代码可能需要进行平行运行或者多个工作者要一起实施某个方案。代码内容不能被准确理解的这个问题将变得更加严重。

为此,Pachyderm公司提供了解决方案,包括提供数据版本管理(data versioning)以及数据流水线(data pipeline)。解决方案的策略是将每一个分析阶段的文件储存在一个虚拟容器中,对于自己或者其他合作者而言整个工作流程都更为清晰。Pachyderm的解决方案可以准确跟踪每条统计推断或者分析结果的上级模型,和训练出该上级模型的源数据。该解决方案的特点和优势在于,即使之后训练数据和模型被更新,曾经的历史记录也会被保留,无论想重复哪一段结果都可以实现Pachyderm公司的方案为数据科学家间的合作提供了便利的平台,为多阶段数据分析提供了有效的控制管理措施,并能掌控每个分析阶段的可扩展性(scalability)。