本书不仅清楚地介绍了在Go世界中机器学习的技术和编程方面的内容,还有助于读者理解现实分析工作中合理的工作流程和理念。本书的第1章~第3章讲述了在机器学习流程中如何准备和分析数据;第4章~第7章详细介绍了机器学习的技术;第8章和第9章对机器学习进行了深入探究;附录介绍了与机器学习相关的算法/技术。本书适合作为对Go感兴趣的数据科学家、分析师、工程师和相关专业学生的参考书。
目录
- 前言
- 第1章 数据的收集和组织1
- 1.1 数据处理-Gopher方式2
- 1.2 Go语言收集和组织数据的最佳实践4
- 1.3 CSV文件5
- 1.3.1 从文件中读取CSV数据5
- 1.3.2 处理非预期的域6
- 1.3.3 处理非预期的类型7
- 1.3.4 用数据帧操作CSV数据9
- 1.4 JSON11
- 1.4.1 JSON的解析11
- 1.4.2 JSON的输出14
- 1.5 SQL-like数据库14
- 1.5.1 连接到一个SQL数据库15
- 1.5.2 查询数据库15
- 1.5.3 修改数据库17
- 1.6 缓存17
- 1.6.1 在内存中缓存数据17
- 1.6.2 在本地磁盘中缓存数据18
- 1.7 数据版本控制19
- 1.7.1 Pachyderm术语20
- 1.7.2 部署/安装Pachyderm20
- 1.7.3 创建用于数据版本控制的数据仓库21
- 1.7.4 把数据存储到数据仓库中21
- 1.7.5 从版本化的数据仓库中获取数据22
- 1.8 参考书目22
- 1.9 小结23
- 第2章 矩阵、概率论和统计学24
- 2.1 矩阵和向量24
- 2.1.1 向量24
- 2.1.2 向量操作25
- 2.1.3 矩阵26
- 2.1.4 矩阵操作27
- 2.2 统计学29
- 2.2.1 分布29
- 2.2.2 统计方法30
- 2.2.3 分布可视化34
- 2.3 概率论39
- 2.3.1 随机变量40
- 2.3.2 概率测量40
- 2.3.3 独立和条件概率40
- 2.3.4 假设检验41
- 2.4 参考书目43
- 2.5 小结44
- 第3章 评估和验证45
- 3.1 评估45
- 3.1.1 连续指标46
- 3.1.2 分类指标49
- 3.2 验证55
- 3.2.1 训练和测试集56
- 3.2.2 保留集59
- 3.2.3 交叉验证60
- 3.3 参考书目61
- 3.4 小结62
- 第4章 回归63
- 4.1 理解回归模型的术语63
- 4.2 线性回归64
- 4.2.1 线性回归概述64
- 4.2.2 线性回归假设和陷阱66
- 4.2.3 线性回归示例66
- 4.3 多元线性回归78
- 4.4 非线性和其他类型的回归81
- 4.5 参考书目85
- 4.6 小结86
- 第5章 分类87
- 5.1 理解分类模型的术语87
- 5.2 逻辑回归88
- 5.2.1 逻辑回归概述88
- 5.2.2 逻辑回归的假设和陷阱91
- 5.2.3 逻辑回归示例92
- 5.3 k-最近邻103
- 5.3.1 kNN概述103
- 5.3.2 kNN假设和陷阱104
- 5.3.3 kNN示例105
- 5.4 决策树和随机森林106
- 5.4.1 决策树和随机森林概述107
- 5.4.2 决策树和随机森林的假设及陷阱107
- 5.4.3 决策树示例108
- 5.4.4 随机森林的例子109
- 5.5 朴素贝叶斯109
- 5.5.1 朴素贝叶斯概念及其重要假设110
- 5.5.2 朴素贝叶斯例子110
- 5.6 参考书目111
- 5.7 小结112
- 第6章 集群113
- 6.1 理解集群模型术语113
- 6.2 距离或相似度的度量114
- 6.3 集群技术的评估115
- 6.3.1 内部集群评估115
- 6.3.2 外部集群评估120
- 6.4 k-均值集群120
- 6.4.1 k-均值集群综述120
- 6.4.2 k-均值的假设和陷阱122
- 6.4.3 k-均值集群的例子123
- 6.5 其他集群技术129
- 6.6 参考书目130
- 6.7 小结130
- 第7章 时间序列和异常检测131
- 7.1 在Go中表示时序数据131
- 7.2 理解时间序列的术语134
- 7.3 与时间序列有关的统计135
- 7.3.1 自相关135
- 7.3.2 偏自相关139
- 7.4 预测的自回归模型141
- 7.4.1 自回归模型概述141
- 7.4.2 自回归模型假设和陷阱142
- 7.4.3 自回归模型示例142
- 7.5 自回归移动平均和其他时间序列模型151
- 7.6 异常检测151
- 7.7 参考书目153
- 7.8 小结154
- 第8章 神经网络和深度学习155
- 8.1 理解神经网络术语155
- 8.2 构建一个简单的神经网络157
- 8.2.1 网络中的节点157
- 8.2.2 网络架构158
- 8.2.3 为什么期望这种架构有作用159
- 8.2.4 训练神经网络160
- 8.3 使用简单的神经网络165
- 8.3.1 在实际数据上训练神经网络166
- 8.3.2 评估神经网络168
- 8.4 引入深度学习169
- 8.4.1 什么是深度学习模型170
- 8.4.2 基于Go语言的深度学习171
- 8.5 参考书目177
- 8.6 小结178
- 第9章 部署、分布分析和模型179
- 9.1 在远程机器上可靠地运行模型179
- 9.1.1 Docker和Docker术语简介180
- 9.1.2 Docker化机器学习的应用181
- 9.2 构建可拓展和可重现的机器学习流水线191
- 9.2.1 搭建Pachyderm和Kubernetes集群192
- 9.2.2 构建一个Pachyderm机器学习流水线193
- 9.2.3 更新流水线并检查出处202
- 9.2.4 缩放流水线阶段204
- 9.3 参考书目206
- 9.4 小结206
- 附录 与机器学习相关的算法/技术207