《构建实时机器学习系统》首先利用Pandas对美股秒级交易数据进行分析,利用Scikit-learn对股票变化方向进行预测,并在架构案例中,打造了一个以RabbitMQ为消息传导中枢的实时处理系统,利用Elasticsearch对数据进行实时可视化。
目录
- 前 言
- 第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