重磅推荐
【产品特色】


【编辑推荐】

通过本书你将学习以下内容:
使用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. 退出 // 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


【前言】

原书前言
Go语言是一种针对机器学习的良好编程语言。其语法简单,有助于清晰描述复杂算法,同时又不至于使得开发人员无法理解如何运行高效的优化代码。本书旨在阐述如何在Go语言中实现机器学习,使程序易于部署,代码易于理解和调试,同时还可进行性能测试。
本书首先介绍如何利用Go语言的库文件和功能来配置机器学习的环境。然后,进行了实际房价数据集的回归分析,并在Go语言中构建了分类模型,将电子邮件分类为垃圾邮件 或正常邮件。利用Gonum、Gorgonia和STL进行时间序列分析和分解,以及通过聚类来整理 个人推特账户的时间线。除此之外,还介绍了如何利用神经网络和卷积神经网络进行手写体 识别,这两种神经网络都属于深度学习技术。在掌握了上述所有技术的基础上,将在人脸检测项目的帮助下介绍了如何在具体项目中选择的机器学习算法。
在本书后,你将树立一种坚实的机器学习思想,牢固掌握Go语言中功能强大的库文件,并对实际项目中机器学习算法的具体实现有深刻理解。
本书读者如果你是一名机器学习工程人员,数据科学专业人员,或是一名想在实际项目中实现机器学习,想更容易实现更加智能的应用程序的Go语言程序员,那么本书就非常适合你。
本书主要内容
第1章“如何解决机器学习中的所有问题”,介绍了两类机器学习:回归和分类。在该章结束时,你能够对用于构建机器学习程序的数据结构感到得心应手。大多数机器学习算法 都是基于在此介绍的数据结构而构建的。接下来,将介绍Go语言机器学习,并启动和运行 进一步的项目。
第2章“线性回归———房价预测”,对实际房价数据集进行回归分析。在此将首先构建必要的数据结构来进行上述分析,并对数据集的初步探索。
第三章“分类———垃圾邮件检测”,包括在Go语言中构建一个分类模型。数据集是典型 的垃圾邮件和正常邮件,目标是构建一个能将电子邮件分类为垃圾邮件或正常邮件的模型。然后,介绍如何自行编写算法,同时利用外部库(如Gonum)来支持数据结构。
第4章“利用时间序列分析分解二氧化碳趋势”,该章体现了时间序列分析的独特作用。时间序列中的数据通常可根据不同的描述目的进行分解。该章展示了如何执行这种分解,以 及如何利用Gonum绘图工具和gnuplot来进行显示。
第5章“通过聚类整理个人推特账户的时间线”,包括推特上的聚类分析。该章使用了 两种不同的聚类方法———K均值和DBSCAN。在该章中,将利用在第2章中所积累的一些技 巧。另外,还将采用第4章中所用的相同库文件。除此之外,还使用了Marcin Praski聚类库。
第6章“神经网络———MNIST手写体识别”,开启了图像识别的新领域。由于有用特征是输入特征的非线性积,因此图像处理相对较难。该项目的目的是介绍各种高维数据的处理方法,尤其是在Gonum库中用PCA算法来清洗数据。
第7章“卷积神经网络———MNIST手写体识别”,阐述了如何利用深度学习的进展来进行手写体识别,并通过利用Gorgonia构建卷积神经网络,从而实现了99.87%的准确率。
第8章“基本人脸检测”,介绍了人脸检测的一种基本实现。在该章结束时,将能够利用GoCV和PIGO实现一个可用的人脸检测系统。该章为学习如何在工作中选择一种正确算法打下了重要基础。
第9章“热狗或非热狗———采用外部服务”,展示了如何将外部服务集成到机器学习项目中以及需要关注的注意事项。
第10章“今后发展趋势”,列出了在Go语言中进行机器学习所需的下一步发展途径。


【免费在线读】


返回顶部