数据分析、机器学习及人工智能必读书目系列——《机器学习实战》
统计分析、机器学习及人工智能必读书目系列机器学习篇之《机器学习实战》
我们已经进入了全新的数据时代,大数据、云计算、物联网、机器学习、人工智能等等一系列技术纷至沓来,数据的管理和应用已经渗透到每一个行业和业务领域,成为当今以及未来商业运作的基础资产。可以说,只有掌握数据并善于运用数据的人,才会在竞争日益激烈的环境中寻得先机。 那么我们该怎么样学习大数据分析、机器学习以及人工智能?作者认为,学习大数据、机器学习和人工智能,所需的知识分为四个层次,一是数学知识;二是统计学知识;三是算法知识;四是工具知识;五是哲学思想知识。所谓工具知识,就是我们需要借助计算机软件来完成相关的分析和运算,目前大数据和机器学习领域热门的语言就是 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
喜欢闲适安静的生活,懂一点计算机编程,懂一点统计学和数据分析。(爱编程爱统计)