这是一本将数据科学三要素商业理解、量化模型、数据技术全面打通的实战性著作,是来自腾讯、滴滴、快手等一线互联网企业的数据科学家、数据分析师和算法工程师的经验总结,得到了SQLFlow创始人以及腾讯、网易、快手、贝壳找房、谷歌等企业的专家一致好评和推荐。
全书三个部分,内容相对独立,既能帮助初学者建立知识体系,又能帮助从业者解决商业中的实际问题,还能帮助有经验的专家快速掌握数据科学的技术和发展动向。内容围绕非实验环境下的观测数据的分析、实验的设计和分析、自助式数据科学平台3大主题展开,涉及统计学、经济学、机器学习、实验科学等多个领域,包含大量常用的数据科学方法、简洁的代码实现和经典的实战案例。
部分(第 1~6 章) 观测数据的分析技术
讲解了非实验环境下不同观测数据分析场景所对应的分析框架、原理及实际操作,包括消费者选择偏好分析、消费者在时间维度上的行为分析、基于机器学习的用户生命周期价值预测、基于可解释模型技术的商业场景挖掘、基于矩阵分解技术的用户行为规律发现与挖掘,以及在不能进行实验分析时如何更科学地进行全量评估等内容。
第二部分(第7~9章)实验设计和分析技术
从 A/B 实验的基本原理出发,深入浅出地介绍了各种商业场景下进行实验设计需要参考的原则和运用的方法,尤其是在有样本量约束条件下提升实验效能的方法及商业场景限制导致的非传统实验设计。
第三部分(第10~12章) 自助式数据科学平台SQLFlow
针对性的讲解了开源的工程化的自助式数据科学平台SQLFlow,并通过系统配置、黑盒模型的解读器应用、聚类分析场景等案例帮助读者快速了解这一面向未来的数据科学技术。
(1)豪华作者阵容:作者全部是自腾讯、滴滴、快手等一线互联网企业的数据科学家、数据分析师和算法工程师,经验极为丰富。
(2)三维度深融合:将数据科学的3个维度商业理解、量化模型、数据技术全面打通,涵盖数据科学的应用场景、理论支撑和技术底座。
(3)应用场景面广:本书所有数据科学应用场景均来自商业环境,强调实用、可操作性强。
(4)方法论与案例:围绕3大主题给出了大量方法论和实践,方法论与案例的背景、代码、解读等模块深度融合。
为什么要写这本书
2011年,《哈佛商业评论》将数据科学称作21世纪吸引人的行业,随后,数据科学这个概念开始从互联网漫延到各行各业。但是人们对这个概念的内涵和外延并无统一的认知,同时,数据科学也不像软件工程、市场营销等方向有较为明确的教育体系作为支撑,开设数据科学学科和课程的学校都是2011年之后才开始探索的,并且大多没有一个适用于工业应用的课程体系。从业人员普遍反映需要一个系统的框架来搭建自己的技术栈和知识体系,从而提升专业化的能力。因此,市场上迫切需要一本覆盖面广、应用性强、深入浅出的数据科学手册。
本书的作者是国内数据科学一线的从业者,创作目的主要有以下三个。
1)提供一个以商业场景为导向的实用量化方法论。数据科学是为商业服务的,重要的能力是收敛开放的商业问题,并有针对性地选择适当的量化框架进行后验数据分析。这是一个相辅相成的过程,收敛的过程既依赖对业务的深刻理解,又需要充分理解各种分析框架的假设和抽象原理。
2)提供一个入门的台阶,供读者按图索骥、深入研究。数据科学领域知识面广,又有一定的深度,需要长期的学习和经验的积累。一本书很难涵盖数据科学的所有知识点,但是本书可以点明关键节点,起到引导作用,帮助读者进行后续的进阶学习。
3)展示数据科学所需的专业能力和门槛,为读者在求职过程中找准定位、为人事部门进行职能设计提供范例。现在数据科学领域的就业和招聘十分热门,但是能说清数据科学专家到底需要什么样的技能、需要达到什么样的程度,以及这个行业有什么典型成功案例的人却非常少。
读者对象
本书适合以下读者:
初入职场的数据分析师,用于升级个人专业分析技能;
从业多年的数据科学管理者,用于梳理、整合知识体系,提升团队能力;
数据科学、商业分析等专业的师生,用于延展阅读;
数据科学行业的人力专家和猎头,用于标定潜在候选人能力。
本书特色
相比于市面上其他数据科学相关图书,本书有以下特色。
1)将技术与商业场景紧密结合,强调开放性商业问题在量化分析上的收敛。市场上不乏纯技术类的数据科学图书和各种机器学习建模、统计计算的图书,但是这些书都跳过了对开放式商业问题的思考,直接针对已经非常明确的建模本身进行介绍。本书则将重心放在案例分析的全流程上,既讲解量化模型的理论,又解释商业到数理模型的映射过程,还强调了对模型结果的解读和应用,实用性非常强。
2)这是国内本系统介绍统计实验在多种复杂商业场景下具体应用的书。统计实验相关的图书通常分为三类:类侧重理论研究,对于已经工作的读者来说实践意义不大,且学习难度高;第二类是将生物医学领域的理论和案例相结合,这类书的应用场景和背景与互联网行业相差较大,不容易做到举一反三;第三类是少部分互联网领域统计实验的书,这类书多是外文,知识较新,阅读门槛较高,通常针对互联网广告和搜索领域,在不理解理论背景的情况下也难以迁移到其他场景。
3)本书应用场景覆盖面广,强调实用,可操作性强,将方法论与配套案例的背景、代码、解读等模块结合在一起,让读者学习后即可运用在实践中。
如何阅读本书
这是一本将数据科学三要素商业理解、量化模型、数据技术全面打通的实战性著作,是来自腾讯、滴滴、快手等一线互联网企业的数据科学家、数据分析师和算法工程师的经验总结,得到了SQLFlow创始人以及腾讯、网易、快手、贝壳找房、谷歌等企业的专家一致好评和推荐。
全书三个部分,内容相对独立,既能帮助初学者建立知识体系,又能帮助从业者解决商业中的实际问题,还能帮助有经验的专家快速掌握数据科学的技术和发展动向。内容围绕非实验环境下的观测数据的分析、实验的设计和分析、自助式数据科学平台3大主题展开,涉及统计学、经济学、机器学习、实验科学等多个领域,包含大量常用的数据科学方法、简洁的代码实现和经典的实战案例。
部分(第1~6章)观测数据的分析技术
讲解了非实验环境下不同观测数据分析场景所对应的分析框架、原理及实际操作,包括消费者选择偏好分析、消费者在时间维度上的行为分析、基于机器学习的用户生命周期价值预测、基于可解释模型技术的商业场景挖掘、基于矩阵分解技术的用户行为规律发现与挖掘,以及在不能进行实验分析时如何更科学地进行全量评估等内容。
第二部分(第7~9章)实验设计和分析技术
从A/B实验的基本原理出发,深入浅出地介绍了各种商业场景下进行实验设计需要参考的原则和运用的方法,尤其是在有样本量约束条件下提升实验效能的方法及商业场景限制导致的非传统实验设计。
第三部分(第10~12章) 自助式数据科学平台SQLFlow
针对性地讲解了开源的工程化的自助式数据科学平台SQLFlow,并通过系统配置、黑盒模型的解读器应用、聚类分析场景等案例帮助读者快速了解这一面向未来的数据科学技术。
勘误和支持
除封面署名外,参与本书编写工作的还有:周银河、丁芬、苏涛、王禹、吴君涵、杨骁捷、刘冲、王玉玺、刘未名、杨凯迪、李依诺、陈祥、朱文静。由于作者的水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。为此,我们特意创建了一个GitHub仓库(https://github.com/xieliaing/Data_Science_Industrial_Practice)。读者可以将发现的代码Bug、文字问题以及疑惑,在Issue中提出,我们会将修改后的内容及解答通过Pull Request合并进主干。书中的全部源文件除可以从华章网站下载外,还可以从这个GitHub仓库下载,期待能够得到你们的真挚反馈。
致谢
首先要感谢C. F. Jeff Wu、Williaw S. Cleveland、LinkedIn的DJ Patil及Facebook的Jeff Hammerbacher等先驱,他们成功地开创了数据科学这一个行业,影响和激励了无数人投身其中。
感谢快手科技副总裁、数据分析部负责人宋世君把数据科学的理念引入国内,实现了从0到1的跨越。感谢我原来统计科学团队的同事们,他们是国内数据科学的开拓者,通过实践让数据科学的理念在国内萌芽发展、完善进步并得到认可。
感谢发起并维护SQLFlow开源社区的王益博士、刘勇峰老师及其开发团队。
感谢机械工业出版社华章公司的杨福川老师和韩蕊老师,在这一年多的时间里始终支持我们写作,保障了本书顺利完成。
谨以此书献给我亲爱的家人以及众多热爱并投身数据科学的朋友们!
谢梁
2021年2月8日
谢梁 经济学博士,腾讯QQ浏览器副总经理、QQ浏览器数据负责人。CCF数据科学专委会创始委员,入选财经数据科学50人,清华大学商学院及香港大学商学院商业分析硕士项目指导嘉宾。曾任滴滴杰出数据科学家、美国微软云存储核心工程部首席数据科学家。
缪莹莹 浙江大学硕士,曾任滴滴首席数据科学家,CCF数据科学专委会委员。拥有十余项国家发明专利及国际发明专利,具有丰富的数据仓库建设、数据挖掘建模、实验科学与战略分析的经验。带领团队用数据的方式驱动从0到1的初创形态的业务和成熟形态业务的增长,善于发现业务机会和风险,给业务带来巨大价值。
高梓尧 快手数据分析总监,长期在美国硅谷和中国多家互联网科技公司从事用户分析、实验设计等相关工作。曾带领滴滴数据科学团队与蚂蚁金服联合开源共建一站式机器学习工具SQLFlow。拥有多项国家发明专利。清华大学商学院及哥伦比亚大学商学院商业分析硕士项目指导嘉宾、泛华统计协会演讲嘉宾。
王子玲 上海交通大学计算数学硕士,曾任滴滴高级数据科学家、高级模型专家、高级风控专家。先后任职于日企MTI、人人网、滴滴出行、爱奇艺等知名互联网企业,在网约车出行、互联网金融、在线音乐、短视频、网游等领域积累了丰富的大数据分析、策略、挖掘、建模、研究、应用经验。负责过两段公司级重点项目从0到1增长的整体数据驱动体系设计及落地。申请平台智能定价及优化算法系统等十余项国家发明专利及国际发明专利。
周银河 现任腾讯数据科学家,曾任滴滴数据科学家,清华大学商学院及哥伦比亚大学商学院商业分析硕士项目指导嘉宾。拥有丰富的数据分析、统计建模及实验设计经验。
丁芬 曾任滴滴数据科学家,曾就职于美团、滴滴等国内知名互联网公司,工作经历涉及市场咨询、信贷风控、网约车交易及信息流等领域。
苏涛 物理学博士,美国生物物理学会会员。曾任中国科学院研究助理,研究量子计算和主动流体。后任乔治华盛顿大学计算物理研究员,从事细胞模拟、生物领域机器学习、高性能计算等方向的研究。2017年进入互联网行业,先后在Elex 和滴滴进行数学模型、算法和数据科学方向的研究,熟悉复杂网络、流形几何嵌入、时频分析以及相关的机器学习和优化方法。
王禹 曾任滴滴高级数据分析师,主要负责滴滴分单引擎和调度引擎的实验设计、评估、数据分析以及成交率等核心指标的预测、异常诊断归因等工作。现任某短视频科技企业算法工程师,主要负责LBS定位、POI挖掘等相关场景的策略算法开发。
吴君涵 曾任滴滴资深数据分析师,擅长用户增长分析和体验量化建模。具有丰富的大数据挖掘建模、产出数据驱动洞察并通过洞察影响决策的实战经验。
杨骁捷 曾任滴滴高级数据分析师,擅长双边平台的供需匹配效率分析,在出行、电商等不同业务场景中灵活运用因果推断,评估业务收益。现任快手资深数据分析师。
刘冲 曾任滴滴高级数据分析师,主要负责流量运营的实验设计、评估、数据分析以及优化司机行为和提高司机收入等相关分析,现任快手数据分析师。
王玉玺 中国人民大学商学院博士,美国密歇根大学访问学者,曾任滴滴数据科学部研究员,主要研究方向为定价策略优化、消费者行为分析等。参与多项国家自然科学基金及社会科学基金研究项目,在Expert System、Information Systems Research、《管理评论》等期刊发表多篇论文。
刘未名 曾任滴滴数据科学家,拥有金融、互联网等领域的数据分析经验,擅长利用实验、量化模型解决业务问题,多次参与公司级重点项目的数据分析,帮助公司搭建数据驱动工业化体系,拥有国内、国际多项发明专利。
杨凯迪 现任快手数据分析部数据科学家。长期就职于国内头部互联网企业,对于出行定价补贴以及短视频行业用户画像挖掘、策略分析等有丰富经验。工作期间累计发表三篇国家发明专利论文。
李依诺 腾讯数据科学家,本硕先后毕业于美国印第安纳大学数学专业和美国乔治华盛顿大学生物统计学专业。在在线视频、网约车、网络游戏领域积累了丰富的数据科学实战经验,从0 到1 参与过腾讯、滴滴的实验工业化进程。
陈祥 资深算法工程师,硕士毕业于爱丁堡大学计算机科学专业。先后从事异常检测、强化学习、自然语言处理、领域知识图谱建设及应用等相关工作。曾就职于爱奇艺、滴滴。SQLFlow 贡献者之一。现从事用户画像、广告系统和推荐相关工作。
朱文静 曾任滴滴高级数据分析师,主要从事基于业务数据进行的分析、建模、挖掘等工作。SQLFlow项目重要成员之一,SQLFlow开源社区贡献者,参与贡献了多个SQLFlow模型,其中包括可解释黑盒模型、深度学习聚类模型、时间序列模型等。
第1章:如何分析用户的选择 1
1.1选择行为的经济学理论 1
1.1.1 选择无处不在 1
1.1.2 选择行为的经济学理论 2
1.2 用户选择行为计量分析框架:DCM 4
1.2.1 从经济模型到计量模型 4
1.2.2 常用的DCM模型及应用场景 8
1.3 DCM模型的Python实践 11
1.3.1?软件包?&?数据格式 11
1.3.2 使用Logistics Regression分析自驾选择问题 15
1.3.3 使用 Multinomial Logit Model 分析完整交通方式选择问题 21
1.3.4 使用 Nested Logit Model 分析完整交通方式选择问题 25
1.4 本章小节 27
第二章:随时间可变的行为分析 27
2.1 从如何给二手车定价案例说起 27
2.1.1 二手车定价背景 27
2.1.2 为什么不选择一般回归模型? 28
2.1.3 为什么选择生存分析? 29
2.2 生存分析的理论框架 29
2.2.2 生存函数及风险函数刻画 34
2.2.3 生存函数回归及生存概率的预测 36
2.3 生存分析在二手车定价案例中的应用实践 38
2.3.1 软件包&数据格式&数据入读 40
2.3.2 生存分析基础操作:二手车销售生存曲线绘制及差异对比 42
第三章 洞察消费者长期价值:基于神经网络的LTV建模 44
3.1 LTV的概念和商业应用 44
3.1.1 LTV用户终生(长期)价值 45
3.1.2 用户生命周期和用户终生价值 45
3.1.3 LTV的特点 46
3.1.4 LTV分析能帮助我们回答的问题 46
3.1.5 LTV的计算方法 47
3.2 神经网络的基本原理 49
3.2.1 神经网络的历史 49
3.2.2 本章所涉及的神经网络结构 50
3.3 基于Keras的LTV模型实践 56
3.3.1 Keras介绍 56
3.3.2 数据的加载和预处理 56
3.3.3 输入数据的准备 59
3.3.4 模型搭建和训练 65
3.3.5 模型分析 68
3.4 本章总结 68
第4章 使用体系化分析方法进行场景挖掘 69
4.1. 选择经验化分析还是体系化分析 69
4.1.1经验化分析的局限性 69
4.1.2体系化方法的手段和优势 70
4.2. 体系化分析常用工具 71
4.2.1黑盒模型与白盒模型 71
4.2.2可解释模型决策树 71
4.2.3全局代理模型 76
4.2.4场景挖掘模型分析方法框架 77
4.3. 场景挖掘分析实践 78
4.3.1数据背景及数据处理 78
4.3.2经验化分析 80
4.3.3场景挖掘模型的Python实现与模型解读 80
4.4. 本章小结 86
第5章 行为规律的发现与挖掘 86
概述 86
5.1对包含有顺序关系数据的规律分析 87
5.1.1有序数据及SVD方法概述 87
5.1.2SVD原理及推导 88
5.1.3SVD聚类建模Python实战 93
5.2对无序稀疏数据的规律分析 98
5.2.1稀疏数据及NMF方法概述 98
5.2.2NMF原理及推导 99
5.2.3NMF聚类建模Python实战 100
第6章 对观测到的事件进行因果推断 104
6.1 使用全量评估分析已发生的事件 104
6.1.1 为什么要进行全量评估 104
6.1.2 全量评估应用 105
6.2 全量评估主要方法 105
6.2.1 回归分析 105
6.2.2 DID方法 114
6.2.3 合成控制 116
6.2.4 Causal Impact 119
6.3 全量评估方法的应用 123
6.3.1 关于物流单量的全量评估应用(回归模型) 123
6.3.2 恐怖主义对经济影响评估(DID) 128
6.3.3 恐怖主义对经济影响评估(合成控制) 130
6.3.4 天气情况的评估(Causal Impact) 133
6.4 本章小结 147
第7章 如何比较两个策略的效果 147
7.1如何才能正确推断因果关系? 147
7.1.1 什么是相关性谬误 147
7.1.2 潜在结果和因果效果 148
7.2运用A/B实验进行两策略比较 149
7.2.1 什么是A/B实验 149
7.2.2 为什么应用A/B实验 150
7.2.3 A/B实验的基本原理 150
7.3 A/B实验应用步骤(实验方法具体实施步骤) 151
7.3.1 明确实验要素 151
7.3.2 实验设计 153
7.3.3实验过程监控 155
7.4 A/B实验案例介绍 156
7.4.1 实验场景介绍 156
7.4.3实验效果评估 158
7.5 本章小结 159
第8章 如何提高实验效能 160
8.1 控制实验指标方差的必要性和手段 160
8.2 用随机区组设计控制实验指标方差 161
8.2.1 利用随机区组实验实验设计降低方差 161
8.2.2 随机区组实验的特征选择 162
8.3 随机区组实验应用步骤 163
8.3.1 明确实验目标及背景: 163
8.3.2 实验设计: 163
8.3.3 实验过程监控: 163
8.3.4 实验评估中用到的方差分析的基本原理: 163
8.4 随机区组实验案例介绍 168
8.4.1 背景介绍: 168
8.4.2 基本设计: 169
8.4.3 随机区组实验相关的设计: 169
8.4.4 效果评估 170
8.5 随机区组实验常见问题 172
8.5.1 方差分析的使用前提是什么 172
8.5.2 随机区组的个数是越多越好吗? 172
8.5.3 随机区组实验的回归方程的$R^2$是越高越好吗,是否证明策略有效果? 173
8.6 本章小节 173
第9章 特殊场景下的实验设计和分析方法 173
9.1 分流的实验对象间有干扰怎么办 174
9.2 如果实验不能简单分流怎么办(Switchback实验设计和评估方法) 181
9.3 如果实验不能简单分流且时间效率要求高怎么办?(交叉实验设计) 186
9.4 如果不能分流的实验且策略不能轮转怎么办? 199
9.5 本章总结 205
10.1 SQLFlow简介 206
10.1.1 什么是SQLFlow 206
10.1.2 SQLFlow的定位和目标 207
10.1.3 SQLFlow工作原理 209
10.2 SQLFLow 运行环境的设置 210
SQLFlow in Docker 210
环境配置 215
交互 224
Jupyter Notebook 225
REPL 225
10.3 将分析模型固化到 SQLFlow 中的流程 226
10.4 总结 232
11.1.1 模型可解释的重要性和必要性 233
模型解释的重要性 233
模型解释的必要性 233
11.1.2 常见的可解释性模型 234
(1)线性回归 235
(2)逻辑回归 238
(3) 决策树 242
(4)KNN 243
(5)朴素贝叶斯分类器 245
(6)模型比较 246
11.2 黑盒模型的解释性 247
11.2.1 如何对黑盒模型进行解释 247
11.2.2 代理模型 248
11.2.3 Shapley 250
11.2.4 基于SQLFLow的黑盒模型解释的案例 251
11.3 本章小结 255
第12章 基于LSTM-autoencoder的无监督聚类模型 255
12.1 聚类的广泛应用 256
12.1.1 什么是聚类或模式识别 256
12.2 聚类模型的应用案例 257
12.2.1 k-means clustering -- 司机服务站点选址规划 257
12.2.2 Hierarchical Clustering -- 超市采购商分组 260
12.3 SQLFlow中基于深度学习的聚类模型 265
12.3.1 基于深度学习的聚类模型原理 265
12.3.2 Case study - 如何使用SQLFlow对城市道路交通状况进行分层 272
12.4 本章小结 275