构建实时机器学习系统

构建实时机器学习系统 pdf epub mobi txt 电子书 下载 2025

彭河森,汪涵 著
图书标签:
  • 机器学习
  • 实时计算
  • 流处理
  • 数据工程
  • 模型部署
  • 低延迟
  • 可扩展性
  • 系统设计
  • Kafka
  • TensorFlow Serving
想要找书就要到 静流书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 机械工业出版社
ISBN:9787111575573
版次:1
商品编码:12167741
品牌:机工出版
包装:平装
开本:16开
出版时间:2017-09-01
用纸:胶版纸

具体描述

产品特色

编辑推荐

以全栈机器学习应用为目标
通过介绍Docker等部署工具,帮助读者加速掌握机器学习模型的产业化进程。不管你是就职于大公司,还是自己创业,希望本书的内容能够让你快速上线满意的机器学习系统,离梦想更近一点。
抓住机器学习主干,远离学院派
世界在变,机器学习也在不停地变。对于机器学习中的很多重要成员,如建模工具、分布式队列等,本书都会对其来龙去脉和发展趋势进行综述。希望通过这样的讨论,能够让读者对机器学习的发展趋势有自己的判断,在未来的成长中也能独占鳌头。
能读的代码,能跑的例子
本书力求避免代码的大段堆砌。所有案例代码都力求在 20 行以内,所有例子都通过多次可用性测试。同时我们也将源代码寄存在 Github 上面,随时进行更新排错。
实时股票交易实例数据
采用美股交易秒级数据作为案例数据,搭建实时机器学习平台,对数据进行存储、加工分析和可视化,并且对数据未来若干秒的走势进行预测。

内容简介

本书是国内少有的从系统构架角度介绍机器学习应用的图书,总结了笔者多年来在Google、微软工作中积累的精华。书中内容可以从工具、理论和案例三条线路来概括:
工具方面,除了数据分析工具Pandas、机器学习工具Scikit Learn和Docker以外,还介绍了RabbitMQ、Elasticsearch,以及MySQL、Cassandra数据库等。
理论方面,不仅介绍了监督式机器学习基础、衡量和评价方法,机器学习的常见构架,还在本书末尾对机器学习构架的设计模式进行了总结,这样的总结也属国内外业界首创。
案例方面,采用美股交易秒级数据作为案例数据,利用Pandas对秒级交易数据进行分析,利用Scikit Learn对股票变化方向进行预测,还打造了一个以RabbitMQ为消息传导中枢的实时处理系统。

作者简介

彭河森,资深机器学习科学家,曾在Google、Amaz*n、微软等公司从事一线机器学习构架和开发工作,参与了Google实时数据警报、Amazo*产品广告自动化优化、微软必应广告等多项海量数据、延时要求苛刻的机器学习应用工作。也参与Scikit-learn、Airflow、R等多项开源项目。对机器学习项目的生存期管理、架构设计、软件开发以及应用关键有着丰富的经验。

汪涵,资深机器学习开发者,曾是Amaz*n、微软、Quantlab、晨星等公司一线机器学习开发人员,参与了Amazo*AB检验服务、微软必应搜索问答系统等多项关键大数据处理和机器学习应用的构架和开发工作。对机器学习、自然语言处理有着深刻的体会。

目录

前 言
第1部分 实时机器学习方法论
第1章 实时机器学习综述 2
1.1 什么是机器学习 2
1.2 机器学习发展的前世今生 3
1.2.1 历史上机器学习无法调和的难题 3
1.2.2 现代机器学习的新融合 4
1.3 机器学习领域分类 5
1.4 实时是个“万灵丹” 6
1.5 实时机器学习的分类 7
1.5.1 硬实时机器学习 7
1.5.2 软实时机器学习 7
1.5.3 批实时机器学习 8
1.6 实时应用对机器学习的要求 8
1.7 案例:Netflix在机器学习竞赛中学到的经验 9
1.7.1 Netflix 用户信息被逆向工程 9
1.7.2 Netflix 最终胜出者模型无法在生产环境中使用 9
1.8 实时机器学习模型的生存期 10
第2章 实时监督式机器学习 12
2.1 什么是监督式机器学习 12
2.1.1 “江湖门派”对预测模型的
不同看法 13
2.1.2 工业界的学术门派 14
2.1.3 实时机器学习实战的思路 15
2.2 怎样衡量监督式机器学习模型 16
2.2.1 统计量的优秀 16
2.2.2 应用业绩的优秀 20
2.3 实时线性分类器介绍 20
2.3.1 广义线性模型的定义 20
2.3.2 训练线性模型 21
2.3.3 冷启动问题 22
第3章 数据分析工具 Pandas 23
3.1 颠覆 R 的 Pandas 23
3.2 Pandas 的安装 24
3.3 利用 Pandas 分析实时股票报价数据 24
3.3.1 外部数据导入 25
3.3.2 数据分析基本操作 25
3.3.3 可视化操作 26
3.3.4 秒级收盘价变化率初探 28
3.4 数据分析的三个要点 30
3.4.1 不断验证假设 30
3.4.2 全面可视化,全面监控化 30
第4章 机器学习工具 Scikit-learn 31
4.1 如何站在风口上?向Scikit-learn 学习 31
4.1.1 传统的线下统计软件 R 31
4.1.2 底层软件黑盒子 Weka 32
4.1.3 跨界产品 Scikit-learn 33
4.1.4 Scikit-learn的优势 33
4.2 Scikit-learn 的安装 34
4.3 Scikit-learn 的主要模块 35
4.3.1 监督式、非监督式机器学习 35
4.3.2 建模函数fit和predict 36
4.3.3 数据预处理 38
4.3.4 自动化建模预测 Pipeline 39
4.4 利用 Scikit-learn 进行股票价格波动预测 40
4.4.1 数据导入和预处理 41
4.4.2 编写专有时间序列数据预处理模块 41
4.4.3 利用 Pipeline 进行建模 43
4.4.4 评价建模效果 43
4.4.5 引入成交量和高维交叉项进行建模 44
4.4.6 本书没有告诉你的 45
第2部分 实时机器学习架构
第5章 实时机器学习架构设计 48
5.1 设计实时机器学习架构的
四个要点 48
5.2 Lambda 架构和主要成员 49
5.2.1 实时响应层 49
5.2.2 快速处理层 50
5.2.3 批处理层 50
5.3 常用的实时机器学习架构 50
5.3.1 瀑布流架构 50
5.3.2 并行响应架构 51
5.3.3 实时更新模型混合架构 52
5.4 小结 53
第6章 集群部署工具 Docker 55
6.1 Docker 的前世今生 55
6.2 容器虚拟机的基本组成部分 56
6.3 Docker 引擎命令行工具 57
6.3.1 Docker 引擎的安装 57
6.3.2 Docker 引擎命令行的基本操作 58
6.4 通过 Dockerfile 配置容器虚拟机 61
6.4.1 利用 Dockerfile 配置基本容器虚拟机 62
6.4.2 利用 Dockerfile 进行虚拟机和宿主机之间的文件传输 62
6.5 服务器集群配置工具Docker Compose 64
6.5.1 Docker Compose 的安装 64
6.5.2 Docker Compose 的基本操作 64
6.5.3 利用 Docker Compose 创建网页计数器集群 65
6.6 远端服务器配置工具Docker Machine 68
6.6.1 Docker Machine 的安装 68
6.6.2 安装 Oracle VirtualBox 69
6.6.3 创建和管理 VirtualBox中的虚拟机 69
6.6.4 在 Docker Machine 和 VirtualBox的环境中运行集群 70
6.6.5 利用 Docker Machine 在 Digital Ocean 上配置运行集群 71
6.7 其他有潜力的 Docker 工具 73
第7章 实时消息队列和RabbitMQ 74
7.1 实时消息队列 74
7.2 AMQP 和 RabbitMQ 简介 76
7.3 RabbitMQ的主要构成部分 76
7.4 常用交换中心模式 78
7.4.1 直连结构 78
7.4.2 扇形结构 78
7.4.3 话题结构 79
7.4.4 报头结构 79
7.5 消息传导设计模式 79
7.5.1 任务队列 80
7.5.2 Pub/Sub 发布/监听 80
7.5.3 远程命令 81
7.6 利用 Docker 快速部署RabbitMQ 82
7.7 利用 RabbitMQ 开发队列服务 85
7.7.1 准备案例材料 86
7.7.2 实时报价存储服务 86
7.7.3 实时走势预测服务 89
7.7.4 整合运行实验 93
7.7.5 总结和改进 95
第8章 实战数据库综述 98
8.1 SQL 与 NoSQL,主流数据库分类 98
8.1.1 关系型数据库 99
8.1.2 非关系型数据库 NoSQL 99
8.2 数据库的性能 100
8.2.1 耐分割 100
8.2.2  一致性 101
8.2.3 可用性 101
8.2.4 CAP 定理 101
8.3 SQL和NoSQL对比 102
8.3.1 数据存储、读取方式 102
8.3.2 数据库的扩展方式 103
8.3.3 性能比较 103
8.4 数据库的发展趋势 103
8.4.1 不同数据库之间自动化同步更为方便 103
8.4.2 云数据库的兴起 104
8.4.3 底层和应用层多层化 104
8.5 MySQL 简介 105
8.6 Cassandra简介 105
8.6.1 Cassandra交互方式简介 105
8.6.2 利用Docker安装Cassandra 106
8.6.3 使用Cassandra存储数据 106
第9章 实时数据监控 ELK 集群 107
9.1 Elasticsearch、LogStash和Kibana 的前世今生 107
9.1.1 Elasticsearch 的平凡起家 108
9.1.2 LogStash 卑微的起源 108
9.1.3 Kibana 惊艳登场 109
9.1.4 ELK 协同作战 109
9.2 Elasticsearch 基本架构 109
9.2.1 文档 110
9.2.2 索引和文档类型 111
9.2.3 分片和冗余 112
9.2.4 Elasticsearch 和数据库进行比较 113
9.3 Elasticsearch 快速入门 113
9.3.1 用 Docker 运行 Elasticsearch 容器虚拟机 113
9.3.2 创建存储文档、文档类型和索引 114
9.3.3 搜索文档 117
9.3.4 对偶搜索 120
9.4 Kibana 快速入门 124
9.4.1 利用 Docker 搭建ELK 集群 125
9.4.2 配置索引格式 127
9.4.3 交互式搜索 128
9.4.4 可视化操作 129
9.4.5 实时检测面板 132
第10章 机器学习系统设计模式 134
10.1  设计模式的前世今生 134
10.1.1 单机设计模式逐渐式微 134
10.1.2 微服务取代设计模式的示例 135
10.1.3 微服务设计模式的兴起 137
10.2 读:高速键值模式 137
10.2.1 问题场景 137
10.2.2 解决方案 138
10.2.3 其他使用场景 139
10.3 读:缓存高速查询模式 139
10.3.1 问题场景 139
10.3.2 解决方案 139
10.3.3 适用场景 141
10.4 更新:异步数据库更新模式 141
10.4.1 问题场景 141
10.4.2 解决方案 141
10.4.3 使用场景案例 142
10.5 更新:请求重定向模式 144
10.5.1 问题场景 144
10.5.2 解决方案 144
10.5.3 更新流程 145
10.5.4 使用场景案例 146
10.6 处理:硬实时并行模式 146
10.6.1 问题场景 146
10.6.2 解决方案 147
10.6.3 使用场景案例 147
10.7 处理:分布式任务队列模式 148
10.7.1 问题场景 148
10.7.2 解决方案 149
10.7.3 Storm 作为分布式任务队列 150
10.7.4 适用场景 151
10.7.5 结构的演进 152
10.8 处理:批实时处理模式 152
10.8.1 问题场景 152
10.8.2 解决方案 152
10.8.3 适用场景 153
第3部分 未来展望
第11章 Serverless 架构 156
11.1 Serverless 架构的前世今生 156
11.2 Serverless 架构对实时
机器学习的影响 157
第12章 深度学习的风口 159
12.1 深度学习的前世今生 159
12.2 深度学习的难点 161
12.3 如何选择深度学习工具 161
12.3.1 与现有编程平台、技能整合的难易程度 162
12.3.2 此平台除做深度学习之外,还能做什么 163
12.3.3 深度学习平台的成熟程度 164
12.4 未来发展方向 165

前言/序言

机器学习从业人员的艰难选择
作为机器学习从业人员,如果今天突然被公司或学校开除,你能养活自己吗?邻居老大妈买土鸡蛋不买神经网络模型,东门老大爷认识郭德纲不认识朴素贝叶斯,面容姣好的“翠花”只认房产证不认 Zookeeper。即使你身怀绝技,有着远大的抱负,机器学习应用难以变现也是事实。为了能维持生计,众多机器学习从业人员只能进入大公司、大组织。但限于流程和已有的体制,在这样的工作环境下,他们很难完全发挥自己的潜能。
太多的好朋友,在脱离体制和大公司的时候豪情万丈,吃散伙饭时和战友们慷慨激昂,唱着真心英雄,梦想着自己也有回到北京东二环开始指点江山的一天。可是第二天带着宿醉起床面对着电脑屏幕时,却不知道该怎么开始。没错,我们都有自己的想法,我们自己就是程序员,比那些在创业街上卖 PPT 的人“厉害”多了。可是在工业界,不管是初入职场的新人,还是久经沙场的老将,都需要在业余时间不停地刷题,练习“LeetCode”中的习题,以应对不时之需。这样的生存方式严重阻碍了知识经济的发展,更不要提为祖国健康工作五十年了。与大组织、巨无霸企业不同的是,自主创业往往需要开发人员全栈的技术能力。大公司里面的技术能手在独立创业的时候也不免会遇到下面这些很基本的问题:
服务器从哪里来?
以前单位、导师手里有一套自主开发的大数据平台,现在自己单干了没法用,怎么办?
以前用的机器学习软件包是某个“牛人”自己开发的“独门武功”,只在公司内部用,现在该用什么?
模型训练出来了,又怎么部署?
总算东拼西凑写好了一个流程,接下来如何实现数据可视化?
总算有客户开始用了,怎么样才能对结果实时监控?
这个时候你才会想起马云的那句话:“离开公司了你什么都不是”。还是回大公司吧,至少比较安稳……
总结起来,机器学习从业人员的难处有三点。
技能无法直接转化为经济效益:必须依靠大组织、公司,才能实现经济效益的转化。这必然要求从业人员服从诸多的条款和价值观,这对他们工作效率和积极性来说都是沉重的负担。
迭代速度受牵制:虽然开源社区拥有众多非常优秀的工具,但大公司、大组织往往都有众多历史遗留架构,这使得开发部署过程变得异常漫长。与此同时,从业人员也会觉得所学的知识将来无法为自己所用,因此感到空虚。
出成果压力大:高投入就需要有高回报。机器学习从业人员薪资非常高,因此公司对从业人员进行新架构、新项目开发的耐心往往也非常有限。就算是从公司利益出发,进行架构、代码的革新,从业人员往往也会担上不少风险。如果不能在短时间内实现架构,或者新训练的模型不能达到预期目标,从业人员的工作稳定性将会得不到保证。
老板、管理人员的困境
机器学习从业人员有自己的困难,公司的老总、经理也有伤脑筋的事情。2015 年 KDNuggets 调查数据显示,工业界超过半数的数据科学家在一个职位上的工作时间一般都少于两年。另外美国旧金山湾区的机器学习科学家在一个职位上平均只会停留8个月。这么高的跳槽频率让众多雇主也提心吊胆。根据笔者的经验,机器学习从业人员,从入职到真正开始产生正现金流,至少需要 9 个月左右的时间。太短的工作年限对于很多雇主来说远远不足以收回成本。
有的公司财力雄厚,高薪聘请了拥有谷歌工作经验的斯坦福大学博士,但这名博士入职三个月,文章发表了四篇,会开了五场,可是机器学习模型拿到实际工作环境中的效果却不理想,无法上线。结果令人沮丧。
资金实力不太充裕的初创公司就更难了。本身财力有限,招人靠情怀来对冲。好不容易找到了志同道合的人,开口就问人家要 GPU 集群,而现成的机器学习框架中TensorFlow 太慢,PaddlePaddle 太差,往往有一些以技术为主打的初创公司,专心于核心软件开发,而速度太慢,结果还没开始上线产生效益,当时所在的初创公司就已经烧断了现金流。
另一方面,老板从来不敢对机器学习从业人员过分施压。因为若施压太大,再加上现在市场对机器学习专家的需求旺盛,机器学习员工都是一言不合就跳槽。施压太小,机器学习员工就会开始面向简历的开发模式,一会儿去欧洲开会,一会儿开源个深度学习框架,就是不上线真正能赚钱的产品,这又怎能不让人着急?
总结起来,管理人员的难处有以下三点。
双重身份的矛盾:机器学习开发人员到底算科学家还是算程序员?这是一个管理者需要面对的根本性问题。若把机器学习开发人员看成科学家,就要做好所有投资都打水漂的心理准备,投资回报率可能非常低;若把机器学习开发人员看成程序员,就要给其足够的自由度和福利,并且做好开发人员冗余,对员工突然离职的情况做好准备。
利益冲突的矛盾:现在机器学习人员的流动性很高,公司需要出效益,而工作人员需要出好看的简历。在很多情况下,这两个需求是背道而驰的。本书后文会对各种机器学习架构进行综述,其中不乏员工为了充实简历而开发的“政绩工程”。通过对本书的学习,相信管理人员的眼睛也会擦亮不少。
和商业部门整合的矛盾:机器学习科学家往往醉心于开发最复杂最尖端的模型,以取得机器学习理论上的最佳效果。可是很多机器学习模型的可解释度并不好,无法让业务部门对模型进行可视化解读。虽然机器学习工具众多,但是能将机器学习模型和可视化系统整合起来的程序却非常少。本书所描述的架构和可视化部分会对这个问题进行解答。
总的来说,企业求生求利的动力意味着开发人员必须短平快地出结果;机器学习模型效果的不确定性意味着管理人员必须拥抱不确定性;机器学习从业人员的高流动性意味着公司和组织必须采取灵活的开发流程和架构。
不写寻常书,不走寻常路
什么样的技术成长道路,才能让我们施展自己的才华,同时快乐地养活自己?什么样的职业发展模式,才能让我们真正掌握自己的命运,去改变世界,而不是为北京、上海、深圳高昂的房价发愁?什么样的架构设计,才能让我们的生活回到朝九晚五的正常模式,能够每天六点回家和家人吃晚餐,和心爱的人看星星看月亮?
起初机械工业出版社华章公司的杨绣国编辑联系到作者之一彭河森的时候,他是很犹豫的。市场上现在已经有了很多优秀的机器学习著作,怎么还需要我们再写一本呢?为了验证我们的观点,我们去豆瓣等网站进行了简单的市场调查,以“机器学习”为关键词搜索了已有书评。
搜索的结果既是意料之中又让我们大为吃惊。意料之中的是现在市面上已经存在很多优秀的机器学习相关图书,对机器学习模型的支撑涵盖了从基本逻辑回归到最前沿的深度学习的所有内容。大为吃惊的则有如下两个方面。
读者胃口很挑:没错,说你呢。我们发现众多机器学习图书都被打上了“太广、深度不够”的标签。这让我们感觉到压力巨大,害怕我们的这本书也会打上类似的标签。
理论太多、应用太少:我们发现市面上的书籍大多都是以理论为主,再搭配相应的编程工具。对部署、系统架构设计、后期可视化等重要工作根本没有提及。而我们预计读者大多是在校学生,或者是初入职场的机器学习从业人员,他们这个时候最需要的大概不是天花乱坠的理论,而是能切切实实地实现机器学习模型功能的指导。
有了这样的认识之后,我们决定从应用和架构的角度着手,来写作本书,并设立了如下的目标。
1. 以机器学习全栈应用能力为目标
“如果明天你就要被微软开除,那么今天你希望学到些什么?”我们在撰写这本书的时候一直以这样的精神来激励自己。微软每年7 月到 9 月都会有裁员措施,但这也在不停地提醒笔者要抓紧时间好好写书,贴近应用,这样才能在不幸被裁员的时候养活自己。这样的精神一直贯穿了全书:本书所有的章节都配备了实际使用的案例分析,我们的案例分析不只是针对当前章节所学知识的练习,也涉及实际应用中可能会遇到的“大坑”,以及相应的解决办法。
我们力图通过 Docker 等部署工具的介绍,帮助读者快速掌握机器学习模型的产业化进程。不管你是就职于大公司,还是自己创业,我们都希望本书的内容能够让你快速上线满意的机器学习系统,离你的梦想更近一点。
世界在改变,机器学习也在不停地改变。对于机器学习中的很多重要成员,如建模工具、分布式队列等,本书都会对其来龙去脉和发展趋势进行综述。希望通过这样的讨论,能够让读者建立起对机器学习发展局势的判断,在未来的成长中也能独占鳌头。
2. 抓住机器学习主干,远离学院派
现今 Scikit-learn 等软件已经包含了大量的机器学习模块,其使用方法已经标准化,所以我们不准备在机器学习模型上耗费太多笔墨。例如,在 Scikit-learn 的线性模型模块 LinearRegression 中,训练模型会调用fit() 函数,进行预测会调用predict() 函数。与此同时,Scikit-learn 中的随机森林模块 RandomForest同样是调用以上两个函数进行模型的训练和预测的。接口的统一化帮助了开发人员进行模块化开发。如果出现了新的机器学习模型,则只需要替换一下模型训练模块即可。
另外鉴于现如今网上丰富的机器学习理论资源,我们认为现今的读者完全有能力对特定的机器学习模型进行自学。本书会以线性模型为例对 Scikit-learn 的使用进行讲解,有需要对其他机器学习模块进行学习的读者,也可以很容易地将线性模型模块替换成为其他的模块。
3. 能读的代码,能运行的例子
“好多技术类书籍我看着看着就晕了,代码根本没法读”,我们向众多好友征询意见的时候收到了这样的反馈。为了增加本书案例的可读性,我们力求避免代码的大段堆砌。所有案例的代码模块都力求在 20 行以下。
“好多书的例子都没办法编译”,我们写这本书的时候也听到了不少朋友的“吐槽”。我们认为能正常运行起来的例子是良好学习体验的关键。为此,本书的所有例子都通过多次可用性测试,并且使用Docker运行,大大降低了重复利用的门槛。同时我们将源代码寄存在 Github 上面,随时进行更新排错,我们也欢迎读者在上面添加 Pull Request,完善新内容,与我们进行交流。
4. 实时股票交易、金融舆情分析实例数据
有很多 IT 界的朋友经常在工作累了的时候说:“实在不行我就转行去做金融了,”但是行动起来去做金融的人却甚少。既然在机器学习从业人员的眼中金融行业就像乌托邦那般美妙,那么为什么不进去看一看自己是否合适呢?
另外,也有一些具有金融背景的友人,他们急切地想要利用机器学习方法来实现自动化交易。每年都有无数高考状元、名校学子加入外资对冲基金,如果我们能够架设好一个实时交易投资的平台,没准人才就不会流失到华尔街去了,而能为国所用呢。
对此我们采用了美股交易秒级数据作为本书案例的数据。我们收集了 2015 年 8月所有标准普尔 500 指数成分股每秒的报价和成交量。这里的数据主要是以时间序列形式出现,我们将会尝试搭建实时机器学习平台,对这些数据进行存储、加工分析和可视化,并且对未来若干秒的走势进行预测。如果一切顺利,我们可以从中得到 Alpha(量化交易中的可以长期盈利的策略),实现盈利。
在后面的章节中,我们会从数据分析出发,由浅到深地利用以上数据进行建模,且在本书结尾时实现对金融数据预测判断的功能。
本书的学习方法
重架构、重设计、重实战是本书撰写的指导思想。我们认为优秀的系统设计在于完备的思考和准备,因此本书对计算机编程和机器学习理论只有入门级的要求。
1.基础知识要求
本书的两位笔者之中,彭河森是统计学出身,汪涵是应用数学出身。但最后都殊途同归地走上了机器学习应用的道路。对于计算机编程基础,本书的门槛为国内全日制大学本科非计算机专业理科第二年的水平。我们假设读者具有基本的 Python 编程能力,能在脚本执行和交互情况下运行 Python 程序。本书着重讲解架构设计,对面向对象编程、设计模式等课题没有任何要求。
对于机器学习理论基础,本书的门槛为国内全日制大学本科非计算机、统计、数学专业理科第二年的水平。本书假设读者具有基本的线性代数知识,对统计推断和机器学习模型有基本的了解。
2.学习环境配置
本书假设读者采用了 Ubuntu 16.04 或Mac操作系统。新版 Windows10在本书写作之时刚刚开始支持 Linux Shell,并且具有了 Ubuntu 内核的支持,由于时间关系我们没有来得及验证,请读者谨慎试验。另外由于我们将在本书中大量使用 Docker,所以相关软件将会以 Docker 镜像的形式存在。我们将在相应章节(第6章)中介绍 Docker 及其环境工具的安装和配置。本书对其他系统软件的安装并没有要求。
每个章节的实例内容都可以在Github 官方网站上下载,地址为:https://github.com/real-time-machine-learning/。我们将每一个章节的内容都分成一个独立的 Git 存档,每个章节之间的程序不会相互关联,以方便读者选择性地阅读和实践。
3. 写作分工
本书大部分内容由彭河森、汪涵两人共同探讨、实践、总结并得出理论方向。汪涵完成了实战数据库综述章节(第8章);其他所有章节均由彭河森完成。
这里我们向本书写作过程中参与讨论和建议的唐磊、陆昊威、高斌、汤宇清、孙宝臣、Luhui Hu、徐易等专家及友人表示感谢。特别感谢严老在本书编写过程中两次收留作者在家。


《数据之舞:赋能决策的实时洞察》 在一个信息爆炸的时代,我们每天都被海量数据洪流所裹挟,然而,数据本身并不能直接转化为价值。真正的力量在于从中提取实时、有价值的洞察,并将其迅速转化为 actionable insights,从而在瞬息万变的商业环境中做出更明智、更敏捷的决策。《数据之舞》并非一本聚焦于特定技术的“工具书”,而是一次深入探索数据价值链核心的旅程,它揭示了如何构建一个能够持续感知、理解并响应数据变化的智能决策体系,从而在竞争激烈的舞台上保持领先。 本书的核心在于“实时性”与“洞察力”的融合。我们不再满足于对过去事件的静态分析,而是要拥抱那些能够“听懂”当下、预测未来的动态数据流。想象一下,当你的业务数据像一场活生生的舞蹈,不断变化着节奏、旋律和舞步,如何才能捕捉到其中最精彩的片段,理解其深层含义,并预测下一个精彩的瞬间?《数据之舞》将引领你走进这场精彩纷呈的舞蹈,让你掌握解读数据“语言”的艺术,并学会如何让这些语言驱动业务的创新和增长。 Part I: 数据之舞的序曲——理解实时洞察的价值与挑战 在本书的开篇,我们将首先深入剖析“实时洞察”在当今商业格局中的核心地位。我们不再讨论“什么是数据”,而是聚焦于“如何让数据活起来”。我们将从宏观层面探讨,为何在金融交易、在线零售、物联网监控、客户服务等诸多领域,实时的决策能力已成为企业生存和发展的关键。过时的信息意味着错失良机,而延迟的响应则可能导致巨大的损失。 随后,我们将直面构建实时数据处理和分析系统所面临的诸多挑战。这些挑战并非技术上的孤立难题,而是贯穿于数据采集、传输、处理、存储、分析和应用的全过程。我们将讨论数据量的爆炸式增长如何考验着基础设施的承载能力;网络延迟和不稳定性如何影响数据的一致性和时效性;数据源的异构性和质量问题如何增加数据融合和清洗的难度;以及如何确保系统在面对突发流量和复杂业务逻辑时的稳定性和可扩展性。此外,我们还会触及数据安全、隐私保护以及合规性要求等在实时系统中不可忽视的议题。 Part II: 数据之舞的节拍——构建灵活高效的数据流 理解了实时洞察的价值与挑战,我们将进入本书的核心环节——如何设计和构建能够支撑实时洞察的灵活高效的数据流。这部分并非关于某种具体的“算法”或“框架”,而是关于“数据流动的哲学”和“系统架构的设计原则”。 我们将首先探讨“事件驱动架构(EDA)”在构建实时系统中的重要性。EDA不仅仅是一种技术模式,更是一种思维方式,它将系统的关注点从“状态”转移到“事件”。我们将深入理解如何识别和定义关键事件,如何设计高效的事件生产者和消费者,以及如何利用消息队列(message queues)和事件总线(event buses)来解耦系统组件,实现松耦合和高可用性。 接着,我们将讨论“流式处理(stream processing)”的核心概念和关键技术。我们不再将数据视为静态的批次,而是将其看作连续不断的河流。我们将探索如何利用流式处理引擎来实时地过滤、转换、聚合和分析数据,从而在数据产生的同时就提取出有价值的信息。这包括对窗口(windowing)机制、状态管理(state management)以及容错(fault tolerance)机制的深入理解,确保数据在流动过程中不丢失、不重复,并且结果的准确性能够得到保障。 此外,我们还将审视“数据湖(data lake)”和“数据仓库(data warehouse)”在实时数据架构中的演变和融合。我们认识到,并非所有数据都适合被立即转化为结构化的报表,而实时系统也需要能够存储和访问大量的原始数据以供进一步的探索和分析。因此,我们将探讨如何构建一个既能支持低延迟的流式查询,又能存储海量原始数据的混合式数据平台,从而满足不同层级的洞察需求。 Part III: 数据之舞的旋律——从数据中奏响智能决策 仅仅拥有流动的数据流是不够的,我们还需要从中奏响“智能决策”的旋律。《数据之舞》将引导你超越简单的实时数据展示,而是去理解如何将数据转化为具有前瞻性和指导性的洞察。 我们将深入探讨“实时分析(real-time analytics)”的丰富内涵。这包括对实时指标(real-time metrics)、实时仪表盘(real-time dashboards)以及实时告警(real-time alerts)的设计和实现。我们关注的不仅是数据的呈现,更是如何通过可视化的方式,将复杂的数据转化为易于理解的趋势和模式,从而帮助决策者快速抓住关键信息。 更进一步,我们将触及“实时预测(real-time prediction)”的艺术。这并非遥不可及的未来,而是基于当前数据流,对未来可能发生的事件进行即时推演。我们将探讨如何将一些基础的预测模型(如趋势外推、异常检测)部署到流式处理管道中,从而实现对风险的提前预警、对机会的即时捕捉。例如,在电商场景中,当用户浏览行为发生变化时,系统能否立即预测其购买意向并推荐最相关的商品?在金融领域,当市场数据出现异常波动时,系统能否立即识别潜在的欺诈行为? 同时,我们还会探讨“实时推荐(real-time recommendation)”和“实时个性化(real-time personalization)”在提升用户体验和业务效率方面的重要作用。当用户与平台进行交互的每一刻,系统是否都能理解其意图,并提供最符合其需求的内容或服务?这需要对用户行为进行持续的、实时的捕捉和分析,并将其与相应的个性化模型相结合。 Part IV: 数据之舞的指挥——保障系统的韧性与演进 一场精彩的舞蹈离不开精准的指挥和持续的排练,《数据之舞》的最后一部分将聚焦于如何确保整个实时数据系统的韧性、可维护性和持续演进能力。 我们将讨论“可观察性(observability)”在实时系统中的重要性。如何确保我们能够清晰地了解系统内部的运行状况?这包括对数据流的监控、对处理延迟的追踪、对系统错误的检测以及对资源利用率的评估。我们将探讨如何构建有效的监控和告警体系,从而在问题发生的第一时间就能得到通知,并迅速定位和解决。 此外,我们还将关注“系统弹性和容错(resilience and fault tolerance)”。在面对硬件故障、网络中断或软件Bug时,系统如何能够自动恢复,并尽可能地减少对数据处理和决策的影响?我们将探讨各种冗余(redundancy)、故障转移(failover)和数据恢复(data recovery)策略,以确保系统的健壮性。 最后,我们还会探讨“持续集成与持续交付(CI/CD)”在实时数据系统中的应用。随着业务需求的变化和技术的发展,我们的数据系统也需要不断地更新和优化。如何能够安全、高效地将新的功能和改进部署到生产环境中,同时又不影响正在运行的实时数据流,是至关重要的。 《数据之舞:赋能决策的实时洞察》不仅仅是一本关于技术的书籍,它更是一次关于如何重塑企业决策模式的思考。它将帮助你理解,数据不再是冰冷的数字,而是充满生命力的语言,通过学习如何与这些数据共舞,你将能够揭示隐藏的机遇,应对未知的挑战,并最终在信息时代的浪潮中,奏响属于你自己的、充满智慧的决策乐章。

用户评价

评分

当我在书店看到《构建实时机器学习系统》这本书时,我的目光就被它所吸引。这个标题立刻让我联想到那些能够即时响应、不断学习和进化的智能系统。我猜想这本书会非常注重工程实现,而不仅仅是停留在理论层面。我尤其关注书中是否会详细介绍如何设计一套高效且可扩展的特征工程管道,以应对数据源的实时变化和多样性。如何将海量实时数据高效地注入到机器学习模型中进行推理,以及如何管理和更新这些模型以适应不断变化的数据分布,也是我非常感兴趣的部分。我期望书中能够提供一些关于分布式训练和推理的深入讲解,以及如何利用云原生技术来构建和部署这些系统。对于模型的可维护性和可观测性,我希望书中能给出具体的指导,例如如何进行模型性能的实时监控、日志的有效收集和分析,以及如何设计一套完整的告警和故障排查机制。这本书能否成为我构建健壮、高性能实时机器学习系统的“路线图”,帮助我理解其中的关键技术和最佳实践,并最终提升我的工程实践能力,是我非常期待的。

评分

这本书的封面设计给我留下了深刻的印象,简洁而有力,仿佛在诉说着其内容所蕴含的智慧与前沿性。从书名《构建实时机器学习系统》本身,我就能感受到它所指向的并非是那些泛泛而谈的理论,而是实实在在的工程实践,是那些在瞬息万变的商业环境中驱动智能决策的核心。我尤其期待它能深入剖析那些在实际部署中可能遇到的瓶颈,例如如何有效地处理海量实时数据流,如何保证模型在低延迟下的高可用性,以及如何在复杂的分布式环境中实现高效的模型训练和更新。我设想书中会包含大量的架构图解,清晰地展示数据从采集、预处理、特征工程、模型推理到结果反馈的完整生命周期,并且会针对不同场景(如金融风控、电商推荐、物联网分析等)提出定制化的解决方案。另外,关于模型的可解释性和公平性在实时系统中的挑战,也是我非常感兴趣的探讨方向。这本书能否为我提供一套行之有效的构建流程,帮助我规避常见的陷阱,并学习到最新的技术栈和最佳实践,将是我评估其价值的关键。我希望它能不仅仅是一本技术手册,更能成为一本引发思考的指南,帮助我构建出既高效又可靠的实时机器学习系统。

评分

拿到这本书,第一眼就被它厚重的质感所吸引,这让我对接下来的阅读充满了期待。书名《构建实时机器学习系统》精准地定位了其核心主题,我猜想它会是一次深入的探索,不仅仅停留在算法的介绍,而是着重于如何将这些强大的算法转化为能够持续工作的、响应迅速的生产环境。我尤其关注书中是否会涉及数据管道的设计和优化,因为在实时系统中,数据的新鲜度和准确性至关重要。能否有效地进行流式数据处理,如何确保数据的一致性和完整性,以及如何设计鲁棒的数据回填和错误处理机制,这些都是我迫切想了解的。此外,关于模型部署策略的详细阐述,比如蓝绿部署、金丝雀发布等,以及如何进行 A/B 测试和持续集成/持续部署 (CI/CD) 的实践,也会是本书的重点。我对书中关于监控和告警机制的讨论抱有极高的兴趣,因为实时系统的稳定性直接关系到业务的连续性。书中能否提供一套完善的监控框架,帮助我们及时发现和定位问题,并将这些信息转化为 actionable insights,将是其价值的重要体现。我期待这本书能为我打开一扇通往“实战”的大门,让我能够自信地应对构建和维护复杂实时机器学习系统的挑战。

评分

这本书的标题《构建实时机器学习系统》让我立刻联想到了那些在现代科技浪潮中扮演着核心角色的应用,比如那些能够实时推荐商品的电商平台,或是能瞬间捕捉欺诈行为的金融系统。我非常好奇书中是否会深入探讨不同技术栈的选择,例如是基于 Apache Kafka、Pulsar 这样的消息队列,还是结合 Spark Streaming、Flink 这样的流处理引擎。对于模型服务化方面,我希望看到关于 RESTful API、gRPC 接口的设计,以及如何利用 Kubernetes、Docker Swarm 等容器编排技术来保证系统的可扩展性和弹性。书中对于模型性能的权衡,比如在精度和延迟之间如何找到最佳平衡点,以及如何处理模型漂移和概念漂移问题,是另一个我非常期待的方面。我设想书中会提供一些案例研究,通过真实的场景来阐述构建实时机器学习系统的具体步骤和遇到的挑战,并且给出相应的解决方案。例如,如何设计一个能够处理大量用户请求的实时推荐系统,或者如何构建一个能够实时分析传感器数据的物联网应用。这本书能否为我提供一套系统性的方法论,帮助我理解和掌握构建这样复杂系统的核心要素,并将这些知识转化为实际动手的能力,将是我评判其优劣的标准。

评分

这本书的书名《构建实时机器学习系统》极具吸引力,它直接指向了当前人工智能领域最热门和最具挑战性的方向之一。我猜想这本书会深入剖析如何将机器学习模型从离线训练的“静态”状态,转化为能够实时处理数据并做出决策的“动态”系统。我非常期待书中能详细阐述如何设计和实现一个低延迟、高吞吐量的模型推理服务,以及如何应对高峰期的流量压力。对于数据的摄取、清洗和特征提取,我希望看到关于流式处理技术的深入探讨,例如如何使用 Kafka Streams, Kinesis, 或 Flink 来构建可靠的数据管道。书中对模型监控和生命周期管理的讨论,包括如何检测模型性能下降、如何进行模型更新和回滚,也是我非常关注的。我希望这本书能够提供一些实用的框架和工具,帮助我简化构建和部署的流程,并且能够分享一些在实际项目中积累的经验和教训。这本书能否帮助我建立起一个完整的体系认知,让我能够自信地站在实时机器学习系统的设计和实现前沿,将是我衡量其价值的核心。

评分

目前机器学习是一个风口,用来了解一下!

评分

书的质量不错,内容期待中

评分

挺不错的

评分

很好,很实用,京东物流一如既往的好,快

评分

刚刚到手,还没仔细看。只是大致翻看了几页,感觉不错

评分

给老公买的,他很喜欢,所以很棒

评分

习惯好评。。。。。

评分

目前机器学习是一个风口,用来了解一下!

评分

非常好的书

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有