通过本书你将学习以下内容:
使用Go库设置机器学习环境
使用Gonum执行回归和分类
使用Go库探索时间序列模型并分解趋势
通过聚集推文来清理您的Twitter时间轴
学习使用外部服务来满足您的机器学习需求
使用神经网络和CNN与Gorgonia识别手写
使用GoCV和OpenCV实现面部识别
《GO语言机器学习实战》主要介绍了如何在Go语言中部署程序从而实现机器学 习算法。主要内容包括:利用Go语言中的库和功能来配置机器学习环境,对实际生活中的房价数据集进行 回归分析,在Go语言中构建分类模型来区分垃圾电子邮件,通过聚类整理个人推特账户的时间线。此外, 本书还介绍了用神经网络和卷积神经网络进行手写体识别,以及以人脸检测项目为例,介绍了如何选择适 合于具体项目的机器学习算法。
目 录
译者序
原书前言
第1章 如何解决机器学习中的所有问题 // 1
1.1 什么是一个问题 // 1
1.2 什么是一个算法 // 2
1.3 什么是机器学习 // 3
1.4 是否需要机器学习 // 3
1.5 一般问题解决过程 // 4
1.6 什么是一个模型 // 5
1.6.1 什么是一个好的模型 // 6
1.7 本书主要内容与章节安排 // 6
1.8 为什么选择Go语言 // 7
1.9 快速启动 // 7
1.10 函数 // 7
1.11 变量 // 8
1.11.1 值 // 9
1.11.2 类型 // 9
1.11.3 方法 // 11
1.11.4 接口 // 11
1.11.5 包和导入 // 12
1.12 开始 // 13
第2章 线性回归———房价预测 // 14
2.1 项目背景 // 15
2.2 探索性数据分析 // 15
2.2.1 数据摄取和索引 // 16
2.2.2 数据清洗工作 // 18
2.2.3 进一步的探索性工作 // 25
2.2.4 标准化 // 33
2.3 线性回归 // 34
2.3.1 回归 // 35
2.3.2 交叉验证 // 37
2.4 讨论和下一步的工作 // 39
2.5 小结 // 40
第3章 分类———垃圾邮件检测 // 41
3.1 项目背景 // 41
3.2 探索性数据分析 // 42
3.2.1 数据标记 // 42
3.2.2 规范化和词干提取 // 45
3.2.3 停用词 // 45
3.2.4 数据摄取 // 46
3.3 分类器 // 47
3.4 朴素贝叶斯 // 48
3.4.1 TF-IDF // 48
3.4.2 条件概率 // 49
3.4.3 特征 // 51
3.4.4 贝叶斯定理 // 51
3.5 分类器实现 // 52
3.5.1 类 // 53
3.5.2 分类器第Ⅱ部分 // 54
3.6 程序整合 // 58
3.7 小结 // 61
第4章 利用时间序列分析分解二氧化碳趋势 // 62
4.1 探索性数据分析 // 62
4.1.1 从非HTTP数据源下载 // 63
4.1.2 处理非标准数据 // 63
4.1.3 处理小数型日期 // 64
4.1.4 绘图 // 65
4.2 分解 // 68
4.2.1 STL // 69
4.2.2 更多绘制内容 // 81
4.3 预测 // 86
4.4 小结 // 89
参考文献 // 89
第5章 通过聚类整理个人推特账户的时间线 // 90
5.1 项目背景 // 90
5.2 K均值 // 90
5.3 DBSCAN // 92
5.4 数据采集 // 92
5.5 探索性数据分析 // 92
5.6 数据信息 // 96
5.6.1 处理器 // 97
5.6.2 单字预处理 // 99
5.6.3 单条推特处理 // 103
5.7 聚类 // 103
5.7.1 K均值聚类 // 104
5.7.2 DBSCAN聚类 // 105
5.7.3 DMMClust聚类 // 107
5.8 实际数据 // 108
5.9 程序 // 111
5.10 程序调整 // 113
5.10.1 距离调整 // 114
5.10.2 预处理步骤调整 // 115
5.11 小结 // 117
第6章 神经网络———MNIST手写体识别 // 118
6.1 神经网络 // 118
6.1.1 模拟神经网络 // 119
6.2 线性代数101 // 121
6.2.1 激活函数探讨 // 123
6.3 学习功能 // 125
6.4 项目背景 // 126
6.4.1 Gorgonia // 126
6.4.2 数据获取 // 126
6.4.3 什么是张量 // 129
6.4.4 构建神经网络 // 138
6.4.5 前馈 // 139
6.4.6 利用maybe类型进行错误处理 // 140
6.4.7 前馈函数说明 // 142
6.4.8 成本 // 143
6.4.9 反向传播 // 143
6.5 神经网络训练 // 146
6.6 交叉验证 // 148
6.7 小结 // 150
第7章 卷积神经网络———MNIST手写体识别 // 151
7.1 有关神经元的一切认识都是错误的 // 151
7.2 回顾神经网络 // 151
7.2.1 Gorgonia // 152
7.2.2 构建一个神经网络 // 161
7.3 项目 // 164
7.3.1 数据获取 // 164
7.3.2 上一章的其他内容 // 166
7.4 CNN简介 // 168
7.4.1 什么是卷积 // 168
7.4.2 最大池化 // 176
7.4.3 退出 // 176
7.5 构建一个CNN // 176
7.5.1 反向传播 // 180
7.6 运行神经网络 // 182
7.7 测试 // 186
7.7.1 准确率 // 188
7.8 小结 // 189
第8章 基本人脸检测 // 190
8.1 什么是人脸 // 190
8.1.1 Viola-Jones // 191
8.2 PICO // 194
8.2.1 关于学习的注意事项 // 194
8.3 GoCV // 195
8.3.1 API // 195
8.4 PIGO // 195
8.5 人脸检测程序 // 196
8.5.1 从网络摄像头获取图像 // 196
8.5.2 图像显示 // 197
8.5.3 在图像上涂鸦 // 198
8.5.4 人脸检测1 // 198
8.5.5 人脸检测2 // 200
8.5.6 算法结合 // 205
8.6 算法评估 // 206
8.7 小结 // 208
第9章 热狗或者不是热狗———使用外部服务 // 209
9.1 MachineBox // 209
9.2 什么是MachineBox // 210
9.2.1 登录和注册 // 210
9.2.2 Docker安装与设置 // 211
9.2.3 在Go语言中使用 MachineBox // 211
9.3 项目 // 212
9.3.1 训练 // 212
9.3.2 从网络摄像头读取图像 // 213
9.3.3 美化结果 // 214
9.4 结果 // 216
9.5 这一切意味着什么 // 218
9.6 为什么采用MachineBox // 219
9.7 小结 // 219
第10章 今后发展趋势 // 220
10.1 读者应该关注什么 // 221
10.1.1 从业者 // 221
10.1.2 研究人员 // 221
10.2 研究人员、从业者及其利益相关者 // 222
10.3 本书未涉及的内容 // 222
10.4 更多学习资源 // 223