简介
本书带领读者身临其境地体验数据科学领域的日常工作,书中的12章即为12个鲜活的实践案例,包括航班延误数据分析、股票配对交易仿真以及二十一点纸牌游戏策略开发等,涵盖统计学、数据库、机器学习和可视化技术等众多知识点。本书的重点是计算推理和问题求解的思维过程,而不涉及具体编程语言的语法细节。本书适合作为统计计算、数据挖掘等相关课程的补充案例教材,也适合该领域的技术人员阅读参考。
【目录】
目 录
译者序
前言
致谢
作者简介
第一部分 数据操作和建模
第1章 基于室内定位系统的位置预测2
1.1 引言2
1.2 原始数据3
1.3 数据清洗和建立用于分析的数据表示10
1.3.1 对于方向数据的探索12
1.3.2 对于MAC地址数据的探索13
1.3.3 对于手持设备位置数据的探索15
1.3.4 数据准备函数的创建17
1.4 信号强度的分析17
1.4.1 信号强度的分布18
1.4.2 信号与距离之间的关系22
1.5 预测位置的最近邻方法26
1.5.1 测试数据的准备26
1.5.2 方向的选择27
1.5.3 发现最近邻29
1.5.4 交叉验证和k的选择31
1.6 练习题34
参考文献36
第2章 樱花公路赛参赛选手比赛时间建模37
2.1 引言37
2.2 将比赛结果表读入R中39
2.3 数据清洗和变量格式化46
2.4 探索所有男选手的跑步时间53
2.4.1 根据大量观察绘制散点图53
2.4.2 对平均成绩构建拟合模型56
2.4.3 横截面数据和协变量63
2.5 为跨年度的个人参赛选手构造记录66
2.6 对个人跑步时间的变化进行建模74
2.7 从网上抓取比赛结果78
2.8 练习题84
参考文献86
第3章 应用统计学方法识别垃圾邮件87
3.1 引言87
3.2 邮件消息解析88
3.3 读取邮件消息91
3.4 文本挖掘和朴素贝叶斯分类94
3.5 在邮件消息中找到单词96
3.5.1 将消息划分成消息头部与消息正文96
3.5.2 从消息正文中移除附件97
3.5.3 从消息正文中抽取单词103
3.5.4 完成数据准备过程105
3.6 实现朴素贝叶斯分类器106
3.6.1 测试数据与训练数据107
3.6.2 训练数据的概率估计108
3.6.3 分类新消息110
3.6.4 计算方面的考虑114
3.7 递归划分与分类树115
3.8 将电子邮件消息组织成R语言数据结构117
3.8.1 处理邮件头部118
3.8.2 处理附件121
3.8.3 在更多的邮件数据上测试代码123
3.8.4 完成处理过程124
3.9 从邮件消息中获取变量126
3.10 探索邮件特征集合133
3.11 使用rpart()模型拟合邮件数据135
3.12 练习题139
参考文献142
第4章 处理机器人和传感器日志文件:寻找圆形目标143
4.1 描述143
4.2 数据144
4.2.1 读取一个完整的日志文件146
4.2.2 探索日志文件150
4.2.3 可视化路径154
4.2.4 探索 “观察”157
4.2.5 范围值的误差分布160
4.3 探测圆形目标162
4.3.1 连接机器人背后的片段166
4.3.2 确定一个片段是否对应于一个圆形168
4.4 实时流数据情况下探测目标180
参考文献182
第5章 针对12GB数据集的分析策略:航班延误案例183
5.1 引言183
5.2 获取航班数据集184
5.3 处理海量数据集:计算航班延误数184
5.3.1 R程序设计环境185
5.3.2 UNIX shell方法186
5.3.3 支持R的SQL数据库188
5.3.4 R的bigmemory程序包191
5.4 使用并行计算进行数据探索:航班延误的分布194
5.4.1 使用foreach编写可并行化的循环194
5.4.2 使用“划分-应用-合并”方法获得更好的性能196
5.4.3 使用“划分-应用-合并”方法发现航班飞行的最佳时间196
5.5 从探索分析到建模:旧飞机会带来较大的延误吗200
参考文献201
第二部分 仿真研究
第6章 股票的配对交易204
6.1 问题提出204
6.2 数据格式208
6.3 金融数据的读取209
6.4 时间序列的可视化211
6.5 查找开仓点和平仓点213
6.5.1 识别仓位213
6.5.2 显示仓位215
6.5.3 查找所有开/平仓216
6.5.4 计算一个仓位的收益218
6.5.5 找到k的最优值220
6.6 仿真研究223
6.6.1 股票价格序列仿真225
6.6.2 提升stockSim()函数的运行速度233
参考文献235
第7章 分支过程的仿真研究236
7.1 引言236
7.2 随机过程探索239
7.3 产生后代241
7.3.1 检查结果244
7.3.2 考虑其他的实现方式245
7.4 性能分析与代码改进245
7.5 从一个作业的后代到全部的后代247
7.6 单元测试248
7.7 函数返回值的结构249
7.8 家族树:分支过程仿真250
7.9 仿真复制254
7.10 练习题260
参考文献261
第8章 具有相变过程的自组织动态系统262
8.1 引言与动机262
8.2 模型263
8.3 实现BML模型265
8.3.1 创建初始网格结构266
8.3.2 测试网格创建函数269
8.3.3 显示网格273
8.3.4 可视化网格273
8.3.5 简单方便的面向对象程序设计276
8.3.6 移动汽车278
8.4 评估代码性能284
8.5 用C实现BML模型295
8.5.1 用C编写算法297
8.5.2 编译、加载和调用C代码303
8.6 运行仿真307
8.7 实验性编译311
参考文献312
第9章 模拟二十一点纸牌游戏313
9.1 引言313
9.2 二十一点游戏基础314
9.3 玩一手二十一点游戏317
9.4 游戏策略321
9.5 玩多手二十一点游戏326
9.6 一个更加精确的发牌器329
9.7 算牌333
9.8 合而为一335
9.9 练习题337
参考文献338
第三部分 数据和Web技术
第10章 棒球:探索关系数据库中的数据340
10.1 引言340
10.2 Sean Lahman数据库341
10.3 汇总球员工资得到球队工资总额343
10.4 合并工资总额数据与其他表中的信息348
10.4.1 在工资总额数据中增加球队名称348
10.4.2 在工资总额数据中增加世界大赛记录351
10.5 探索极端工资352
10.6 练习题354
参考文献355
第11章 CIA世界概况的混搭应用357
11.1 引言357
11.2 采集数据359
11.3 从不同数据源集成数据360
11.4 准备绘图数据361
11.5 使用Google Earth绘图366
11.6 从CIA的XML文件中抽取人口统计信息370
11.7 直接生成KML376
11.8 附加的计算任务381
11.8.1 创建绘图标识381
11.8.2 从字符串生成KML文件的效率381
11.8.3 从HTML文件中抽取纬度和经度383
11.9 练习题383
参考文献386
第12章 利用Web抓取和文本挖掘探索数据科学职位招聘信息388
12.1 引言与动机388
12.2 探索不同的Web网站390
12.3 初步/探索性抓取:Kaggle网站的职位招聘列表395
12.3.1 处理文本399
12.3.2 泛化到其他招聘启事中400
12.3.3 抓取Kaggle招聘启事列表403
12.4 抓取CyberCoders.com404
12.4.1 从一条招聘启事中提取技能列表407
12.4.2 在搜索结果中发现指向招聘启事的链接411
12.4.3 查找招聘启事搜索结果的下一页416
12.4.4 将这些函数集成在一起417
12.5 对任意网站可重用的通用框架418
12.6 抓取Career Builder网站421
12.7 抓取Monster.com网站422
12.8 分析结果:重要的技能424
12.9 Web抓取注意事项430
12.10 练习题431
参考文献431
目录
目 录
译者序
前言
致谢
作者简介
第一部分 数据操作和建模
第1章 基于室内定位系统的位置预测2
1.1 引言2
1.2 原始数据3
1.3 数据清洗和建立用于分析的数据表示10
1.3.1 对于方向数据的探索12
1.3.2 对于MAC地址数据的探索13
1.3.3 对于手持设备位置数据的探索15
1.3.4 数据准备函数的创建17
1.4 信号强度的分析17
1.4.1 信号强度的分布18
1.4.2 信号与距离之间的关系22
1.5 预测位置的最近邻方法26
1.5.1 测试数据的准备26
1.5.2 方向的选择27
1.5.3 发现最近邻29
1.5.4 交叉验证和k的选择31
1.6 练习题34
参考文献36
第2章 樱花公路赛参赛选手比赛时间建模37
2.1 引言37
2.2 将比赛结果表读入R中39
2.3 数据清洗和变量格式化46
2.4 探索所有男选手的跑步时间53
2.4.1 根据大量观察绘制散点图53
2.4.2 对平均成绩构建拟合模型56
2.4.3 横截面数据和协变量63
2.5 为跨年度的个人参赛选手构造记录66
2.6 对个人跑步时间的变化进行建模74
2.7 从网上抓取比赛结果78
2.8 练习题84
参考文献86
第3章 应用统计学方法识别垃圾邮件87
3.1 引言87
3.2 邮件消息解析88
3.3 读取邮件消息91
3.4 文本挖掘和朴素贝叶斯分类94
3.5 在邮件消息中找到单词96
3.5.1 将消息划分成消息头部与消息正文96
3.5.2 从消息正文中移除附件97
3.5.3 从消息正文中抽取单词103
3.5.4 完成数据准备过程105
3.6 实现朴素贝叶斯分类器106
3.6.1 测试数据与训练数据107
3.6.2 训练数据的概率估计108
3.6.3 分类新消息110
3.6.4 计算方面的考虑114
3.7 递归划分与分类树115
3.8 将电子邮件消息组织成R语言数据结构117
3.8.1 处理邮件头部118
3.8.2 处理附件121
3.8.3 在更多的邮件数据上测试代码123
3.8.4 完成处理过程124
3.9 从邮件消息中获取变量126
3.10 探索邮件特征集合133
3.11 使用rpart()模型拟合邮件数据135
3.12 练习题139
参考文献142
第4章 处理机器人和传感器日志文件:寻找圆形目标143
4.1 描述143
4.2 数据144
4.2.1 读取一个完整的日志文件146
4.2.2 探索日志文件150
4.2.3 可视化路径154
4.2.4 探索 “观察”157
4.2.5 范围值的误差分布160
4.3 探测圆形目标162
4.3.1 连接机器人背后的片段166
4.3.2 确定一个片段是否对应于一个圆形168
4.4 实时流数据情况下探测目标180
参考文献182
第5章 针对12GB数据集的分析策略:航班延误案例183
5.1 引言183
5.2 获取航班数据集184
5.3 处理海量数据集:计算航班延误数184
5.3.1 R程序设计环境185
5.3.2 UNIX shell方法186
5.3.3 支持R的SQL数据库188
5.3.4 R的bigmemory程序包191
5.4 使用并行计算进行数据探索:航班延误的分布194
5.4.1 使用foreach编写可并行化的循环194
5.4.2 使用“划分-应用-合并”方法获得更好的性能196
5.4.3 使用“划分-应用-合并”方法发现航班飞行的最佳时间196
5.5 从探索分析到建模:旧飞机会带来较大的延误吗200
参考文献201
第二部分 仿真研究
第6章 股票的配对交易204
6.1 问题提出204
6.2 数据格式208
6.3 金融数据的读取209
6.4 时间序列的可视化211
6.5 查找开仓点和平仓点213
6.5.1 识别仓位213
6.5.2 显示仓位215
6.5.3 查找所有开/平仓216
6.5.4 计算一个仓位的收益218
6.5.5 找到k的最优值220
6.6 仿真研究223
6.6.1 股票价格序列仿真225
6.6.2 提升stockSim()函数的运行速度233
参考文献235
第7章 分支过程的仿真研究236
7.1 引言236
7.2 随机过程探索239
7.3 产生后代241
7.3.1 检查结果244
7.3.2 考虑其他的实现方式245
7.4 性能分析与代码改进245
7.5 从一个作业的后代到全部的后代247
7.6 单元测试248
7.7 函数返回值的结构249
7.8 家族树:分支过程仿真250
7.9 仿真复制254
7.10 练习题260
参考文献261
第8章 具有相变过程的自组织动态系统262
8.1 引言与动机262
8.2 模型263
8.3 实现BML模型265
8.3.1 创建初始网格结构266
8.3.2 测试网格创建函数269
8.3.3 显示网格273
8.3.4 可视化网格273
8.3.5 简单方便的面向对象程序设计276
8.3.6 移动汽车278
8.4 评估代码性能284
8.5 用C实现BML模型295
8.5.1 用C编写算法297
8.5.2 编译、加载和调用C代码303
8.6 运行仿真307
8.7 实验性编译311
参考文献312
第9章 模拟二十一点纸牌游戏313
9.1 引言313
9.2 二十一点游戏基础314
9.3 玩一手二十一点游戏317
9.4 游戏策略321
9.5 玩多手二十一点游戏326
9.6 一个更加精确的发牌器329
9.7 算牌333
9.8 合而为一335
9.9 练习题337
参考文献338
第三部分 数据和Web技术
第10章 棒球:探索关系数据库中的数据340
10.1 引言340
10.2 Sean Lahman数据库341
10.3 汇总球员工资得到球队工资总额343
10.4 合并工资总额数据与其他表中的信息348
10.4.1 在工资总额数据中增加球队名称348
10.4.2 在工资总额数据中增加世界大赛记录351
10.5 探索极端工资352
10.6 练习题354
参考文献355
第11章 CIA世界概况的混搭应用357
11.1 引言357
11.2 采集数据359
11.3 从不同数据源集成数据360
11.4 准备绘图数据361
11.5 使用Google Earth绘图366
11.6 从CIA的XML文件中抽取人口统计信息370
11.7 直接生成KML376
11.8 附加的计算任务381
11.8.1 创建绘图标识381
11.8.2 从字符串生成KML文件的效率381
11.8.3 从HTML文件中抽取纬度和经度383
11.9 练习题383
参考文献386
第12章 利用Web抓取和文本挖掘探索数据科学职位招聘信息388
12.1 引言与动机388
12.2 探索不同的Web网站390
12.3 初步/探索性抓取:Kaggle网站的职位招聘列表395
12.3.1 处理文本399
12.3.2 泛化到其他招聘启事中400
12.3.3 抓取Kaggle招聘启事列表403
12.4 抓取CyberCoders.com404
12.4.1 从一条招聘启事中提取技能列表407
12.4.2 在搜索结果中发现指向招聘启事的链接411
12.4.3 查找招聘启事搜索结果的下一页416
12.4.4 将这些函数集成在一起417
12.5 对任意网站可重用的通用框架418
12.6 抓取Career Builder网站421
12.7 抓取Monster.com网站422
12.8 分析结果:重要的技能424
12.9 Web抓取注意事项430
12.10 练习题431
参考文献431
【作者简介】
作 者 简 介Deborah Nolan(德博拉·诺兰)在改进数学和统计学的教学方法以及为本科生提供拓展服务方面倾注了大量心血。她担任加州大学伯克利分校本科教育的Zaffaroni Family主席,获得过伯克利分校的大学杰出教学奖,以及普林斯顿大学杰出教学William R. Kenan, Jr.客座教授席位。她是美国统计学会的会士,计算分会和教育分会的前任主席。她也是美国数理统计研究院的会士。她参与指导了数学和理学教师培训计划、加州大学教学培训项目、在职名师培训项目和美国数学教育培训项目。她出版了包括本书在内的多部著作。
Duncan Temple Lang(邓肯·坦普·朗)从事R语言和S语言程序开发工作20余年,开发了100多个R程序包。他着重探索和开发新的统计计算方法,主要贡献是调研来自其他学科的有发展前景的新范型和新技术,并将其集成到R环境中。他当前的研究工作包括:基于LLVM方法的R语言编译器、R计算的溯源、类型推导,以及快速、灵活的贝叶斯和似然度计算框架(http://r-nimble.org),还有图形处理器(GPU)。现在担任加州大学戴维斯分校数据科学计划项目的主管。
Nolan和Temple Lang是《XML and Web Technologies for Data Science in R》一书的共同作者。他们组织和领导了多个NSF资助的暑期计划,其目的是吸引大学生学习统计学领域的研究生课题,以及参加数据科学方面的小型研讨会。他们合作开发了“数据计算的概念”这门课程并在各自的学校里讲授。他们协作开发了支持交互式和可复制的动态文档、基于Web可视化等功能的系统。
数据科学R语言实践:面向计算推理与问题求解的案例研究法
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×