本书是介绍机器学习技术的综合指南,从基础的统计学原理和R语言编程知识,到核心的机器学习理论和算法分析,以及机器学习模型的评估和改进方法,再到机器学习技术在大数据平台上的应用,书中都有详细介绍。
全书共9章,第1章介绍机器学习和R语言基础知识;第2章重点介绍初始数据分析和探索性数据分析;第3章介绍不同的抽样技术,并展示这些抽样技术如何减少要处理的数据量;第4章讲解如何用R语言进行数据可视化;第5章介绍特征工程;第6章介绍机器学习核心算法及其实现和应用;第7章列举评估模型背后的基本思想,并详细讨论一些方法;第8章详细讲解如何改进模型性能;第9章通过实际环境的示例讲解 Apache Hadoop、Hive、Pig 和 Spark 等大数据技术。
封面图
目录
- 译者序
- 关于作者
- 关于技术审稿人
- 致谢
- 第1章机器学习和R语言入门1
- 1.1了解发展历程2
- 1.1.1统计学习2
- 1.1.2机器学习2
- 1.1.3人工智能3
- 1.1.4数据挖掘3
- 1.1.5数据科学4
- 1.2概率与统计5
- 1.2.1计数和概率的定义5
- 1.2.2事件和关系7
- 1.2.3随机性、概率和分布8
- 1.2.4置信区间和假设检验9
- 1.3R语言入门13
- 1.3.1基本组成部分13
- 1.3.2R 语言的数据结构14
- 1.3.3子集处理15
- 1.3.4函数和Apply系列17
- 1.4机器学习过程工作流19
- 1.4.1计划19
- 1.4.2探索19
- 1.4.3构建20
- 1.4.4评估20
- 1.5其他技术20
- 1.6小结21
- 1.7参考资料21
- 第2章数据准备和探索22
- 2.1规划数据收集23
- 2.1.1变量类型23
- 2.1.2数据格式24
- 2.1.3数据源29
- 2.2初始数据分析30
- 2.2.1初步印象30
- 2.2.2把多个数据源组织到一起32
- 2.2.3整理数据34
- 2.2.4补充更多信息36
- 2.2.5重塑37
- 2.3探索性数据分析38
- 2.3.1摘要统计量38
- 2.3.2矩41
- 2.4案例研究:信用卡欺诈46
- 2.4.1数据导入46
- 2.4.2数据变换47
- 2.4.3数据探索48
- 2.5小结49
- 2.6参考资料49
- 第3章抽样与重抽样技术50
- 3.1介绍抽样技术50
- 3.2抽样的术语51
- 3.2.1样本51
- 3.2.2抽样分布52
- 3.2.3总群体的均值和方差52
- 3.2.4样本均值和方差52
- 3.2.5汇总的均值和方差52
- 3.2.6抽样点53
- 3.2.7抽样误差53
- 3.2.8抽样率53
- 3.2.9抽样偏误53
- 3.2.10无放回的抽样53
- 3.2.11有放回的抽样54
- 3.3信用卡欺诈:总群体的统计量54
- 3.3.1数据描述54
- 3.3.2总群体的均值55
- 3.3.3总群体的方差55
- 3.3.4汇总的均值和方差55
- 3.4抽样在业务上的意义58
- 3.4.1抽样的特征59
- 3.4.2抽样的缺点59
- 3.5概率和非概率抽样59
- 3.5.1非概率抽样的类型60
- 3.6关于抽样分布的统计理论61
- 3.6.1大数定律61
- 3.6.2中心极限定理63
- 3.7概率抽样技术66
- 3.7.1总群体的统计量66
- 3.7.2简单随机抽样69
- 3.7.3系统性随机抽样74
- 3.7.4分层随机抽样77
- 3.7.5聚类抽样82
- 3.7.6自助抽样86
- 3.8蒙特卡罗方法:接受-拒绝91
- 3.9通过抽样节省计算开销的定性分析93
- 3.10小结94
- 第4章R语言里的数据可视化95
- 4.1ggplot2组件包简介96
- 4.2世界经济发展指标97
- 4.3折线图97
- 4.4堆叠柱状图102
- 4.5散点图106
- 4.6箱形图107
- 4.7直方图和密度图109
- 4.8饼图113
- 4.9相关图114
- 4.10热点图116
- 4.11气泡图117
- 4.12瀑布图120
- 4.13系统树图122
- 4.14关键字云124
- 4.15桑基图125
- 4.16时间序列图127
- 4.17队列图128
- 4.18空间图130
- 4.19小结133
- 4.20参考资料133
- 第5章特征工程135
- 5.1特征工程简介136
- 5.1.1过滤器方法137
- 5.1.2包装器方法137
- 5.1.3嵌入式方法138
- 5.2了解工作数据138
- 5.2.1数据摘要139
- 5.2.2因变量的属性139
- 5.2.3特征的可用性:连续型或分类型141
- 5.2.4设置数据的假设142
- 5.3特征排名143
- 5.4变量子集的选择146
- 5.4.1过滤器方法146
- 5.4.2包装器方法149
- 5.4.3嵌入式方法154
- 5.5降维158
- 5.6特征工程核对清单161
- 5.7小结162
- 5.8参考资料162
- 第6章机器学习理论和实践163
- 6.1机器学习的类型165
- 6.1.1有监督学习166
- 6.1.2无监督学习166
- 6.1.3半监督学习166
- 6.1.4强化学习166
- 6.2机器学习算法的类别167
- 6.3实际环境的数据集170
- 6.3.1房产售价170
- 6.3.2购买偏好170
- 6.3.3Twitter订阅和文章171
- 6.3.4乳腺癌171
- 6.3.5购物篮172
- 6.3.6亚马逊美食评论172
- 6.4回归分析173
- 6.5相关分析174
- 6.5.1线性回归176
- 6.5.2简单线性回归177
- 6.5.3多元线性回归180
- 6.5.4模型诊断:线性回归182
- 6.5.5多项回归191
- 6.5.6逻辑回归194
- 6.5.7洛基(logit)变换195
- 6.5.8几率比196
- 6.5.9模型诊断:逻辑回归202
- 6.5.10多项逻辑回归209
- 6.5.11广义线性模型212
- 6.5.12结论213
- 6.6支持向量机213
- 6.6.1线性SVM214
- 6.6.2二元SVM分类模型215
- 6.6.3多类别SVM217
- 6.6.4结论218
- 6.7决策树218
- 6.7.1决策树的类型219
- 6.7.2决策指标220
- 6.7.3决策树学习方法222
- 6.7.4集成树235
- 6.7.5结论240
- 6.8朴素贝叶斯方法241
- 6.8.1条件概率241
- 6.8.2贝叶斯定理241
- 6.8.3先验概率242
- 6.8.4后验概率242
- 6.8.5似然和边际似然242
- 6.8.6朴素贝叶斯方法242
- 6.8.7结论246
- 6.9聚类分析246
- 6.9.1聚类方法简介247
- 6.9.2聚类算法247
- 6.9.3内部评估255
- 6.9.4外部评估256
- 6.9.5结论257
- 6.10关联规则挖掘258
- 6.10.1关联概念简介258
- 6.10.2规则挖掘算法259
- 6.10.3推荐算法265
- 6.10.4结论270
- 6.11人工神经网络271
- 6.11.1人类认知学习271
- 6.11.2感知器272
- 6.11.3Sigmoid神经元274
- 6.11.4神经网络的体系架构275
- 6.11.5有监督与无监督的神经网络276
- 6.11.6神经网络的学习算法277
- 6.11.7前馈反向传播278
- 6.11.8深度学习284
- 6.11.9结论289
- 6.12文本挖掘方法289
- 6.12.1文本挖掘简介290
- 6.12.2文本摘要291
- 6.12.3TF-IDF292
- 6.12.4词性标注294
- 6.12.5关键字云297
- 6.12.6文本分析:Microsoft Cognitive Services297
- 6.12.7结论305
- 6.13在线机器学习算法305
- 6.13.1模糊C均值聚类306
- 6.13.2结论308
- 6.14构建模型的核对清单309
- 6.15小结309
- 6.16参考资料309
- 第7章机器学习模型的评估311
- 7.1数据集311
- 7.1.1房产售价312
- 7.1.2购买偏好313
- 7.2模型性能和评估入门314
- 7.3模型性能评估的目标315
- 7.4总群体的稳定性指数316
- 7.5连续型输出的模型评估320
- 7.5.1平均绝对误差321
- 7.5.2均方根误差323
- 7.5.3R2324
- 7.6离散型输出的模型评估326
- 7.6.1分类矩阵327
- 7.6.2灵敏度和特异性330
- 7.6.3ROC曲线下的面积331
- 7.7概率技术334
- 7.7.1K 折交叉验证334
- 7.7.2自助抽样336
- 7.8Kappa误差指标337
- 7.9小结340
- 7.10参考资料341
- 第8章模型性能改进342
- 8.1机器学习和统计建模343
- 8.2Caret组件包概述344
- 8.3超参数简介346
- 8.4超参数优化348
- 8.4.1人工搜索349
- 8.4.2人工网格搜索351
- 8.4.3自动网格搜索353
- 8.4.4最优搜索354
- 8.4.5随机搜索356
- 8.4.6自定义搜索357
- 8.5偏误和方差权衡359
- 8.5.1装袋或自助聚合363
- 8.5.2增强363
- 8.6集成学习简介363
- 8.6.1投票集成364
- 8.6.2集成学习中的高级方法365
- 8.7在R语言里演示集成技术367
- 8.7.1装袋树367
- 8.7.2决策树的梯度增强369
- 8.7.3混合knn和rpart372
- 8.7.4利用caretEnemble进行堆叠374
- 8.8高级主题:机器学习模型的贝叶斯优化377
- 8.9小结381
- 8.10参考资料382
- 第9章可扩展机器学习和相关技术384
- 9.1分布式处理和存储384
- 9.1.1Google File System385
- 9.1.2MapReduce386
- 9.1.3R语言里的并行执行386
- 9.2Hadoop生态系统389
- 9.2.1MapReduce390
- 9.2.2Hive393
- 9.2.3Apache Pig396
- 9.2.4HBase399
- 9.2.5Spark400
- 9.3在R语言环境下用 Spark进行机器学习401
- 9.3.1设置环境变量401
- 9.3.2初始化 Spark 会话402
- 9.3.3加载数据并运行预处理402
- 9.3.4创建 SparkDataFrame403
- 9.3.5构建机器学习模型403
- 9.3.6对测试数据进行预测404
- 9.3.7终止 SparkR 会话404
- 9.4在R语言里利用 H2O 进行机器学习405
- 9.4.1安装组件包406
- 9.4.2H2O集群的初始化406
- 9.4.3在R语言里使用H2O的深度学习演示407
- 9.5小结410
- 9.6参考资料411