本书首先简要介绍了大数据分析与挖掘的相关概念,以及R语言的基础知识,以此来帮助读者了解、使用R语言;其次详细介绍了探索性数据分析、数据采集,以此来帮助读者了解数据的基本分析方法和数据的获取方法;然后着重介绍了目前主流的数据挖掘算法——时间序列算法、线性回归算法、分类算法、关联算法、聚类算法,从算法的原理到如何使用R语言进行算法实现都进行了详细的介绍并提供了实操代码,以此帮助读者学习数据挖掘及使用R语言完成数据挖掘任务;最后通过6个旅游行业的实际案例来帮助读者将学习到的知识运用到真实的业务场景中,并融会贯通整个知识体系。 本书无须读者具备R语言和大数据分析与挖掘的基础知识。无论是R语言初学者,还是熟练的R语言用户,都能从本书中找到有用的内容。本书既可以作为一本学习R语言的教材,也可以作为大数据分析与挖掘的工具书。
谢笑盈:统计学博士、副教授、硕士生导师、澳大利亚科廷大学访问学者,研究方向为大数据统计分析方法与应用。近5年来,主持完成国家社科基金项目1项,国家统计局重点项目1项;以第一作者或通讯作者身份发表中科院SCI1区TOP论文1篇、SCI2区TOP论文1篇、ESI高被引论文1篇、EI检索论文3篇,其他中文核心以上刊物论文5篇;指导学生获得全国大学生市场调查与分析大赛总决赛三等奖1次、浙江省大学生市场调查与分析大赛一等奖2次、浙江省金融创新大赛一等奖1次。
第1章 大数据分析与挖掘概论 1
1.1 大数据分析与挖掘 1
1.1.1 大数据定义 1
1.1.2 大数据分析与挖掘的概念 2
1.2 大数据分析与挖掘流程 3
1.2.1 数据获取 3
1.2.2 数据预处理 3
1.2.3 数据分析 4
1.2.4 数据解释 5
1.3 大数据分析与挖掘应用 5
1.3.1 优化任务 5
1.3.2 预测任务 5
1.3.3 分类任务 5
1.3.4 识别任务 6
第2章 R语言编程基础 7
2.1 R语言的安装及配置 7
2.1.1 R语言的获取和安装 8
2.1.2 RStudio的获取和安装 9
2.2 界面与菜单 12
2.2.1 RGui界面 12
2.2.2 RStudio界面 12
2.3 变量与数据类型 15
2.3.1 变量 15
2.3.2 数据类型 15
2.4 数据结构 17
2.4.1 向量 17
2.4.2 数组 19
2.4.3 矩阵 21
2.4.4 列表 22
2.4.5 数据框 23
2.4.6 因子 25
2.5 控制语句 26
2.5.1 条件语句 26
2.5.2 循环语句 28
2.6 函数 30
2.6.1 内置函数 30
2.6.2 自定义函数 33
第3章 数据预处理 35
3.1 数据表的基本操作 35
3.1.1 数据表保存 35
3.1.2 数据表读取 37
3.1.3 选取子集 40
3.1.4 连接数据库 42
3.2 数据分组、分割、合并和变形 44
3.2.1 数据分组 44
3.2.2 数据分割 46
3.2.3 数据合并 47
3.2.4 数据变形 49
3.3 缺失值、异常值、重复值处理 52
3.3.1 缺失值 52
3.3.2 异常值 59
3.3.3 重复值 61
3.4 数据类型的转换 62
3.4.1 判断数据类型函数 62
3.4.2 转换数据类型的函数 63
3.5 提取字符 64
3.5.1 截取字符 64
3.5.2 正则表达式 65
第4章 探索性数据分析 69
4.1 描述性统计方法 69
4.1.1 常用统计指标 69
4.1.2 数据总结 70
4.2 数据可视化 72
4.2.1 箱线图 72
4.2.2 直方图 74
4.2.3 散点图 75
4.2.4 饼图 77
第5章 数据采集 80
5.1 网络数据采集的原理 80
5.1.1 网页通信的过程 80
5.1.2 请求数据的方法 87
5.1.3 网页的组成元素 88
5.2 数据采集入门 90
5.2.1 数据采集常用包概述 90
5.2.2 数据采集前的准备 91
5.2.3 编写第一个数据采集 92
5.3 使用常用的R包采集数据 96
5.3.1 使用RCurl包获取网络数据 96
5.3.2 使用rvest包获取网络数据 98
5.3.3 使用httr包获取网络数据 106
5.4 爬虫限制处理 107
5.4.1 解决IP限制问题 108
5.4.2 验证码处理 109
5.4.3 登录问题处理 110
第6章 时间序列算法 111
6.1 时间序列算法概述 111
6.1.1 时序对象 113
6.1.2 时序平滑处理 113
6.1.3 时序季节性分解 116
6.2 时序指数模型 118
6.3 时序ARIMA模型 122
第7章 线性回归算法 129
7.1 一元线性回归模型 129
7.2 多项式回归模型 131
7.3 多元线性回归模型 133
第8章 分类算法 136
8.1 Logistic回归 136
8.1.1 Logistic回归算法原理 137
8.1.2 逻辑回归算法应用 139
8.2 决策树 143
8.2.1 决策树算法原理 143
8.2.2 决策树算法应用 147
8.3 支持向量机 150
8.3.1 支持向量机算法原理 151
8.3.2 支持向量机算法应用 155
8.4 朴素贝叶斯 157
8.4.1 贝叶斯定理 157
8.4.2 最大似然估计 157
8.4.3 朴素贝叶斯分类算法原理 158
8.4.4 朴素贝叶斯分类算法应用 159
8.5 人工神经网络 166
8.5.1 人工神经网络的基本概念 166
8.5.2 感知器和人工神经元模型 167
8.5.3 前馈神经网络 168
8.5.4 人工神经网络算法应用 169
8.6 随机森林 177
8.6.1 随机森林算法原理 177
8.6.2 随机森林算法应用 178
8.7 XGBoost算法 183
8.7.1 XGBoost算法的原理 184
8.7.2 XGBoost算法应用 187
第9章 关联算法 189
9.1 关联算法概述 189
9.1.1 相关名词 190
9.1.2 关联规则及频繁项集的产生 190
9.2 Apriori算法 191
9.2.1 Apriori算法概述 191
9.2.2 先验原理 191
9.2.3 连接步和剪枝步 192
9.2.4 Apriori算法流程 193
9.2.5 Apriori算法实例 193
9.3 ECLAT算法 196
9.3.1 ECLAT算法概述 196
9.3.2 ECLAT算法流程 198
9.3.3 ECLAT算法实例 198
第10章 聚类算法 202
10.1 聚类算法概述 202
10.1.1 聚类算法的类型 202
10.1.2 聚类算法评估的特点 202
10.2 K均值聚类算法 203
10.2.1 划分方法概述 203
10.2.2 K均值聚类算法的优缺点 203
10.2.3 K均值聚类算法的流程 203
10.2.4 K均值聚类分析案例 204
10.3 凝聚式层次聚类算法 205
10.3.1 凝聚式层次聚类概述 205
10.3.2 凝聚式层次聚类算法流程 207
10.3.3 凝聚式层次聚类算法实例 209
【应用案例1】景点舆情数据采集 211
【应用案例2】旅游电商平台数据采集 218
【应用案例3】旅游网站景点路线推荐 233
【应用案例4】旅游城市和景点的负荷预测 236
【应用案例5】精品旅行服务成单预测 239
【应用案例6】航班延误预测 259