活在当下 发表于 2019-12-28 09:40:01

电子书:《机器学习Go语言实现》_谢文江等译_2018-10-16

1131
                       



内容简介:

3章评估和验证
54.1决策树和随机森林概述…107
3.1评估
54.2决策树和随机森林的
31.1连续指标
假设及陷阱
3.1.2分类指标
决策树示例
3.2验证
544随机森林的例子
321训练和测试集
55朴素贝叶斯
3.2.2保留集
5.5.1朴素贝叶斯概念及其
3.23交叉验证
33参考书目
552朴素贝叶斯例子…
625.6参考书目
第4章回归
41理解回归模型的术语
第6章集群
线性回归
6.1理解集群模型术语
1线性回归概述
62距离或相似度的度量
42.2线性回归假设和陷阱
63集群技术的评估
4.2.3线性回归示例
63.1内部集群评估
43多元线性回归
6.3.2外部集群评估
44非线性和其他类型的回归
816.4k均值集群
4.5参考书
64.1k均值集群综述
4.6小结
642k-均值的假设和陷阱
643k-均值集群的例子
第5章分类
65其他集群技术
理解分类模型的术语
66参考书目
7小结…
52.1逻辑回归概述
522逻辑回归的假设和陷阱…91第7章时间序列和异常检.测…131
523逻辑回归示例
…92
在Go中表示时序数据
3k-最近邻
……103
2理解时间序列的术语
53.1kNN概述
10373与时间序列有关的统计
532kNN假设和陷阱
7.3.1自相关
3.3kNN示例
73.2偏自相关
54决策树和随机森林
74预测的自回归模型

74.1自回归模型概述
842基于Go语言的深度学习…1
4.2自回归模型假设和陷阱…14
8.5参考书目
74.3自回归模型示例
428.6小结
7.5自回归移动平均和其他时间
序列模型
第9章部署、分布分析和模
7.6异常检測
9.1在.远.程.机器上可靠地运行模型…179
7.7参考书目
9.1.1 Docker和 Docker术语
9,.2 Docker化机器学习的
第8章神经网络和深度学习…15
理解神经网络术语
9.2构建可拓展和可重现的机器
82构建一个简单的神经网络……157
学习流水线
8.21网络中的节点
921搭建 Pachyderm和
8.22网络架构
Kubernetes集群…
82.3为什么期望这种架构
922构建一个 Pachyderm机器
有作用
学习流水线
824训练神经网络
923更新流水线并检查出处…202
83使用简单的神经网络
9.24缩放流水线阶段
83.在实际数据上训练
9.3参考书目
神经网络
94小结
8.3.2评估神经网络
84引人深度学习
169附录与机器学习相关的算法
84.1什么是深度学习模型…170

第1章
数据的收集和组织
调查结果显示,数据科学家至少有90c?时间是用于收集、组织和清洗数据
而不是用于训练或调试复杂的机器学习模型。为什么会这样呢?难道机器学习不才
是最有趣的部分吗?为何会如此关注所收集数据的状态呢?首先,如果没有数据
机器学习模型将无法学习。虽然这是显而易见的事情,但需注意的是,构建模型的
强大与否,有一部分是取决于所给予的数据。常言道,“输入是垃圾,产出也会是垃
圾”。只有确定了收集的数据是相关并且干净的,机器学习的模型才能变得强大。也
只有这样,才能如预想般操作数据,并产出有价值的结果
当使用一种特定模型时,不是所有类型的数据都是合适的。例如,高维数据
(例如文本数据)在一些特定模型中运行得就不是很好。另外一些模型假设变量是正
态分布的,这种假设并非总是成立的。因此在收集需要的数据时应格外小心,并确
保知道数据和模型是如何交互的。
数据科学家花如此多时间收集和组织数据还有另一个原因,那就是数据通常是
凌乱的并且很难聚合。在大多数的组织中,数据经常以多种格式保存在多种系统中
且拥有多种访问权限。通常情况下,很难像指定一个文件路径那样简单地为模型
提供训练数据集合
为了形成一个训练/测试集合,或者提供变量给一个模型以用于预测,可能需
要处理各种各样的数据类型,例如CSV、JSON、数据库中的表,等等。除此之外还
可能需要转换其中一些数值。常见的转换包括解析时间格式、转化分类数据为数字
数值归一化、使用一些函数交叉处理数据。然而,不能总是假设一个特定变
所有可能取值都会出现,或者能被同一种方式解析
数据经常有数值缺失、类型混合、数值损坏的情况发生,如何处理这些场景将
直接影响所构建模型的质量,因此需要仔细地收集、组织和理解所采用的数据

2◆机器学习:Go语言实現
虽然本书大部分内容的重点是各种各样的建模技术,但是读者仍应当将数据的
收集、解析和组织当作是数据科学项目成功的一个(甚至是最)关键的组成部分。
如果在机器学习的项目开发中,这部分数据没有保持高级别的完整性,那么从长远
来看将会导致各种麻烦
1.1数据处理- Gopher方式
和其他用于数据科学/分析的处理语言相比,Go提供了强大的数据操作和解析
能力。虽然其他语言(例如 Python或者R)能让用户很快地进行数据交互,但是这
些语言经常倡导打破完整性的便利。如果在代码中经常采用动态和交互性数据探索
会导致行为变得奇怪。
以这个简单的CSV文件为例
可以迅速写出一些 Python代码去解析这个CSV文件,然后在无须了解数据是
什么类型的情况下,输出整数列的最大值
import pandas as pd
intege
strigol
(myfile.csv
t the
imum value in the integer col
这个简单的程序将输出正确的结果
s python myprogram.Py
如下所示,现在移除其中一个整数用于模拟数值丢失的情况
1, blah
Python程序随后就会打破数据结果的完整性,明确来讲,上述程序仍然会保持运

数掘的收集和组织◆3
行,不会告诉用户有任何不一样的地方,仍然会产生数值,但却是一个不同类型的数值
这种情况是无法接受的,一个整数数值可以在用户察觉不到任何变化的时候凭
空消失。这种很难迫踪的行为会对建模产生深远的影响。一般来说,一旦选择了动
态类型和抽象的便利性,就需要接受这种行为上的变化。
重点并不是说 Python无法处理这种行为,因为 Python专家很快会认识到其实
是有办法解决这个问题的。重点是这种便利性在默认情况下并没有提升完整
性,因此很容易搬起石头砸自己的脚
从另一方面来说,可以利用Go语言的静态类型和明确的错误处理方式,来确
保数据的解析跟期望的一致。在这个简单例子中,可以毫不费力地写一些Go代码
去解析的CSV(现在暂不用关心具体的技术细节)
Read in the csv records
log. Fatal err
var intMax int
the maximum value if appropriate
if intval intMax
intRa
// Print the maximum value
fmt Println(intRa
如果这个CSV文件的所有整型数值都存在,它将会产生同样正确的结果


#############################################


几乎不开 发表于 2019-12-28 09:40:05



免费下载地址:

http://pan.qqq0.com/file/488067-425778935

页: [1]
查看完整版本: 电子书:《机器学习Go语言实现》_谢文江等译_2018-10-16