内容简介
R提供了一个免费、开源的环境,这对于学习预测建模以及在真实环境下部署解决方案是很理想的。随着不断增长的社区和大量扩展包的出现,R提供了一个应对一系列问题的切实解决方案。本书可以作为学习预测建模基础知识的指南和参考读物。本书的开篇是关于模型术语和预测建模过程的一个专门章节。后续的每个章节会讲解具体的一类模型(例如神经网络),并把重点放在三个重要问题上:模型如何工作,如何利用R语言训练模型,以及如何利用实际环境下的数据集来衡量和评估模型的性能。通过阅读本书,读者将利用实际环境下的数据集探讨和测试流行的建模技术,并掌握多种预测分析领域的技术。
目录
译者序
前 言
第1章 准备预测建模1
1.1 模型1
1.1.1 从数据中学习2
1.1.2 模型的核心组成部分5
1.1.3 我们的第一个模型:k近邻5
1.2 模型的类型7
1.2.1 有监督、无监督、半监督和强化学习模型7
1.2.2 参数化和非参数化模型8
1.2.3 回归和分类模型8
1.2.4 实时和批处理机器学习模型9
1.3 预测建模的过程9
1.3.1 定义模型的目标9
1.3.2 收集数据10
1.3.3 选取模型11
1.3.4 数据的预处理12
1.3.5 特征工程和降维19
1.3.6 训练和评估模型22
1.3.7 重复尝试不同模型及模型的最终选择25
1.3.8 部署模型25
1.4 性能衡量指标25
1.4.1 评估回归模型26
1.4.2 评估分类模型26
1.5 小结30
第2章 线性回归31
2.1 线性回归入门31
2.2 简单线性回归33
2.3 多元线性回归36
2.3.1 预测CPU性能37
2.3.2 预测二手汽车的价格38
2.4 评估线性回归模型40
2.4.1 残差分析42
2.4.2 线性回归的显著性检验45
2.4.3 线性回归的性能衡量指标47
2.4.4 比较不同的回归模型49
2.4.5 在测试集上的性能50
2.5 线性回归的问题51
2.5.1 多重共线性51
2.5.2 离群值52
2.6 特征选择53
2.7 正则化55
2.7.1 岭回归55
2.7.2 最小绝对值收缩和选择算子56
2.7.3 在R语言里实现正则化57
2.8 小结59
第3章 逻辑回归61
3.1 利用线性回归进行分类61
3.2 逻辑回归入门63
3.2.1 广义线性模型63
3.2.2 解释逻辑回归中的系数64
3.2.3 逻辑回归的假设65
3.2.4 最大似然估计65
3.3 预测心脏病66
3.4 评估逻辑回归模型69
3.4.1 模型的偏差70
3.4.2 测试集的性能73
3.5 利用lasso进行正则化73
3.6 分类指标74
3.7 二元逻辑分类器的扩展76
3.7.1 多元逻辑回归76
3.7.2 有序逻辑回归80
3.8 小结83
第4章 神经网络84
4.1 生物神经元84
4.2 人工神经元85
4.3 随机梯度下降86
4.3.1 梯度下降和局部极小值88
4.3.2 感知器算法88
4.3.3 线性分离91
4.3.4 逻辑神经元92
4.4 多层感知器网络92
4.5 预测建筑物的能源效率95
4.6 重新进行玻璃类型预测99
4.7 预测手写数字102
4.8 小结106
第5章 支持向量机108
5.1 最大边缘分类108
5.2 支持向量分类111
5.3 核和支持向量机113
5.4 预测化学品的生物降解115
5.5 交叉验证118
5.6 预测信用评分120
5.7 用支持向量机进行多类别分类123
5.8 小结123
第6章 树形方法124
6.1 树形模型的直观印象124
6.2 训练决策树的算法126
6.2.1 分类和回归树126
6.2.2 回归模型树131
6.2.3 CART分类树131
6.2.4 C5.0133
6.3 在合成的二维数据上预测类别归属关系134
6.4 预测纸币的真实性136
6.5 预测复杂的技能学习138
6.5.1 在CART树里对模型参数进行调优140
6.5.2 树模型中的变量重要性141
6.5.3 回归模型树实用示例142
6.6 小结143
第7章 集成方法144
7.1 装袋144
7.1.1 边缘和袋外观测数据145
7.1.2 用装袋预测复杂技能学习146
7.1.3 用装袋预测心脏病146
7.1.4 装袋的局限性150
7.2 增强151
7.3 预测大气中伽马射线的辐射152
7.4 利用增强算法预测复杂技能学习156
7.5 随机森林157
7.6 小结159
第8章 概率图模型161
8.1 图论入门161
8.2 贝叶斯定理163
8.3 条件性独立163
8.4 贝叶斯网络164
8.5 朴素贝叶斯分类器165
8.6 隐马尔可夫模型172
8.7 预测启动子基因序列174
8.8 预测英语单词里的字母特征179
8.9 小结182
第9章 时间序列分析184
9.1 时间序列的基本概念184
9.2 一些基本的时间序列185
9.2.1 白噪声185
9.2.2 随机漫步187
9.3 平稳性188
9.4 平稳时间序列模型189
9.4.1 移动平均模型189
9.4.2 自回归模型192
9.4.3 自回归移动平均模型193
9.5 非平稳时间序列模型194
9.5.1 整合自回归移动平均模型194
9.5.2 自回归条件异方差模型195
9.5.3 广义自回归条件异方差模型195
9.6 预测强烈地震196
9.7 预测猞猁的诱捕199
9.8 预测外汇汇率200
9.9 其他时间序列模型202
9.10 小结203
第10章 主题建模204
10.1 主题建模概况204
10.2 隐含狄式分布205
10.2.1 狄式分布205
10.2.2 生成过程208
10.2.3 拟合LDA模型209
10.3 对在线新闻报道的主题进行建模210
10.3.1 模型稳定性215
10.3.2 找出主题数量216
10.3.3 主题分布217
10.3.4 单词分布219
10.3.5 LDA扩展模型220
10.4 小结220
第11章 推荐系统222
11.1 评分矩阵222
11.2 协同过滤225
11.2.1 基于用户的协同过滤225
11.2.2 基于商品的协同过滤228
11.3 奇异值分解228
11.4 R语言和大数据231
11.5 预测电影和笑话的推荐232
11.6 加载和预处理数据233
11.7 对数据进行探索234
11.7.1 评估二元的top-N推荐236
11.7.2 评估非二元的top -N推荐239
11.7.3 评估每种预测方法241
11.8 推荐系统的其他方法242
11.9 小结243
前言/序言
预测分析以及更一般意义上的数据科学当前正处于被追捧的热潮中,因为像垃圾邮件过滤、单词补全和推荐引擎这样的预测性技术已经被广泛运用于日常生活。这些技术现在不仅越来越被我们所熟悉,还赢得了我们的信任。在计算机处理能力和软件方面(例如R语言及其大量专用的扩展包)的发展产生了这样的局面:用户经过培训就可以使用这些工具,而无需具备统计学的高级学位,也不需要使用公司或大学实验室专用的硬件。技术的成熟度和基础软硬件的可用性结合起来,让很多该领域的从业者倍感兴奋,他们感到可以为自己的领域和业务设计一些能产生重要影响的工具,事实也确实如此。
与此同时,很多新进入该领域的人士很快发现其中有很多陷阱需要克服。实际上,没有哪个学位足以把一位学生或从业者训练为成功的预测建模者。该领域依赖于很多学科,例如计算机科学、数学和统计学。当前,进入该领域的人们不仅只在其中的一门学科有比较强的背景,还往往会比较专精于其他学科。在给研究生和从业者们讲授了有关本书材料的几次课程之后,我发现学员们反复表达的两个最大担忧是对编程和数学的恐惧。有意思的是,对这两者的表达几乎总是互斥的。预测分析学实际上是一种实践性的学科,但同时也是一种具备较强理论基础的学科,这些理论基础的知识对于从业者是很关键的。因此,掌握预测分析需要一系列不同的技能,从编写良好的软件到实现一种新技术或对数据进行预处理,再到理解某个模型的假设条件,如何有效地训练该模型,如何对该模型出现的问题进行诊断,以及如何调整模型的参数以获得更好的结果。
讨论到这里,很自然地会反向思考预测分析学作为一个领域实际会覆盖的内容。事实上,该领域和机器学习、数据挖掘、商业分析学、数据科学等其他相关领域的边界是比较模糊的。本书中会用到的定义非常宽泛。对于本书的主题而言,预测分析学是一个领域,它利用数据建立模型来预测未来我们感兴趣问题的结果。当然,它和机器学习领域会有很大的重叠,机器学习更多地研究从数据中学习的程序和算法。这种重叠的情况对于数据挖掘(以从数据中提取知识和模式为目标)也同样成立。数据科学正在迅速成为覆盖所有这些领域的综合术语,它还包括了其他主题,例如呈现数据分析结果的信息可视化,围绕在实际环境中部署模型的业务概念,以及数据管理。本书会着重于机器学习,但我们不会覆盖学习可行性的理论探索,也不会讲解着眼于从无特定预测目标的数据中寻找模式和聚类的无监督学习方法。取而代之,我们会探索像时间序列这样的一些主题,通常在机器学习的教材里不会讲解它们。
无论对于学习预测分析学还是解决实际环境中的问题,R语言都是一个优秀的平台。它是一个开源项目,有一个持续快速增长的用户社区。在编写本书时,它和Python是全世界数据科学家最常用的两种语言。它有很多适用于不同建模技术和应用领域的扩展包,其中很多可以通过连接到Comprehensive R Archive Network (CRAN)从R语言平台本身直接获取。该语言还有很多在线资源,从教程到在线课程都包含在内。我们尤其要提到优秀的交叉验证式论坛以及R-bloggers 网站,该网站包含了大量来自不同博客的关于R语言应用的文章。对于那些对R语言有点生疏的读者,我们提供了一个免费在线教程章节,它是从我们在AUEB学生的课程讲义演化而来的。
本书的主要任务是在(强调直觉及实践而不是理论的)低端入门教程和(专注于数学、细节和严谨性的)高端学术教材之间的鸿沟上架起桥梁。另一个同等重要的目标是给读者灌输一些良好的实践经验,比如学习如何适当地测试和评估一个模型。我们还要强调一些重要的概念,例如偏误-方差权衡和过拟合,这些概念在预测建模中是普遍存在的,并会在不同模型中以多种形式反复出现。
从编程的角度来说,虽然我们假定你已经熟悉R语言,不过还是会详细解释并讨论每个代码示例,以便读者提高他们的自信心,循序渐进。尽管如此,在学习的过程中,或者至少在转到下一章之前,实际运行代码的重要性是如何强调都不为过的。为了尽可能让这个过程顺利进行,我们已经为教材中的所有章节提供了代码文件,其中包含了教材中所有的代码示例。此外,我们还在很多地方编写了自己对于特定技术的简单实现方法。典型的两个示例是第4章里的口袋感知器算法和第7章的AdaBoost自适应增强方法。在某种程度上,这么做是为了鼓励用户学习如何编写他们自己的函数,而不是完全依赖于已有的实现方法,因为并不是所有方法都有现成的函数可用。
重现能力是数据分析的一项关键技能,而且它并不限于教育领域。因此,我们大量使用了可自由获取的数据集并尽力在需要随机数生成器的地方运用特定的种子值。最后,我们尽可能尝试利用相对小规模的数据集,以确保读者在阅读本书时运行代码不需要等待太长的时间或被迫寻求更好的硬件。我们要提醒你,在真实世界里,耐心是一种非常有益的美德,因为你感兴趣的大部分数据集会比我们学习本书时用到的更大。
每章的结尾是两个或多个实际的建模案例
预测分析:R语言实现 电子书 下载 mobi epub pdf txt