
备注:此文是我在知乎上面的一篇回答 ,正好和这个系列相关,也引用了一些之前几篇文章讲到的内容。
一言以蔽之:这两者的区别取决于我们怎么定义数据科学。各位应该也都知道,实践中的数据科学是个融合怪:
- 从理论基础来说,包括了数学、统计、计算机科学、优化、机器学习等等
- 从业界实践来说,数据科学家核心需要建模,同时很可能需要写端到端的所有代码(从数据加载到清理到建模再到最后上线部署),因此也需要相当程度的写码能力(即计算机工程知识),有时候还要搞点可视化,技能包挺杂的。
所以我们怎么定义数据科学的边界在哪里呢?或者举个具体的例子:运筹优化算不算数据科学?我看到一部分人说数据科学就是统计学的一部分,那按照这个定义,运筹优化就不能算了,两者分明是不同的学科。但是,在业界实践中,至少在我所知道的多家咨询公司的数据科学业务里面,运筹优化至少占到30%。在目前的行业划分里面,要想解决“设计最优的流水线生产工序,使得成本最低效率最高”这类问题,只有数据科学家是对口的。
我们在把数据科学和统计学(或者任何一门已经比较明确定义的学科)对比的时候,首先要定义清楚数据科学这个融合怪是什么。在我个人看来,数据科学的定义是:
将现实问题转化为一个基于经验数据的数理模型,这个数理模型从一定程度上刻画了世界运作的规律。然后通过求解这个数理模型,我们得到的答案可以帮助我们在现实世界中做出决策
举一些我自己接触过的项目作为例子:
- 帮助服装百货公司如何打折进行定价:百货公司在给打折商品定价时,既需要考虑利润率(避免江南皮革厂这种直接血亏倒闭),也要考虑出货速度(按照预计时间清空库存才能及时上新货)。我们先用一个机器学习模型预测需求弹性(即:价格每变动一块钱,需求会对应变化多少),然后再通过一个优化模型(MIP)找到不同商品在不同时间点的最佳折扣力度。
- 帮助酒店集团做需求预测和定价:酒店的房间其实边际成本都一样,如何定价完全取决于需求而不是成本。因此,尽可能准确地预测房间需求量就有利于定价——如果知道一周后的那个周末会有很多人订房,开价就可以高一些,趁机赚一票。这里我们用机器学习模型(时间序列叠加XGBoost)基于历史数据和相关信息(比如是不是情人节要到了)对订房需求进行预测。
- 帮助制药公司优化供应网络:一家大型药企在欧洲的供应链非常臃肿,在同一个地区可能有好几个仓库和配送中心。通过网络优化模型(network flow model),我们给这家公司提供了如何将40多个节点简化为10多个节点的方案。
- 帮助金融投资公司判断长期趋势:投资界有个广受欢迎的理论是,一家公司的长期业绩表现应该符合均值回归,趋向于它同类公司的均值表现。基于这个理论,我们可以通过统计建模(采用基于条件概率的KDE),预测每家公司未来5-10年的业绩表现,帮助金融投资公司更好地规划长期投资组合。
以上这些都是建立基于经验数据的模型、找到理论解、转化为现实决策。用到的方法五花八门,但至少在业界应用里面,都被认为是数据科学。
如果你认同这个对数据科学的定义的话,那么我们似乎可以说,统计学是数据科学大框架下的方法论之一。总体都符合数据科学的“范式”(即paradigm,来自Thomas Kuhn的科学哲学理论),只不过统计学有自己独特的方法和逻辑,与机器学习、优化等并列于数据科学的框架之下。
但如果钻得更细些,我们也可以说:数据科学是一堆不同范式的融合。毕竟,深度学习和NLP有自己的通用套路:神经网络+SGD;而运筹优化也有自己的三板斧:目标函数+决策变量+限制条件。与其说是一整个统一的范式,数据科学应该更多是包含了一堆各自独立范式的混合学科。如果你从这个角度定义“范式”的话,那么数据科学就不是一个统一的大框架了。同时,统计学也未必就有一个统一的“范式”——频率学派、贝叶斯学派、乃至当下流行的算法建模流派(algorithmic modeling),都可以说是各自独立的范式。我们在业界比较经常应用的是贝叶斯学派和算法建模流派。所以从这个视角出发的话,我们也可以说:数据科学和统计学各自有不同的范式,两者之间有些范式是重叠的(比如贝叶斯模型)。
相信哪个结论,如开头所言,取决于我们如何定义数据科学——或者更深层次地说——如何定义一门学科的边界。