数据分析、机器学习及人工智能必读书目系列——《机器学习实战》

统计分析、机器学习及人工智能必读书目系列机器学习篇之《机器学习实战》

我们已经进入了全新的数据时代,大数据、云计算、物联网、机器学习、人工智能等等一系列技术纷至沓来,数据的管理和应用已经渗透到每一个行业和业务领域,成为当今以及未来商业运作的基础资产。可以说,只有掌握数据并善于运用数据的人,才会在竞争日益激烈的环境中寻得先机。 那么我们该怎么样学习大数据分析、机器学习以及人工智能?作者认为,学习大数据、机器学习和人工智能,所需的知识分为四个层次,一是数学知识;二是统计学知识;三是算法知识;四是工具知识;五是哲学思想知识。所谓工具知识,就是我们需要借助计算机软件来完成相关的分析和运算,目前大数据和机器学习领域热门的语言就是 R 和 Python。我们会分别介绍这五个层次所需要看的书,希望对大家有用。

机器学习实践

  • 作者:Peter Harrington

  • 译者: 李锐 / 李鹏 / 曲亚东 / 王斌

  • 页数: 332

  • 出版:人民邮电出版社 2013年版

数据分析、机器学习及人工智能必读书目系列——《机器学习实战》

我对好的书籍的第一要求是深入浅出、容易读懂。但事实上,要做到深入浅出非常不容易,需要作者有举重若轻、信手拈来的深厚功底。这本书的最大的特点就是非常适合新手,主要内容集中在如何实际运用机器学习算法,理论讲解逻辑清晰、浅显易懂,举例经典形象、长度适中,让初学者能够用最基本的 pyton 语法,从底层构建机器学习代码。

作者 Peter Harrington 曾经在英特尔工作7年,现在是Zillabyte公司的首席科学家,在加入该公司之前,他曾担任2年的机器学习软件顾问。《机器学习实战》主要介绍机器学习基础,以及如何利用算法进行分类,并逐步介绍了多种经典的监督学习算法,如k近邻算法、朴素贝叶斯算法、Logistic回归算法、支持向量机、AdaBoost集成方法、基于树的回归算法和分类回归树(CART)算法等。第三部分则重点介绍无监督学习及其一些主要算法:k均值聚类算法、Apriori算法、FP-Growth算法。第四部分介绍了机器学习算法的一些附属工具。

如果你是机器学习的入门者,想快速了解对应的算法,并亲手实践其执行效果,那么这本书非常适合您学习入门。当然,如果你想更加深入第了解各种算法背后的数学原理,那你还是要老老实实地去啃一啃高等数学、统计学、概率论、线性代数等知识。

多余的话不再说,看目录,同学们自己决定是否要看此书。

  • 第一部分 分类

  • 第1章 机器学习基础  2

  • 1.1  何谓机器学习  3

  • 1.1.1  传感器和海量数据  4

  • 1.1.2  机器学习非常重要  5

  • 1.2  关键术语  5

  • 1.3  机器学习的主要任务  7

  • 1.4  如何选择合适的算法  8

  • 1.5  开发机器学习应用程序的步骤  9

  • 1.6  Python语言的优势  10

  • 1.6.1  可执行伪代码  10

  • 1.6.2  Python比较流行  10

  • 1.6.3  Python语言的特色  11

  • 1.6.4  Python语言的缺点  11

  • 1.7  NumPy函数库基础  12

  • 1.8  本章小结  13

  • 第2章 k-近邻算法   15

  • 2.1  k-近邻算法概述  15

  • 2.1.1  准备:使用Python导入数据  17

  • 2.1.2  从文本文件中解析数据  19

  • 2.1.3  如何测试分类器  20

  • 2.2  示例:使用k-近邻算法改进约会网站的配对效果  20

  • 2.2.1  准备数据:从文本文件中解析数据  21

  • 2.2.2  分析数据:使用Matplotlib创建散点图  23

  • 2.2.3  准备数据:归一化数值  25

  • 2.2.4  测试算法:作为完整程序验证分类器  26

  • 2.2.5  使用算法:构建完整可用系统  27

  • 2.3  示例:手写识别系统  28

  • 2.3.1  准备数据:将图像转换为测试向量  29

  • 2.3.2  测试算法:使用k-近邻算法识别手写数字  30

  • 2.4  本章小结  31

  • 第3章 决策树   32

  • 3.1  决策树的构造  33

  • 3.1.1  信息增益  35

  • 3.1.2  划分数据集  37

  • 3.1.3  递归构建决策树  39

  • 3.2  在Python中使用Matplotlib注解绘制树形图  42

  • 3.2.1  Matplotlib注解  43

  • 3.2.2  构造注解树  44

  • 3.3  测试和存储分类器  48

  • 3.3.1  测试算法:使用决策树执行分类  49

  • 3.3.2  使用算法:决策树的存储  50

  • 3.4  示例:使用决策树预测隐形眼镜类型  50

  • 3.5  本章小结  52

  • 第4章 基于概率论的分类方法:朴素贝叶斯   53

  • 4.1  基于贝叶斯决策理论的分类方法  53

  • 4.2  条件概率  55

  • 4.3  使用条件概率来分类  56

  • 4.4  使用朴素贝叶斯进行文档分类  57

  • 4.5  使用Python进行文本分类  58

  • 4.5.1  准备数据:从文本中构建词向量  58

  • 4.5.2  训练算法:从词向量计算概率  60

  • 4.5.3  测试算法:根据现实情况修改分类器  62

  • 4.5.4  准备数据:文档词袋模型  64

  • 4.6  示例:使用朴素贝叶斯过滤垃圾邮件  64

  • 4.6.1  准备数据:切分文本  65

  • 4.6.2  测试算法:使用朴素贝叶斯进行交叉验证  66

  • 4.7  示例:使用朴素贝叶斯分类器从个人广告中获取区域倾向  68

  • 4.7.1  收集数据:导入RSS源  68

  • 4.7.2  分析数据:显示地域相关的用词  71

  • 4.8  本章小结  72

  • 第5章 Logistic回归   73

  • 5.1  基于Logistic回归和Sigmoid函数的分类  74

  • 5.2  基于最优化方法的最佳回归系数确定  75

  • 5.2.1  梯度上升法  75

  • 5.2.2  训练算法:使用梯度上升找到最佳参数  77

  • 5.2.3  分析数据:画出决策边界  79

  • 5.2.4  训练算法:随机梯度上升  80

  • 5.3  示例:从疝气病症预测病马的死亡率  85

  • 5.3.1  准备数据:处理数据中的缺失值  85

  • 5.3.2  测试算法:用Logistic回归进行分类  86

  • 5.4  本章小结  88

  • 第6章 支持向量机  89

  • 6.1  基于最大间隔分隔数据  89

  • 6.2  寻找最大间隔  91

  • 6.2.1  分类器求解的优化问题  92

  • 6.2.2  SVM应用的一般框架  93

  • 6.3  SMO高效优化算法  94

  • 6.3.1  Platt的SMO算法  94

  • 6.3.2  应用简化版SMO算法处理小规模数据集  94

  • 6.4  利用完整Platt SMO算法加速优化  99

  • 6.5  在复杂数据上应用核函数  105

  • 6.5.1  利用核函数将数据映射到高维空间  106

  • 6.5.2  径向基核函数  106

  • 6.5.3  在测试中使用核函数  108

  • 6.6  示例:手写识别问题回顾  111

  • 6.7  本章小结  113

  • 第7章 利用AdaBoost元算法提高分类

  • 性能   115

  • 7.1  基于数据集多重抽样的分类器  115

  • 7.1.1  bagging:基于数据随机重抽样的分类器构建方法  116

  • 7.1.2  boosting  116

  • 7.2  训练算法:基于错误提升分类器的性能  117

  • 7.3  基于单层决策树构建弱分类器  118

  • 7.4  完整AdaBoost算法的实现  122

  • 7.5  测试算法:基于AdaBoost的分类  124

  • 7.6  示例:在一个难数据集上应用AdaBoost  125

  • 7.7  非均衡分类问题  127

  • 7.7.1  其他分类性能度量指标:正确率、召回率及ROC曲线  128

  • 7.7.2  基于代价函数的分类器决策控制  131

  • 7.7.3  处理非均衡问题的数据抽样方法  132

  • 7.8  本章小结  132

  • 第二部分 利用回归预测数值型数据

  • 第8章 预测数值型数据:回归   136

  • 8.1  用线性回归找到最佳拟合直线  136

  • 8.2  局部加权线性回归  141

  • 8.3  示例:预测鲍鱼的年龄  145

  • 8.4  缩减系数来“理解”数据  146

  • 8.4.1  岭回归  146

  • 8.4.2  lasso  148

  • 8.4.3  前向逐步回归  149

  • 8.5  权衡偏差与方差  152

  • 8.6  示例:预测乐高玩具套装的价格  153

  • 8.6.1  收集数据:使用Google购物的API  153

  • 8.6.2  训练算法:建立模型  155

  • 8.7  本章小结  158

  • 第9章 树回归  159

  • 9.1  复杂数据的局部性建模  159

  • 9.2  连续和离散型特征的树的构建  160

  • 9.3  将CART算法用于回归  163

  • 9.3.1  构建树  163

  • 9.3.2  运行代码  165

  • 9.4  树剪枝  167

  • 9.4.1  预剪枝  167

  • 9.4.2  后剪枝  168

  • 9.5  模型树  170

  • 9.6  示例:树回归与标准回归的比较  173

  • 9.7  使用Python的Tkinter库创建GUI  176

  • 9.7.1  用Tkinter创建GUI  177

  • 9.7.2  集成Matplotlib和Tkinter  179

  • 9.8  本章小结  182

  • 第三部分 无监督学习

  • 第10章 利用K-均值聚类算法对未标注数据分组  184

  • 10.1  K-均值聚类算法  185

  • 10.2  使用后处理来提高聚类性能  189

  • 10.3  二分K-均值算法  190

  • 10.4  示例:对地图上的点进行聚类  193

  • 10.4.1  Yahoo! PlaceFinder API  194

  • 10.4.2  对地理坐标进行聚类  196

  • 10.5  本章小结  198

  • 第11章 使用Apriori算法进行关联分析  200

  • 11.1  关联分析  201

  • 11.2  Apriori原理  202

  • 11.3  使用Apriori算法来发现频繁集  204

  • 11.3.1  生成候选项集  204

  • 11.3.2  组织完整的Apriori算法  207

  • 11.4  从频繁项集中挖掘关联规则  209

  • 11.5  示例:发现国会投票中的模式  212

  • 11.5.1  收集数据:构建美国国会投票记录的事务数据集  213

  • 11.5.2  测试算法:基于美国国会投票记录挖掘关联规则  219

  • 11.6  示例:发现毒蘑菇的相似特征  220

  • 11.7  本章小结  221

  • 第12章 使用FP-growth算法来高效发现频繁项集  223

  • 12.1  FP树:用于编码数据集的有效方式  224

  • 12.2  构建FP树  225

  • 12.2.1  创建FP树的数据结构  226

  • 12.2.2  构建FP树  227

  • 12.3  从一棵FP树中挖掘频繁项集  231

  • 12.3.1  抽取条件模式基  231

  • 12.3.2  创建条件FP树  232

  • 12.4  示例:在Twitter源中发现一些共现词  235

  • 12.5  示例:从新闻网站点击流中挖掘  238

  • 12.6  本章小结  239

  • 第四部分 其他工具

  • 第13章 利用PCA来简化数据  242

  • 13.1  降维技术  242

  • 13.2  PCA  243

  • 13.2.1  移动坐标轴  243

  • 13.2.2  在NumPy中实现PCA  246

  • 13.3  示例:利用PCA对半导体制造数据降维  248

  • 13.4  本章小结  251

  • 第14章 利用SVD简化数据  252

  • 14.1  SVD的应用  252

  • 14.1.1  隐性语义索引  253

  • 14.1.2  推荐系统  253

  • 14.2  矩阵分解  254

  • 14.3  利用Python实现SVD  255

  • 14.4  基于协同过滤的推荐引擎  257

  • 14.4.1  相似度计算  257

  • 14.4.2  基于物品的相似度还是基于用户的相似度?  260

  • 14.4.3  推荐引擎的评价  260

  • 14.5  示例:餐馆菜肴推荐引擎  260

  • 14.5.1  推荐未尝过的菜肴  261

  • 14.5.2  利用SVD提高推荐的效果  263

  • 14.5.3  构建推荐引擎面临的挑战  265

  • 14.6  基于SVD的图像压缩  266

  • 14.7  本章小结  268

  • 第15章 大数据与MapReduce  270

  • 15.1  MapReduce:分布式计算的框架  271

  • 15.2  Hadoop流  273

  • 15.2.1  分布式计算均值和方差的mapper  273

  • 15.2.2  分布式计算均值和方差的reducer  274

  • 15.3  在Amazon网络服务上运行Hadoop程序  275

  • 15.3.1  AWS上的可用服务  276

  • 15.3.2  开启Amazon网络服务之旅  276

  • 15.3.3  在EMR上运行Hadoop作业  278

  • 15.4  MapReduce上的机器学习  282

  • 15.5  在Python中使用mrjob来自动化MapReduce  283

  • 15.5.1  mrjob与EMR的无缝集成  283

  • 15.5.2  mrjob的一个MapReduce脚本剖析  284

  • 15.6  示例:分布式SVM的Pegasos算法  286

  • 15.6.1  Pegasos算法  287

  • 15.6.2  训练算法:用mrjob实现MapReduce版本的SVM  288

  • 15.7  你真的需要MapReduce吗?  292

  • 15.8  本章小结  292

  • 附录A  Python入门  294

  • 附录B  线性代数  303

  • 附录C  概率论复习  309

  • 附录D  资源  312

  • 索引  313

  • 版权声明  316


喜欢闲适安静的生活,懂一点计算机编程,懂一点统计学和数据分析。(爱编程爱统计)

相关推荐