数据科学入门:概念、案例与大数据挑战
1. 数据科学与软件工程的类比
数据科学和软件工程有诸多相似之处。软件工程是将工程原理和方法应用于软件开发,目标是生产可靠的软件产品。而数据科学则是将科学原理和方法应用于数据收集、分析和报告,旨在从数据中合成可靠且可操作的见解,即数据产品。
软件开发生命周期(SDLC)规定了软件开发过程的主要阶段,包括项目启动、需求工程、设计、构建、测试、部署和维护。数据科学过程同样包含多个阶段:项目启动、数据获取、数据准备、数据分析、报告和行动执行,此外还有数据探索,它更像是一项贯穿全程的活动,而非独立阶段。
这两个领域的阶段相互交织,过程本质上是迭代和增量的。回顾是软件工程和数据科学中不可或缺的活动,通过回顾项目或过程,能确定哪些方面成功,哪些需要改进。而且,数据科学和软件工程都依赖多维度团队或团队协作,通常需要领域专家、软件工程师和数学家,同一个人在不同时期可能担任不同角色。另外,两者都倾向于通过自动化提高生产力、可重复性和质量。
2. 数据科学项目的主要阶段
数据科学过程的主要阶段不适合采用瀑布式处理,一个典型的数据科学项目会有多次迭代,类似于敏捷软件开发项目。阶段的概念只是提醒我们,随着时间推移,关注点会从一个阶段转移到另一个阶段。其中,项目启动是最关键的阶段,正如约翰·杜威所说:“一个表述恰当的问题,就解决了一半。”
Volere需求工程方法中的Brown Cow模型有助于解释项目启动阶段。该模型包含四个部分:How解决解决方案空间,What涉及问题空间,Now表示当前情况,Future描述期望状态。每个部分代表一个特定视角,有助于避免利益相关者之间的混淆。它包含一个从当前状态过渡到