前 言
大数据、物联网、人工智能已经变成近几年最热门的科技流行语。尽管大家用很多名词去定义这些技术,但是共通的思想是它们都是数据驱动的。人们并不满足于简单地拥有数据,因为发现其中的价值才是最本质的。因此数据科学家已经开始关注如何从原始数据中洞悉深层价值。
数据科学已经变成学术界和产业界最流行的话题。但是数据科学是一门非常宽泛的学科,学会掌握数据科学注定很有挑战性。初学者必须学习如何准备、处理、聚合和可视化数据。而更多高级技能包括机器学习,挖掘各种数据格式(文本、图像和视频),以及最重要的—使用数据产生商业价值。数据科学家的角色需要大量的努力,同时,一名成功的数据科学家也需要一个有力的工具来解决日常问题。
在这个领域中,数据科学家使用最广泛的工具是开源而且免费的R语言。作为一种机器语言,R提供了许多数据处理函数、学习库和可视化函数,允许用户快速上手分析数据。R可以帮助用户快速执行分析,并在不需要懂得复杂数学模型细节的前提下执行机器学习算法。
本书给出了实际方案,教你如何使用R语言将数据科学落地。全书共12章,每一章都分成几个简单的教程。通过每一个教程循序渐进的介绍,你可以使用R的程序包,掌握书中所教授的技术。
本书首先介绍如何创建R函数来避免不必要的代码重复。你会学到如何使用R程序包,在各种数据源上准备数据、处理数据和执行高级ETL操作。数据操作的一个例子是介绍如何使用dplyr和data.table程序包有效地处理大型数据结构。还有一章关注ggplot2,介绍如何创建高级图形,进行数据展示。你也会学到如何使用ggvis程序包构建交互式报告。
本书也会介绍如何使用数据挖掘技术发现经常一起购买的产品。后面的章节还给出了财务数据的时间序列分析结果。还有一些章节会深入介绍机器学习技术,包括数据分类、回归、聚类和降维。我可以保证,本书会让你觉得,数据科学学习原来如此简单。
主要内容
第1章介绍如何创建R函数。该章会介绍R函数的基本构成、环境和参数匹配。我们还会介绍高级技术,例如闭包、函数式编程和如何处理错误。
第2章介绍如何使用R读取结构化和非结构化的数据。该章首先介绍从文本文件中读取数据。然后,介绍如何把R和数据库连接起来。最后,你会学到如何编写网络爬虫,爬取网页和社交网络上的非结构化数据。
第3章介绍分析前的数据准备工作。在该章中,我们会介绍数据预处理过程,使用基本的R函数,进行例如类型转换、添加、过滤、舍弃、重塑和缺失值估计。
第4章介绍如何使用高级程序包data.table和dplyr有效而且高效地操作数据。data.table提供了快速加载和聚合大型数据的可能。dplyr程序包提供了以类似SQL的语法操作数据的能力。
第5章介绍使用ggplot2可视化数据。首先介绍ggplot2的基本构成。然后,介绍高级技术,使用ggplot2函数创建复杂的图形。最后,介绍如何使用ggmap构建地图。
第6章展示如何使用R创建一份专业的报告。首先,讨论如何使用R markdown语法,嵌入R代码块。然后,介绍如何使用ggvis添加交互式图表。最后,介绍如何创建和发布R Shiny报告。
第7章关注如何从不同的概率分布上抽样数据。作为一个具体的例子,我们会介绍如何使用概率函数模拟随机交易过程。
第8章首先讨论点估计和置信区间。然后,介绍参数和非参数检验方法。最后,介绍如何使用ANOVA分析工程师的收入是否会随着头衔和地区的变化而不同。
第9章介绍用于发现交易数据中关联项和暗藏的频率模式的常用方法。在该章中,我们会使用一个实际例子,以便你可以学到如何在实际的数据集中执行规则和模式挖掘。
第10章首先介绍如何从财务数据集中创建和操作时间序列。然后介绍如何使用HoltWinters和ARIMA预测时间序列。该章会通过一个实际例子介绍如何使用ARIMA预测股票价格。
第11章介绍如何构建基于标注训练数据的预测模型。你会学到如何使用回归模型理解数值关系,并使用拟合模型进行连续值预测。对于分类任务,你会学到如何拟合数据,生成一个树形分类器。
第12章介绍未标注数据的隐含结构。首先,介绍如何使用聚类方法对位置临近的旅馆进行分组。然后,介绍如何使用PCA方法选取和抽取经济自由度数据集中的特征。
目 录
前言
第1章 R中的函数
1.1引言
1.2 创建R函数
1.3 匹配参数
1.4 理解环境
1.5 使用词法域
1.6 理解闭包
1.7 执行延迟计算
1.8 创建中缀操作符
1.9 使用替代函数
1.10 处理函数中的错误
1.11 调试函数
第2章 数据抽取、转换和加载
2.1 引言
2.2 下载公开数据
2.3 读取和写入CSV文件
2.4 扫描文本文件
2.5 使用Excel文件
2.6 从数据库中读取数据
2.7 爬取网络数据
2.8 获取Facebook数据
2.9 使用twitteR
第3章 数据预处理和准备
3.1 引言
3.2 重命名数据变量
3.3 转换数据类型
3.4 使用日期格式
3.5 添加新的记录
3.6 过滤数据
3.7 舍弃数据
3.8 合并数据
3.9 排列数据
3.10 重塑数据
3.11 检测缺失数据
3.12 估计缺失数据
第4章 数据操作
4.1 引言
4.2 使用data.table加强data.frame
4.3 使用data.table管理数据
4.4 使用data.table执行快速聚合
4.5 使用data.table合并大型数据集
4.6 使用dplyr进行数据抽取和切片
4.7 使用dplyr进行数据抽样
4.8 使用dplyr选取列
4.9 使用dplyr进行链式操作
4.10 使用dplyr整理行
4.11 使用dplyr消除重复行
4.12 使用dplyr添加新列
4.13 使用dplyr汇总数据
4.14 使用dplyr合并数据
第5章 使用ggplot2可视化数据
5.1 引言
5.2 使用ggplot2创建基础图形
5.3 改变美学映射
5.4 引入几何对象
5.5 执行变换
5.6 调整图形尺度
5.7 分面
5.8 调整主题
5.9 组合图形
5.10 创建地图
第6章 制作交互式报告
6.1 引言
6.2 创建R Markdown报告
6.3 学习markdown语法
6.4 嵌入R代码块
6.5 使用ggvis创建交互式图形
6.6 理解基础语法
6.7 控制坐标轴和图例
6.8 使用尺度
6.9 给ggvis图形添加交互
6.10 创建R Shiny文档
6.11 发布R Shiny报告
第7章 概率分布模拟
7.1 引言
7.2 生成随机样本
7.3 理解均匀分布
7.4 生成二项随机变量
7.5 生成泊松随机变量
7.6 从正态分布中抽样
7.7 从卡方分布中抽样
7.8 理解学生t-分布
7.9 从数据集中抽样
7.10 模拟随机过程
第8章 R中的统计推断
8.1 引言
8.2 获取置信区间
8.3 执行Z-检验
8.4 执行学生T-检验
8.5 执行精确二项检验
8.6 执行Kolmogorov-Smirnov检验
8.7 使用Pearson卡方检验
8.8 理解Wilcoxon秩和检验
8.9 执行单因素方差分析
8.10 执行双因素方差分析
第9章 R语言规则和模式挖掘
9.1 引言
9.2 把数据转换为事务
9.3 展示事务和关联
9.4 使用Apriori规则挖掘关联关系
9.5 对冗余规则剪枝
9.6 可视化关联规则
9.7 使用Eclat挖掘频繁项集
9.8 使用时序信息创建事务
9.9 使用cSPADE挖掘频繁序列模式