描述
开 本: 16开纸 张: 胶版纸包 装: 平装是否套装: 否国际标准书号ISBN: 9787111473268丛书名: 大数据技术丛书
编辑推荐
(1)国内首部系统介绍Clojure数据分析技术的著作,内容全面而深入,为高效利用Clojure进行数据分析提供**指导(2)通过大量典型Clojure数据分析案例全面解析Clojure数据分析的各种技术细节、方法和**实践,实战性强
内容简介
本书共11章,主要内容包括:第1章讨论如何从不同种类数据源中读入数据。第2章提供标准化数据、修正拼写错误和使用大数据集的策略和实现。第3章包含Clojure的并发特性和如何通过这些特性简化程序。第4章包含使用Clojure的并行处理能力提高处理数据的速度。第5章包含在Hadoop和Cascading库上使用Cascalog处理分布在多台计算机上的大量数据。第6章包含使用Incanter数据集的基础知识。第7章包含在数据分析中用到的一系列统计处理过程和测试。有此很简单,例如生成汇总统计。第8章讲解如何配置Clojure以便与Mathematica和R交互。第9章包含更多高级的机器学习技术。第10章展示如何在Incanter中生成图和进行可视化。第11章展示如何安装一个简单的网页应用来展现数据分析的发现。
目 录
前言
关于技术审校者
第1章 导入分析数据
1.1 引言
1.2 新建项目
1.3 将CSV数据读入Incanter数据集
1.4 将JSON数据读入Incanter数据集
1.5 使用Incanter读入Excel数据
1.6 从JDBC数据库读取数据
1.7 将XML数据读入Incanter数据集
1.8 从网页表中抓取数据
1.9 从网页中抓取文本数据
1.10 读取RDF数据
1.11 使用SPARQL读取RDF数据
1.12 整合不同格式的数据
第2章 清洗和校验数据
2.1 引言
2.2 使用正则表达式清洗数据
2.3 使用同义词映射保持一致性
2.4 识别并去除重复数据
2.5 标准化数字格式
2.6 调整词频值的度量
2.7 标准化日期和时间
2.8 大数据集的延迟处理
2.9 大数据集抽样
2.10 修正拼写错误
2.11 解析自定义数据格式
2.12 使用Valip校验数据
第3章 使用并发编程管理复杂度
3.1 引言
3.2 使用STM管理程序复杂度
3.3 使用agent管理程序复杂度
3.4 使用commute获得更好的性能
3.5 将agent和STM结合使用
3.6 使用ensure维护一致性
3.7 将安全的副作用引入STM中
3.8 使用validator维护数据一致性
3.9 使用watcher追踪处理过程
3.10 使用watcher调试并发程序
3.11 从agent中错误恢复
3.12 使用sized queue管理输入
第4章 使用并行编程提高性能
4.1 引言
4.2 使用pmap并行处理
4.3 使用Incanter并行处理
4.4 将蒙特卡罗模拟进行划分使pmap性能提升
4.5 使用模拟退火算法最优化分块大小
4.6 使用reducers并行处理
4.7 使用reducers生成在线统计
4.8 使用OpenCL和Calx驾驭你的GPU
4.9 使用类型提示
4.10 使用Criterium制定基准
第5章 使用Cascalog进行分布式数据处理
5.1 引言
5.2 使用Cascalog和Hadoop分布式处理
5.3 使用Cascalog查询数据
5.4 使用Apache HDFS分布数据
5.5 使用Cascalog解析CSV文件
5.6 使用Cascalog执行复杂查询
5.7 使用Cascalog聚合数据
5.8 定义新Cascalog操作符
5.9 组成Cascalog查询
5.10 处理Cascalog工作流中的错误
5.11 使用Cascalog转换数据
5.12 使用Pallet在云上执行Cascalog查询
第6章 使用Incanter数据集
6.1 引言
6.2 加载Incanter样例数据集
6.3 将Clojure数据结构加载到数据集中
6.4 使用view交互式查看数据集
6.5 将数据集转换为矩阵
6.6 在Incanter中使用infix公式
6.7 使用$选择列
6.8 使用$选择行
6.9 使用$where过滤数据集
6.10 使用$group-by对数据分组
6.11 将数据集另存为CSV和JSON
6.12 使用$join进行多数据集投影
第7章 使用Incanter准备并执行统计数据分析
7.1 引言
7.2 使用$rollup生成汇总统计
7.3 通过变量差别展示变化
7.4 调整变量以简化变量关系
7.5 使用Incanter Zoo处理时间序列数据
7.6 平滑数据以降低噪声
7.7 使用bootstrapping验证抽样统计
7.8 线性关系建模
7.9 非线性关系建模
7.10 多峰贝叶斯分布建模
7.11 使用本福德定律找出数据错误
第8章 使用Mathematica和R
8.1 引言
8.2 在Mac OS X和Linux系统中配置Mathematica与Clojuratica的交互环境
8.3 在Windows系统中配置Mathematica与Clojuratica的交互环境
8.4 在Clojuratica中调用Mathematica函数
8.5 在Clojuratica中向Mathematica发送矩阵
8.6 在Clojuratica中运行Mathematica脚本
8.7 从Mathematica中创建函数
8.8 在Mathematica中并行处理函数
8.9 配置R与Clojure交互
8.10 在Clojure中调用R的函数
8.11 将向量传入R
8.12 在Clojure中执行R文件
8.13 在Clojure中使用R绘图
第9章 聚类、分类和使用Weka
9.1 引言
9.2 将CSV和ARFF文件加载到Weka中
9.3 在Weka数据集中对列进行过滤和重命名
9.4 使用K-means聚类发现成组数据
9.5 在Weka中寻找层次聚类结构
9.6 在Incanter中使用SOM聚类
9.7 使用决策树分类数据
9.8 使用朴素贝叶斯分类器分类数据
9.9 使用支持向量机分类数据
9.10 使用Apriori算法发现数据中的关联
第10章 使用Incanter绘图
10.1 引言
10.2 使用Incanter创建散点图
10.3 使用Incanter创建柱形图
10.4 在柱形图中绘制非数值型数据
10.5 使用Incanter创建直方图
10.6 使用Incanter绘制函数
10.7 为Incanter图表加入方程式
10.8 为散点图加入直线
10.9 使用JFreeChart定制图表
10.10 将Incanter图保存为PNG格式
10.11 使用PCA绘制多维数据
10.12 使用Incanter创建动态图表
第11章 创建网页图表
11.1 引言
11.2 使用Ring和Compojure提供数据
11.3 使用Hiccup创建HTML网页
11.4 配置和使用ClojureScript
11.5 用NVD3创建散点图
11.6 用NVD3创建条形图
11.7 用NVD3创建直方图
11.8 使用力向布局进行图像可视化
11.9 用D3创建交互式可视化
关于技术审校者
第1章 导入分析数据
1.1 引言
1.2 新建项目
1.3 将CSV数据读入Incanter数据集
1.4 将JSON数据读入Incanter数据集
1.5 使用Incanter读入Excel数据
1.6 从JDBC数据库读取数据
1.7 将XML数据读入Incanter数据集
1.8 从网页表中抓取数据
1.9 从网页中抓取文本数据
1.10 读取RDF数据
1.11 使用SPARQL读取RDF数据
1.12 整合不同格式的数据
第2章 清洗和校验数据
2.1 引言
2.2 使用正则表达式清洗数据
2.3 使用同义词映射保持一致性
2.4 识别并去除重复数据
2.5 标准化数字格式
2.6 调整词频值的度量
2.7 标准化日期和时间
2.8 大数据集的延迟处理
2.9 大数据集抽样
2.10 修正拼写错误
2.11 解析自定义数据格式
2.12 使用Valip校验数据
第3章 使用并发编程管理复杂度
3.1 引言
3.2 使用STM管理程序复杂度
3.3 使用agent管理程序复杂度
3.4 使用commute获得更好的性能
3.5 将agent和STM结合使用
3.6 使用ensure维护一致性
3.7 将安全的副作用引入STM中
3.8 使用validator维护数据一致性
3.9 使用watcher追踪处理过程
3.10 使用watcher调试并发程序
3.11 从agent中错误恢复
3.12 使用sized queue管理输入
第4章 使用并行编程提高性能
4.1 引言
4.2 使用pmap并行处理
4.3 使用Incanter并行处理
4.4 将蒙特卡罗模拟进行划分使pmap性能提升
4.5 使用模拟退火算法最优化分块大小
4.6 使用reducers并行处理
4.7 使用reducers生成在线统计
4.8 使用OpenCL和Calx驾驭你的GPU
4.9 使用类型提示
4.10 使用Criterium制定基准
第5章 使用Cascalog进行分布式数据处理
5.1 引言
5.2 使用Cascalog和Hadoop分布式处理
5.3 使用Cascalog查询数据
5.4 使用Apache HDFS分布数据
5.5 使用Cascalog解析CSV文件
5.6 使用Cascalog执行复杂查询
5.7 使用Cascalog聚合数据
5.8 定义新Cascalog操作符
5.9 组成Cascalog查询
5.10 处理Cascalog工作流中的错误
5.11 使用Cascalog转换数据
5.12 使用Pallet在云上执行Cascalog查询
第6章 使用Incanter数据集
6.1 引言
6.2 加载Incanter样例数据集
6.3 将Clojure数据结构加载到数据集中
6.4 使用view交互式查看数据集
6.5 将数据集转换为矩阵
6.6 在Incanter中使用infix公式
6.7 使用$选择列
6.8 使用$选择行
6.9 使用$where过滤数据集
6.10 使用$group-by对数据分组
6.11 将数据集另存为CSV和JSON
6.12 使用$join进行多数据集投影
第7章 使用Incanter准备并执行统计数据分析
7.1 引言
7.2 使用$rollup生成汇总统计
7.3 通过变量差别展示变化
7.4 调整变量以简化变量关系
7.5 使用Incanter Zoo处理时间序列数据
7.6 平滑数据以降低噪声
7.7 使用bootstrapping验证抽样统计
7.8 线性关系建模
7.9 非线性关系建模
7.10 多峰贝叶斯分布建模
7.11 使用本福德定律找出数据错误
第8章 使用Mathematica和R
8.1 引言
8.2 在Mac OS X和Linux系统中配置Mathematica与Clojuratica的交互环境
8.3 在Windows系统中配置Mathematica与Clojuratica的交互环境
8.4 在Clojuratica中调用Mathematica函数
8.5 在Clojuratica中向Mathematica发送矩阵
8.6 在Clojuratica中运行Mathematica脚本
8.7 从Mathematica中创建函数
8.8 在Mathematica中并行处理函数
8.9 配置R与Clojure交互
8.10 在Clojure中调用R的函数
8.11 将向量传入R
8.12 在Clojure中执行R文件
8.13 在Clojure中使用R绘图
第9章 聚类、分类和使用Weka
9.1 引言
9.2 将CSV和ARFF文件加载到Weka中
9.3 在Weka数据集中对列进行过滤和重命名
9.4 使用K-means聚类发现成组数据
9.5 在Weka中寻找层次聚类结构
9.6 在Incanter中使用SOM聚类
9.7 使用决策树分类数据
9.8 使用朴素贝叶斯分类器分类数据
9.9 使用支持向量机分类数据
9.10 使用Apriori算法发现数据中的关联
第10章 使用Incanter绘图
10.1 引言
10.2 使用Incanter创建散点图
10.3 使用Incanter创建柱形图
10.4 在柱形图中绘制非数值型数据
10.5 使用Incanter创建直方图
10.6 使用Incanter绘制函数
10.7 为Incanter图表加入方程式
10.8 为散点图加入直线
10.9 使用JFreeChart定制图表
10.10 将Incanter图保存为PNG格式
10.11 使用PCA绘制多维数据
10.12 使用Incanter创建动态图表
第11章 创建网页图表
11.1 引言
11.2 使用Ring和Compojure提供数据
11.3 使用Hiccup创建HTML网页
11.4 配置和使用ClojureScript
11.5 用NVD3创建散点图
11.6 用NVD3创建条形图
11.7 用NVD3创建直方图
11.8 使用力向布局进行图像可视化
11.9 用D3创建交互式可视化
免费在线读
第1章
导入分析数据
1.1 引言
如果没有大量数据是无法进行数据分析的,因此任何项目的第一步都是评估有什么样的数据和需要什么样的数据。一旦知道需要什么样的数据,就要想办法得到它。
本章和本书中的许多方法使用Incanter(http://incanter.org/)导入数据并规定使用Incanter数据集。Incanter是Clojure中完成统计分析和图形化显示的库,其作用类似于R。Incanter可能并不适用于所有任务(后面将使用Weka库进行聚类和机器学习),但它仍是在Clojure中进行数据分析的重要工具。本章介绍如何收集数据和使数据适用于Clojure。首先来看一下如何创建一个新的项目。我们将从以逗号分隔值(Comma-Separated Value,CSV)的简单数据格式开始,然后学习使用JDBC从关系数据库中读取数据。最后考虑更复杂的数据源,例如从网络上抓取的数据和链接数据(RDF)。
1.2 新建项目
本书将用到许多第三方库和外部依赖包,因此需要一款下载并记录它们的工具,也需要一款工具用于搭建环境并启动交互式终端解释器(REPL),以便查看代码或者执行程序。
可以使用Leiningen(http://leiningen.org/)完成这项工作,它已经成为标准的自动打包和管理系统。
1.2.1 准备工作
访问Leiningen官方网站(http://leiningen.org/)并下载lein脚本,执行该脚本会下载Leiningen所需的JAR文件。安装说明很清晰,整个安装过程比较简单。
1.2.2 具体实现
用lein new命令生成一个新项目,将项目名称作为参数传入:
现在你会发现一个名为getting-data的子目录,其中将包含getting-data.core命名空间和测试用的桩程序。
下载样例代码
你可以从http://www.packtpub.com你的账户中下载购买的所有Packt书籍中的样例代码文件。如果你通过其他渠道购书,可以访问http://www.packtpub.com/support并注册,这些文件会通过邮件直接发送给你。
1.2.3 实现原理
新建项目目录下有一个名为project.clj的文件,这个文件中包含关于该项目的元数据信息:项目名、版本和许可。文件中也包含代码需要使用的依赖列表。该文件中所使用的规范允许在Maven仓库目录和Clojure库目录(Clojars,https://clojars.org/)搜索下载项目的依赖包。
在每种方法的准备部分,都可以从这个文件的:dependencies部分看到项目需要列出的库。
1.3 将CSV数据读入Incanter数据集
以逗号分隔值(CSV)是最简单的数据格式之一,并且这种数据格式应用非常普遍。Excel可以直接读写CSV文件,而且多数数据库也可以。由于CSV文件就是无格式的文本,因此使用任何编程语言都很容易生成或者访问它。
1.3.1 准备工作
首先,确保加载了正确的库。Leiningen(https://github.com/technomancy/leiningen)的项目文件project.clj file应该包含以下依赖(也可以使用更新的版本):
另外,在REPL或者代码文件中,包含以下代码:
最后,我将包含以下数据的文件命名为data/small-sample.csv。
这个文件可以从http://www.ericrochester.com/clj-data-analysis/data/small-sample.csv下载,还有一个带有标题行的版本,可以从http://www.ericrochester.com/clj-data-analysis/data/small-sample-header.csv下载。
1.3.2 具体实现
1. 使用incanter.io/read-dataset函数。
2. 如果CSV文件中有标题行,在调用read-dataset函数时应包含 :header true。
……
导入分析数据
1.1 引言
如果没有大量数据是无法进行数据分析的,因此任何项目的第一步都是评估有什么样的数据和需要什么样的数据。一旦知道需要什么样的数据,就要想办法得到它。
本章和本书中的许多方法使用Incanter(http://incanter.org/)导入数据并规定使用Incanter数据集。Incanter是Clojure中完成统计分析和图形化显示的库,其作用类似于R。Incanter可能并不适用于所有任务(后面将使用Weka库进行聚类和机器学习),但它仍是在Clojure中进行数据分析的重要工具。本章介绍如何收集数据和使数据适用于Clojure。首先来看一下如何创建一个新的项目。我们将从以逗号分隔值(Comma-Separated Value,CSV)的简单数据格式开始,然后学习使用JDBC从关系数据库中读取数据。最后考虑更复杂的数据源,例如从网络上抓取的数据和链接数据(RDF)。
1.2 新建项目
本书将用到许多第三方库和外部依赖包,因此需要一款下载并记录它们的工具,也需要一款工具用于搭建环境并启动交互式终端解释器(REPL),以便查看代码或者执行程序。
可以使用Leiningen(http://leiningen.org/)完成这项工作,它已经成为标准的自动打包和管理系统。
1.2.1 准备工作
访问Leiningen官方网站(http://leiningen.org/)并下载lein脚本,执行该脚本会下载Leiningen所需的JAR文件。安装说明很清晰,整个安装过程比较简单。
1.2.2 具体实现
用lein new命令生成一个新项目,将项目名称作为参数传入:
现在你会发现一个名为getting-data的子目录,其中将包含getting-data.core命名空间和测试用的桩程序。
下载样例代码
你可以从http://www.packtpub.com你的账户中下载购买的所有Packt书籍中的样例代码文件。如果你通过其他渠道购书,可以访问http://www.packtpub.com/support并注册,这些文件会通过邮件直接发送给你。
1.2.3 实现原理
新建项目目录下有一个名为project.clj的文件,这个文件中包含关于该项目的元数据信息:项目名、版本和许可。文件中也包含代码需要使用的依赖列表。该文件中所使用的规范允许在Maven仓库目录和Clojure库目录(Clojars,https://clojars.org/)搜索下载项目的依赖包。
在每种方法的准备部分,都可以从这个文件的:dependencies部分看到项目需要列出的库。
1.3 将CSV数据读入Incanter数据集
以逗号分隔值(CSV)是最简单的数据格式之一,并且这种数据格式应用非常普遍。Excel可以直接读写CSV文件,而且多数数据库也可以。由于CSV文件就是无格式的文本,因此使用任何编程语言都很容易生成或者访问它。
1.3.1 准备工作
首先,确保加载了正确的库。Leiningen(https://github.com/technomancy/leiningen)的项目文件project.clj file应该包含以下依赖(也可以使用更新的版本):
另外,在REPL或者代码文件中,包含以下代码:
最后,我将包含以下数据的文件命名为data/small-sample.csv。
这个文件可以从http://www.ericrochester.com/clj-data-analysis/data/small-sample.csv下载,还有一个带有标题行的版本,可以从http://www.ericrochester.com/clj-data-analysis/data/small-sample-header.csv下载。
1.3.2 具体实现
1. 使用incanter.io/read-dataset函数。
2. 如果CSV文件中有标题行,在调用read-dataset函数时应包含 :header true。
……
评论
还没有评论。