描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121342448
产品特色
编辑推荐
√ 以问题为导向,使读者在解决问题的过程中学习数据挖掘、机器学习等数据科学相关方法
√ 从数据模型的角度进行讲解,帮助初学者快速掌握模型原理与实务操作
√ 提供配套案例源码、教学PPT及扩展典型案例下载
√ 从数据模型的角度进行讲解,帮助初学者快速掌握模型原理与实务操作
√ 提供配套案例源码、教学PPT及扩展典型案例下载
内容简介
本书是一本数据科学的入门书籍。每个知识点尽量从实际的应用案例出发,从数据出发,以问题为导向,在解决问题中学习数据挖掘、机器学习等数据科学相关方法。本书将数据读写、数据清洗和预处理作为开端,逐渐深入到和数据科学相关的决策树、支持向量机、神经网络、无监督学习等知识。此外,结合数据科学的实际应用,书中还讲解了推荐算法、文本挖掘和社交网络分析等热门实用技术。本书在写作过程中尽量删去太过抽样的理论,让具有一定高等数学和概率论基础的读者就能看得懂。当然,如果读者对方法原理确实不感兴趣,只是为了用R程序实现某种方法,可以跳过方法只看案例和程序。本书适合作为高校数据科学、机器学习、数据挖掘、大数据分析等相关专业的研究生和高年级本科的教科书,也适合作为相关企业的数据科学家、数据挖掘工程师、数据分析师及数据科学的爱好者等的工具书。
目 录
第1章 导论 1
1.1 数据科学的发展历史 1
1.2 数据科学研究的主要问题 3
1.3 数据科学的主要方法 5
1.4 R语言的优势 7
第2章 数据读/写 9
2.1 数据的读入 9
2.1.1 直接输入数据 9
2.1.2 读入R包中的数据 10
2.1.3 从外部文件读入数据 10
2.1.4 批量读入数据 15
2.1.5 R语言读取文件的几个常错的问题 15
2.2 写出数据 17
2.3 习题 18
第3章 数据清洗与预处理 19
3.1 数据分类 19
3.2 数据清洗 20
3.2.1 处理缺失数据 20
3.2.2 处理噪声数据 23
3.3 数据变换 23
3.4 R语言实现 25
3.4.1 数据集的基本操作 25
3.4.2 数据集间的操作 28
3.4.3 连接数据库数据 29
3.5 习题 30
第4章 数据可视化 31
4.1 高阶绘图工具——ggplot2 31
4.1.1 快速绘图 32
4.1.2 使用图层构建图像 34
4.1.3 分面 37
4.2 ECharts2 39
4.2.1 安装 39
4.2.2 使用 40
4.3 习题 48
第5章 线性回归 49
5.1 问题的提出 49
5.2 一元线性回归 50
5.2.1 一元线性回归概述 50
5.2.2 一元线性回归的参数估计 52
5.2.3 一元线性回归模型的检验 55
5.2.4 一元线性回归的预测 56
5.3 多元线性回归分析 57
5.3.1 多元线性回归模型及假定 58
5.3.2 参数估计 59
5.3.3 模型检验 60
5.3.4 预测 61
5.4 R语言实现 63
5.4.1 一元线性回归 63
5.4.2 多元线性回归 66
5.5 习题 67
第6章 线性分类 69
6.1 问题的提出 69
6.2 Logistic模型 70
6.2.1 线性概率模型 70
6.2.2 Probit模型 71
6.2.3 Logit模型原理 72
6.2.4 边际效应分析 73
6.2.5 似然估计(MLE) 73
6.2.6 似然比检验 74
6.3 判别分析 74
6.3.1 Na?ve Bayes判别分析 75
6.3.2 线性判别分析 76
6.3.3 二次判别分析 78
6.4 分类问题评价准则 78
6.5 R语言实现 80
6.5.1 描述统计 80
6.5.2 Logistic模型 81
6.5.3 判别分析 87
6.5.4 模型比较 90
6.6 习题 92
第7章 重抽样 94
7.1 问题的提出 94
7.2 基本概念 94
7.2.1 训练误差和测试误差 95
7.2.2 偏差和方差 95
7.3 交叉验证法 96
7.3.1 验证集方法 97
7.3.2 留一交叉验证法 97
7.3.3 K折交叉验证法 98
7.4 自助法 99
7.5 R语言实现 100
7.5.1 验证集方法 100
7.5.2 留一交叉验证法 102
7.5.3 K折交叉验证法 102
7.5.4 自助法 103
7.6 习题 104
第8章 模型选择与正则化 105
8.1 问题的提出 105
8.2 子集选择法 106
8.2.1 子集法 106
8.2.2 逐步选择法 106
8.2.3 模型选择 108
8.3 基于压缩估计的逐个变量选择 109
8.3.1 LASSO惩罚 110
8.3.2 SCAD惩罚 111
8.3.3 MCP惩罚 112
8.3.4 调整参数选择 113
8.4 基于压缩估计的组变量选择 113
8.4.1 自然分组结构 113
8.4.2 人为分组结构 114
8.5 基于压缩估计的双层变量选择 115
8.5.1 复合函数型双层选择 115
8.5.2 稀疏组惩罚型双层选择 116
8.6 R语言实现 117
8.6.1 子集选择法 117
8.6.2 模型选择 120
8.6.3 组模型选择 122
8.6.4 双层模型选择 126
8.7 习题 128
第9章 决策树与组合学习 129
9.1 问题的提出 129
9.2 决策树 130
9.2.1 基本概念 130
9.2.2 分类树 133
9.2.3 回归树 135
9.2.4 树的优缺点 137
9.3 Bagging 137
9.3.1 基本算法 137
9.3.2 袋外误差估计 138
9.3.3 变量重要性的度量 139
9.4 随机森林 140
9.5 提升法 142
9.5.1 Adaboost算法 142
9.5.2 GBDT算法 143
9.5.3 XGBoost算法 143
9.6 R语言实现 144
9.6.1 数据介绍 144
9.6.2 描述性统计 145
9.6.3 分类树 145
9.6.4 Bagging 148
9.6.5 随机森林 149
9.6.6 Boosting 150
9.7 习题 155
第10章 支持向量机 156
10.1 问题的提出 156
10.2 间隔分类器 157
10.2.1 使用分割超平面分类 157
10.2.2 构建间隔分类器 159
10.2.3 线性不可分的情况 160
10.3 支持向量分类器 161
10.3.1 使用软间隔分类 161
10.3.2 构建支持向量分类器 161
10.4 支持向量机 163
10.4.1 使用非线性决策边界分类 163
10.4.2 构建支持向量机 165
10.5 与Logistic回归的关系 166
10.6 支持向量回归 167
10.7 R语言实现 168
10.7.1 支持向量分类器 168
10.7.2 支持向量机 173
10.7.3 Auto数据集 175
10.8 习题 178
第11章 神经网络 180
11.1 问题的提出 181
11.2 神经网络的基本概念 181
11.2.1 神经网络的基本单元——神经元 181
11.2.2 神经网络的结构 185
11.2.3 神经网络的学习 186
11.3 神经网络模型 188
11.3.1 单神经元感知器 188
11.3.2 单层感知器 189
11.3.3 BP神经网络 190
11.3.4 Rprop神经网络 193
11.4 R语言实现 195
11.4.1 nnet程序包 195
11.4.2 neuralnet程序包 197
11.4.3 应用案例1:利用nnet程序包分析纸币鉴别数据 198
11.4.4 应用案例2:利用neuralnet程序包分析白葡萄酒的品质 200
11.5 习题 203
第12章 无监督学习 205
12.1 问题的提出 205
12.2 聚类分析 207
12.2.1 相异度 207
12.2.2 K-means聚类 209
12.2.3 系统聚类法 211
12.3 主成分分析 214
12.3.1 主成分分析的几何意义 214
12.3.2 主成分的数学推导 215
12.3.3 主成分回归 217
12.3.4 主成分分析的其他方面 217
12.4 因子分析 219
12.4.1 因子分析的数学模型 219
12.4.2 因子载荷阵的统计意义 220
12.4.3 因子分析的其他方面 221
12.5 典型相关分析 223
12.5.1 典型相关分析原理 223
12.5.2 典型相关系数的显著性检验 226
12.5.3 典型相关分析的步骤 227
12.6 R语言实现 228
12.6.1 聚类分析:移动通信用户细分 228
12.6.2 主成分分析:农村居民消费水平评价 233
12.6.3 因子分析:市场调查 236
12.6.4 典型相关分析:职业满意度与职业特性的关系 239
12.7 习题 242
第13章 推荐算法 243
13.1 关联规则 243
13.1.1 基本概念 244
13.1.2 基本分类 246
13.1.3 基本方法 247
13.2 协同过滤算法 249
13.2.1 基于邻居的协同过滤算法 249
13.2.2 基于模型的协同过滤算法 253
13.3 R语言实现 254
13.3.1 关联规则 254
13.3.2 协同过滤算法 259
13.4 习题 262
第14章 文本挖掘 264
14.1 问题的提出 264
14.2 文本挖掘基本流程 265
14.2.1 文本数据获取 265
14.2.2 文本特征表示 265
14.2.3 文本的特征选择 268
14.2.4 信息挖掘与主题模型 269
14.3 R语言实现 270
14.3.1 JSS_papers数据集 270
14.3.2 拓展案例:房地产网络舆情分析 275
14.4 习题 278
第15章 社交网络分析 279
15.1 问题的提出 279
15.2 网络的基本概念 280
15.3 网络特征的描述性分析 281
15.3.1 节点度 281
15.3.2 节点中心性 282
15.3.3 网络的凝聚性特征 283
15.3.4 分割 284
15.4 网络图的统计模型 285
15.4.1 经典随机图模型 285
15.4.2 广义随机图模型 286
15.4.3 指数随机图模型 287
15.4.4 网络块模型 287
15.5 关联网络推断 288
15.5.1 相关网络 288
15.5.2 偏相关网络 289
15.5.3 高斯图模型网络 290
15.5.4 Graphic Lasso模型 291
15.6 二值型网络模型 294
15.7 R语言实现 295
15.7.1 网络的基本操作 295
15.7.2 “豆瓣关注网络”和“豆瓣朋友网络”特征分析 298
15.7.3 关联网络推断 303
15.8 习题 308
第16章 并行计算 309
16.1 提高R语言的计算速度 309
16.2 R语言的并行计算 310
16.3 HPC多线程并行计算 316
参考文献 321
1.1 数据科学的发展历史 1
1.2 数据科学研究的主要问题 3
1.3 数据科学的主要方法 5
1.4 R语言的优势 7
第2章 数据读/写 9
2.1 数据的读入 9
2.1.1 直接输入数据 9
2.1.2 读入R包中的数据 10
2.1.3 从外部文件读入数据 10
2.1.4 批量读入数据 15
2.1.5 R语言读取文件的几个常错的问题 15
2.2 写出数据 17
2.3 习题 18
第3章 数据清洗与预处理 19
3.1 数据分类 19
3.2 数据清洗 20
3.2.1 处理缺失数据 20
3.2.2 处理噪声数据 23
3.3 数据变换 23
3.4 R语言实现 25
3.4.1 数据集的基本操作 25
3.4.2 数据集间的操作 28
3.4.3 连接数据库数据 29
3.5 习题 30
第4章 数据可视化 31
4.1 高阶绘图工具——ggplot2 31
4.1.1 快速绘图 32
4.1.2 使用图层构建图像 34
4.1.3 分面 37
4.2 ECharts2 39
4.2.1 安装 39
4.2.2 使用 40
4.3 习题 48
第5章 线性回归 49
5.1 问题的提出 49
5.2 一元线性回归 50
5.2.1 一元线性回归概述 50
5.2.2 一元线性回归的参数估计 52
5.2.3 一元线性回归模型的检验 55
5.2.4 一元线性回归的预测 56
5.3 多元线性回归分析 57
5.3.1 多元线性回归模型及假定 58
5.3.2 参数估计 59
5.3.3 模型检验 60
5.3.4 预测 61
5.4 R语言实现 63
5.4.1 一元线性回归 63
5.4.2 多元线性回归 66
5.5 习题 67
第6章 线性分类 69
6.1 问题的提出 69
6.2 Logistic模型 70
6.2.1 线性概率模型 70
6.2.2 Probit模型 71
6.2.3 Logit模型原理 72
6.2.4 边际效应分析 73
6.2.5 似然估计(MLE) 73
6.2.6 似然比检验 74
6.3 判别分析 74
6.3.1 Na?ve Bayes判别分析 75
6.3.2 线性判别分析 76
6.3.3 二次判别分析 78
6.4 分类问题评价准则 78
6.5 R语言实现 80
6.5.1 描述统计 80
6.5.2 Logistic模型 81
6.5.3 判别分析 87
6.5.4 模型比较 90
6.6 习题 92
第7章 重抽样 94
7.1 问题的提出 94
7.2 基本概念 94
7.2.1 训练误差和测试误差 95
7.2.2 偏差和方差 95
7.3 交叉验证法 96
7.3.1 验证集方法 97
7.3.2 留一交叉验证法 97
7.3.3 K折交叉验证法 98
7.4 自助法 99
7.5 R语言实现 100
7.5.1 验证集方法 100
7.5.2 留一交叉验证法 102
7.5.3 K折交叉验证法 102
7.5.4 自助法 103
7.6 习题 104
第8章 模型选择与正则化 105
8.1 问题的提出 105
8.2 子集选择法 106
8.2.1 子集法 106
8.2.2 逐步选择法 106
8.2.3 模型选择 108
8.3 基于压缩估计的逐个变量选择 109
8.3.1 LASSO惩罚 110
8.3.2 SCAD惩罚 111
8.3.3 MCP惩罚 112
8.3.4 调整参数选择 113
8.4 基于压缩估计的组变量选择 113
8.4.1 自然分组结构 113
8.4.2 人为分组结构 114
8.5 基于压缩估计的双层变量选择 115
8.5.1 复合函数型双层选择 115
8.5.2 稀疏组惩罚型双层选择 116
8.6 R语言实现 117
8.6.1 子集选择法 117
8.6.2 模型选择 120
8.6.3 组模型选择 122
8.6.4 双层模型选择 126
8.7 习题 128
第9章 决策树与组合学习 129
9.1 问题的提出 129
9.2 决策树 130
9.2.1 基本概念 130
9.2.2 分类树 133
9.2.3 回归树 135
9.2.4 树的优缺点 137
9.3 Bagging 137
9.3.1 基本算法 137
9.3.2 袋外误差估计 138
9.3.3 变量重要性的度量 139
9.4 随机森林 140
9.5 提升法 142
9.5.1 Adaboost算法 142
9.5.2 GBDT算法 143
9.5.3 XGBoost算法 143
9.6 R语言实现 144
9.6.1 数据介绍 144
9.6.2 描述性统计 145
9.6.3 分类树 145
9.6.4 Bagging 148
9.6.5 随机森林 149
9.6.6 Boosting 150
9.7 习题 155
第10章 支持向量机 156
10.1 问题的提出 156
10.2 间隔分类器 157
10.2.1 使用分割超平面分类 157
10.2.2 构建间隔分类器 159
10.2.3 线性不可分的情况 160
10.3 支持向量分类器 161
10.3.1 使用软间隔分类 161
10.3.2 构建支持向量分类器 161
10.4 支持向量机 163
10.4.1 使用非线性决策边界分类 163
10.4.2 构建支持向量机 165
10.5 与Logistic回归的关系 166
10.6 支持向量回归 167
10.7 R语言实现 168
10.7.1 支持向量分类器 168
10.7.2 支持向量机 173
10.7.3 Auto数据集 175
10.8 习题 178
第11章 神经网络 180
11.1 问题的提出 181
11.2 神经网络的基本概念 181
11.2.1 神经网络的基本单元——神经元 181
11.2.2 神经网络的结构 185
11.2.3 神经网络的学习 186
11.3 神经网络模型 188
11.3.1 单神经元感知器 188
11.3.2 单层感知器 189
11.3.3 BP神经网络 190
11.3.4 Rprop神经网络 193
11.4 R语言实现 195
11.4.1 nnet程序包 195
11.4.2 neuralnet程序包 197
11.4.3 应用案例1:利用nnet程序包分析纸币鉴别数据 198
11.4.4 应用案例2:利用neuralnet程序包分析白葡萄酒的品质 200
11.5 习题 203
第12章 无监督学习 205
12.1 问题的提出 205
12.2 聚类分析 207
12.2.1 相异度 207
12.2.2 K-means聚类 209
12.2.3 系统聚类法 211
12.3 主成分分析 214
12.3.1 主成分分析的几何意义 214
12.3.2 主成分的数学推导 215
12.3.3 主成分回归 217
12.3.4 主成分分析的其他方面 217
12.4 因子分析 219
12.4.1 因子分析的数学模型 219
12.4.2 因子载荷阵的统计意义 220
12.4.3 因子分析的其他方面 221
12.5 典型相关分析 223
12.5.1 典型相关分析原理 223
12.5.2 典型相关系数的显著性检验 226
12.5.3 典型相关分析的步骤 227
12.6 R语言实现 228
12.6.1 聚类分析:移动通信用户细分 228
12.6.2 主成分分析:农村居民消费水平评价 233
12.6.3 因子分析:市场调查 236
12.6.4 典型相关分析:职业满意度与职业特性的关系 239
12.7 习题 242
第13章 推荐算法 243
13.1 关联规则 243
13.1.1 基本概念 244
13.1.2 基本分类 246
13.1.3 基本方法 247
13.2 协同过滤算法 249
13.2.1 基于邻居的协同过滤算法 249
13.2.2 基于模型的协同过滤算法 253
13.3 R语言实现 254
13.3.1 关联规则 254
13.3.2 协同过滤算法 259
13.4 习题 262
第14章 文本挖掘 264
14.1 问题的提出 264
14.2 文本挖掘基本流程 265
14.2.1 文本数据获取 265
14.2.2 文本特征表示 265
14.2.3 文本的特征选择 268
14.2.4 信息挖掘与主题模型 269
14.3 R语言实现 270
14.3.1 JSS_papers数据集 270
14.3.2 拓展案例:房地产网络舆情分析 275
14.4 习题 278
第15章 社交网络分析 279
15.1 问题的提出 279
15.2 网络的基本概念 280
15.3 网络特征的描述性分析 281
15.3.1 节点度 281
15.3.2 节点中心性 282
15.3.3 网络的凝聚性特征 283
15.3.4 分割 284
15.4 网络图的统计模型 285
15.4.1 经典随机图模型 285
15.4.2 广义随机图模型 286
15.4.3 指数随机图模型 287
15.4.4 网络块模型 287
15.5 关联网络推断 288
15.5.1 相关网络 288
15.5.2 偏相关网络 289
15.5.3 高斯图模型网络 290
15.5.4 Graphic Lasso模型 291
15.6 二值型网络模型 294
15.7 R语言实现 295
15.7.1 网络的基本操作 295
15.7.2 “豆瓣关注网络”和“豆瓣朋友网络”特征分析 298
15.7.3 关联网络推断 303
15.8 习题 308
第16章 并行计算 309
16.1 提高R语言的计算速度 309
16.2 R语言的并行计算 310
16.3 HPC多线程并行计算 316
参考文献 321
前 言
前 言
数据科学(Data Science)是一门交叉学科,是一门分析和挖掘数据并从中提取规律和利用数据学习知识的学科,包含了统计、机器学习、数据可视化、高性能计算等。近几年,大数据的发展如火如荼,与此同时,“数据科学家”这个词也跟着火起来,成为职场中的香饽饽。正如谷歌首席经济学家哈尔瓦里恩(Hal Varian)于2009年在纽约时报撰文所说,“未来十年性感的工作将是统计学家”,这里的统计学家是广义的统计学家,包括数据科学家。数据科学家职业被招聘网站Glassdoor在2016年评选为美国工作。德勤(Deloitte)公司预测2018年全球企业将至少需要100万名数据科学家,大学培养的数据科学家数量远远不能满足市场需求,按照目前数据科学家的培养数量来看,这个缺口是很大的。我国真正的数据科学家人才是比较短缺的。数据科学家需要有较好的统计学、机器学习功底,能够理解模型背后的原理和算法,具备熟练的编程能力并熟悉业务知识。
数据科学主要由两拨人在做:一拨人在计算机圈子里,主要关注处理海量数据的能力、速度和算法;另一拨人在统计圈子里,更多地关注模型本身的精度和可解释性。市面上有各种各样讲解大数据、数据科学的书籍,但多数是讲解一些理念,或者只讲解一些抽象原理和算法,很少从数据到模型的角度去讲解,缺少真正能够将数据科学与实务操作结合起来的书籍。我觉得自己有责任写一本关于数据科学方面的教材,来帮助数据科学的初学者更快地掌握模型原理和实务操作。
我每年都在厦门大学开设数据挖掘的课程,在课程资料的基础上慢慢整理出本书稿,总体框架借鉴斯坦福大学统计系几位学者出版的两本经典统计学教材,即Jamnes、Witten、Hastie和Tibshirani写的An Introduction to Statistical Learning和Hastie、Tibshirani和Friedman写的The Elements of Statistical Learning。后来,我受邀在北京、上海等地开设暑期数据挖掘现场公开课,前来听课的学生有国外著名高校的教师、研究生,国内高校的教师、研究生,医药、金融等公司的数据分析人员、数据挖掘分析师等。他们对我的讲义提出了很多有用的建议,经过不断地完善,终形成了此书。
通过在很多地方上公开课,并与很多不同领域的学者交流,我深刻地体会到统计或数据挖掘方法的应用范围越来越广,借用马克思的话,“一种科学只有在成功地运用数学时,才算达到了真正完善的地步”,也可以说“一个学科使用、分析数据的程度可以反映出这个学科的发展程度”。
本书是一本数据科学的入门教材,内容循序渐进、深入浅出,每个知识点都根据实际的应用案例从数据出发,以问题为导向,使读者在解决问题的过程中学习数据挖掘、机器学习等数据科学相关方法。本书既可作为高校数据科学、机器学习、数据挖掘、大数据分析等相关专业的研究生和高年级本科的教科书,也可作为相关企业的数据科学家、数据挖掘工程师、数据分析师及数据科学爱好者等的工具书。本书为读者提供方法和程序上的参考,在写作过程中尽量删除过于抽象的理论原理,让具有一定高等数学和概率论基础的读者都能看得懂。当然,如果读者对方法原理确实不感兴趣,只是为了用R语言程序实现某种方法,或者分析某些有意义的数据,则可以跳过方法,只看案例和程序。
我的博士和硕士研究生陈子岚、王小燕、赵梦峦、范新妍、张晓晨、林颖、赵雪、张喆参与了资料收集、案例编写等工作,陈子岚参与了全书的校对、修改、排版等工作,在此一并感谢!感谢成都道然科技有限责任公司的专业意见和建议。再次感谢为本书提供直接或者间接帮助的各位朋友,没有他们的帮助,本书的出版没有这么顺利。
为了方便读者使用,我的团队为本书开发了一个R语言包RDS。RDS包和本书案例相应的代码可以从网址http://www.kuangnanfang.com/?id=7或https://github.com/ruiqwy 下载。另外,由于篇幅限制,团队制作的一些经典案例无法在本书中展示,在以上网址也提供了部分经典案例。
在本书编写过程中,我深刻地体会到写书是一件“苦差事”,仔细较真,总能发现有很多值得完善的地方,这也是本书拖了3年才得以出版的原因。我希望此书尽可能以“完美”的形象与读者见面,但由于本人水平和精力有限,书中难免有错误或不足之处,恳请广大读者批评指正!
数据科学(Data Science)是一门交叉学科,是一门分析和挖掘数据并从中提取规律和利用数据学习知识的学科,包含了统计、机器学习、数据可视化、高性能计算等。近几年,大数据的发展如火如荼,与此同时,“数据科学家”这个词也跟着火起来,成为职场中的香饽饽。正如谷歌首席经济学家哈尔瓦里恩(Hal Varian)于2009年在纽约时报撰文所说,“未来十年性感的工作将是统计学家”,这里的统计学家是广义的统计学家,包括数据科学家。数据科学家职业被招聘网站Glassdoor在2016年评选为美国工作。德勤(Deloitte)公司预测2018年全球企业将至少需要100万名数据科学家,大学培养的数据科学家数量远远不能满足市场需求,按照目前数据科学家的培养数量来看,这个缺口是很大的。我国真正的数据科学家人才是比较短缺的。数据科学家需要有较好的统计学、机器学习功底,能够理解模型背后的原理和算法,具备熟练的编程能力并熟悉业务知识。
数据科学主要由两拨人在做:一拨人在计算机圈子里,主要关注处理海量数据的能力、速度和算法;另一拨人在统计圈子里,更多地关注模型本身的精度和可解释性。市面上有各种各样讲解大数据、数据科学的书籍,但多数是讲解一些理念,或者只讲解一些抽象原理和算法,很少从数据到模型的角度去讲解,缺少真正能够将数据科学与实务操作结合起来的书籍。我觉得自己有责任写一本关于数据科学方面的教材,来帮助数据科学的初学者更快地掌握模型原理和实务操作。
我每年都在厦门大学开设数据挖掘的课程,在课程资料的基础上慢慢整理出本书稿,总体框架借鉴斯坦福大学统计系几位学者出版的两本经典统计学教材,即Jamnes、Witten、Hastie和Tibshirani写的An Introduction to Statistical Learning和Hastie、Tibshirani和Friedman写的The Elements of Statistical Learning。后来,我受邀在北京、上海等地开设暑期数据挖掘现场公开课,前来听课的学生有国外著名高校的教师、研究生,国内高校的教师、研究生,医药、金融等公司的数据分析人员、数据挖掘分析师等。他们对我的讲义提出了很多有用的建议,经过不断地完善,终形成了此书。
通过在很多地方上公开课,并与很多不同领域的学者交流,我深刻地体会到统计或数据挖掘方法的应用范围越来越广,借用马克思的话,“一种科学只有在成功地运用数学时,才算达到了真正完善的地步”,也可以说“一个学科使用、分析数据的程度可以反映出这个学科的发展程度”。
本书是一本数据科学的入门教材,内容循序渐进、深入浅出,每个知识点都根据实际的应用案例从数据出发,以问题为导向,使读者在解决问题的过程中学习数据挖掘、机器学习等数据科学相关方法。本书既可作为高校数据科学、机器学习、数据挖掘、大数据分析等相关专业的研究生和高年级本科的教科书,也可作为相关企业的数据科学家、数据挖掘工程师、数据分析师及数据科学爱好者等的工具书。本书为读者提供方法和程序上的参考,在写作过程中尽量删除过于抽象的理论原理,让具有一定高等数学和概率论基础的读者都能看得懂。当然,如果读者对方法原理确实不感兴趣,只是为了用R语言程序实现某种方法,或者分析某些有意义的数据,则可以跳过方法,只看案例和程序。
我的博士和硕士研究生陈子岚、王小燕、赵梦峦、范新妍、张晓晨、林颖、赵雪、张喆参与了资料收集、案例编写等工作,陈子岚参与了全书的校对、修改、排版等工作,在此一并感谢!感谢成都道然科技有限责任公司的专业意见和建议。再次感谢为本书提供直接或者间接帮助的各位朋友,没有他们的帮助,本书的出版没有这么顺利。
为了方便读者使用,我的团队为本书开发了一个R语言包RDS。RDS包和本书案例相应的代码可以从网址http://www.kuangnanfang.com/?id=7或https://github.com/ruiqwy 下载。另外,由于篇幅限制,团队制作的一些经典案例无法在本书中展示,在以上网址也提供了部分经典案例。
在本书编写过程中,我深刻地体会到写书是一件“苦差事”,仔细较真,总能发现有很多值得完善的地方,这也是本书拖了3年才得以出版的原因。我希望此书尽可能以“完美”的形象与读者见面,但由于本人水平和精力有限,书中难免有错误或不足之处,恳请广大读者批评指正!
方匡南
2018年3月于厦门大学
评论
还没有评论。