第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 JSON 11
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 部署/安装Pachyderm 20
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和Kubemetes集群 192
9.2.2 构建一个Pachyderm机器学习流水线 193
9.2.3 更新流水线并检查出处 202
9.2.4 缩放流水线阶段 204
9.3 参考书目 206
9.4 小结 206
附录 与机器学习相关的算法/技术 207