首页>参考读物>计算机科学与技术>软件与程序设计

Clojure数据分析秘笈
作者 : (美)Eric Rochester 著
译者 : 刘德海 张玫 译
丛书名 : 大数据技术丛书
出版日期 : 2014-08-18
ISBN : 978-7-111-47326-8
定价 : 59.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 263
开本 : 16
原书名 : Clojure Data Analysis Cookbook
原出版社: Packt Publishing Ltd.
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

图书特色

随着计算机技术的发展,我们的工作和生活中产生了大量的数据,从这些数据中获取有价值的信息变得越来越重要。Clojure是支持函数式编程和并发的Lisp方言,受到众多开发人员的欢迎,而使用Clojure进行数据分析和采集也成为当前的一个热门话题。本书通过一系列实用的、结构化的方法展示如何使用Clojure从数据中获取新的视角和观点。
本书详细讲解了数据分析过程中每个阶段的实施细节和各种实用方法。无论是从网页上抓取数据,还是执行数据挖掘任务或者创建动态和可交互式图表,你都能从本书中找到行之有效的方法。

通过阅读本书,你将学到:
创建可以发布到互联网上的富有洞察力的漂亮图表
通过强大的聚类和数据挖掘技术更好地理解数据
使用Incanter、Hadoop和Weka等数据分析工具快速完成任务
应用Mathematica和R的强大分析功能
并发和并行处理数据以提高性能
转换数据使其更方便、更适合于分析

作者简介
Eric Rochester 资深数据分析专家,精通Python、Java、R、C#等多种编程语言,有丰富的编程经验。目前,他重点关注函数式编程语言,包括Clojure和Haskell。他现任职于弗吉尼亚大学图书馆的学者实验室,负责帮助人文学科和本科生实现数字信息方面的研究计划。

资深数据分析专家多年经验结晶,内容全面而深入,用清晰易懂的语言阐释使用Clojure进行数据分析的各种技术细节、方法和最佳实践。本书实战性强,包含大量典型Clojure数据分析案例,为快速掌握并灵活运用Clojure技术提供最佳指导。
本书共11章:第1章讨论如何从CSV文件、网页和链接语义网数据等不同类型数据源读入数据;第2章提供标准化数据、修正拼写错误和使用大数据集的策略和实现;第3章介绍Clojure的并发特性和如何通过这些特性简化程序;第4章讲解使用Clojure的并行处理功能提高数据处理速度;第5章讨论使用Cascalog处理Hadoop和Cascading库中的海量分布式数据;第6章介绍使用Incanter数据集的基础知识;第7章介绍使用Incanter进行统计数据分析的过程和方法;第8章讲解如何配置Clojure,使其与Mathematica和R交互;第9章主要介绍聚类、分类和Weka等更多的高级机器学习技术;第10章展示如何在Incanter中生成图和进行可视化;第11章讲解网页图表的创建,并包含利用强大的D3可视化库的一些方法。

国内首部系统介绍Clojure数据分析技术的著作,内容全面而深入,为高效利用Clojure进行数据分析提供最佳指导
通过大量典型Clojure数据分析案例全面解析Clojure数据分析的各种技术细节、方法和最佳实践,实战性强

图书前言

数据无处不在!随着数据变得越来越普遍,人们利用数据的愿望也愈发强烈。数据中隐藏着很多有价值的信息,如潜在的购买者、用户的浏览模式、人口统计信息等。只要能够发现数据中的信息,就会获得对事物深刻的认知并且做出更明智的决策。
本书会帮助你做到这一点。
Clojure编程语言会帮上忙。Clojure由Rich Hickey于2007年首次发布,是Lisp语言大家庭的一员,因此它继承了Lisp语言所特有的功能性和灵活性。Clojure也是一门函数式编程语言,因此Clojure程序简单易懂。另外,Clojure在并发和并行编程方面表现突出,在分析数据时,它的所有这些特性会促使这一过程变得更加简单迅速。
许多强大的库进一步提升了Clojure在数据分析方面的实用性。Incanter提供了处理数据并执行统计分析的实用环境;Cascalog是覆盖Hadoop和Cascading技术的一个简单易用的包装器。最后,在准备发布结果时,ClojureScript(一个可以生成JavaScript的Clojure实现)可以帮助以有效且有说服力的方式对数据进行可视化。
此外,Clojure运行在Java虚拟机(JVM)上,因此为Java编写的库也可以用于Clojure。这使得Clojure可以非常高效地解决大多数领域的问题。
希望本书可以为你提供分析数据过程中所需要的工具和技术。
本书主要内容
第1章涉及如何从不同种类数据源中读入数据,这些数据源有CSV文件、网页和链接语义网数据。
第2章提供标准化数据、修正拼写错误以及使用大数据集的策略和实现。把数据塑造成一种可供使用的形式是数据分析的一个重要阶段,但这一过程经常被忽视。
第3章包含Clojure的并发特性和如何通过这些特性简化程序。
第4章包含通过Clojure的并行处理能力提高处理数据的速度。
第5章包含在Hadoop和Cascading库上使用Cascalog处理分布在多台计算机上的大量数据。该章介绍的最后一个方法使用Pallet在亚马逊EC2服务上执行一个简单的分析。
第6章介绍使用Incanter数据集的基础知识。数据集是Incanter使用的核心数据结构,理解它们是高效使用Incanter的基础。
第7章包含在数据分析中用到的一系列统计处理过程和测试。其中一些很简单,例如生成汇总统计。其他的可能更复杂些,例如执行线性回归和使用本福德定律审计数据。
第8章讲解如何配置Clojure以便与Mathematica和R交互。它们都是强大的数据分析系统,有时可能需要使用它们。该章将展示如何使这些分析系统一起工作,以及这些工具交互时我们可以完成的任务。
第9章包含更多高级的机器学习技术。在该章中,我们将主要使用Weka的机器学习库,以及讨论如何使用它和其中内置的数据结构,另外还将展示机器学习算法的一些方法。
第10章将展示如何在Incanter中生成图和进行可视化。对于探索和研究数据来说这些很重要,同时对于发布和展示结果来也非常重要。
第11章将展示如何安装一个简单的网页应用来展现数据分析的发现。该章将介绍利用强大的D3可视化库的一些方法。
阅读本书需要做的准备
学习本书需要使用Java Development Kit(JDK)软件,可以从http://www.oracle.com/technetwork/java/javase/downloads/index.html下载获得。JDK是在Java平台上运行和开发程序的必需品。
Leiningen 2是另外一个需要用到的软件,可以从https://github.com/technomancy/leiningen下载安装。Leiningen 2是用来管理Clojure项目和其他依赖的一个工具。很快它将成为Clojure社区事实上的标准项目管理工具。
全书会使用许多其他Clojure和Java库,包括Clojure本身。当需要这些库的时候,可以通过Leiningen下载。
同时还需要一款文本编辑器,或者集成开发环境(Integrated Development Environment,IDE)。如果你已经有一款自己喜欢使用的文本编辑器,那么可以直接使用。在使用自己喜欢的开发环境时,推荐浏览http://dev.clojure.org/display/doc/Getting+Started中的提示和插件。如果你没有偏好,建议考虑使用带有Counterclockwise的Eclipse,安装指导可以在http://dev.clojure.org/display/doc/Getting+Started+with+Eclipse+and+Counterclockwise中找到。
这就是本书需要的全部软件。然而,在全书中的有些地方,有一些方法会使用其他的软件。例如在第8章中,与Mathematica相关的内容很显然会使用Mathematica,同样与R相关的内容会用到R。但是这些软件不会在书中的其他部分用到,并且对这些方法是否感兴趣可能取决于你是否安装了这些软件。
本书读者对象
本书是为熟悉Clojure语言并且想将其应用在数据分析过程中的程序员和数据科学家准备的。本书并不是Clojure教程(现在已经有很多介绍Clojure的优秀著作),因此读者需要对Clojure这门语言熟悉,但不必是Clojure语言方面的专家。
排版约定
在本书中,你会发现用以区分内容的不同文本样式。下面是这些样式的例子和含义说明。
当需要读者注意代码块中的特定部分时,相关的行或者项目会设置为加粗显示。

所有命令行的输入或者输出都按以下方式展示:

新术语和重要词汇会以加粗的形式展示。
示例代码下载
你可以从http://www.packtpub.com上你的账户中下载购买的所有Packt书籍中的示例代码文件。如果你通过其他渠道购书,可以访问//www.packtpub.com/support并注册,我们会通过邮件直接将这些文件发送给你。
勘误表
尽管我们尽最大努力来保证内容的准确性,但错误不可避免还会出现。如果在书中发现错误(可能是文字或者代码错误),请告知我们。这样一来,你可以帮助其他读者免受错误干扰,并帮助改进本书后续的版本。如果发现错误,请通过访问http://www.packtpub.com/submit-errata,点击errata submission form链接,输入错误详情向我们报告错误。一旦你的勘误验证通过,我们将采纳你的提交的意义,然后将勘误上传到我们的网站上,或者加入对应主题的勘误栏目下现存的勘误列表中。任何现存的勘误表都可以从http://www.packtpub.com/support上点击浏览。
问题
当你有关于本书任何方面的问题时,请通过questions@packtpub.com联系,我们会尽最大努力解决它。

上架指导

计算机\数据挖掘

封底文字

随着计算机技术的发展,我们的工作和生活中产生了大量的数据,从这些数据中获取有价值的信息变得越来越重要。Clojure是支持函数式编程和并发的Lisp方言,受到众多开发人员的欢迎,而使用Clojure进行数据分析和采集也成为当前的一个热门话题。本书通过一系列实用的、结构化的方法向读者展示如何使用Clojure从数据中获取新的视角和观点。

本书详细讲解了数据分析过程中每个阶段的实施细节和各种实用方法。不论是从网页上抓取数据,还是执行数据挖掘任务或者创建动态和可交互式图表,你都能从本书中找到行之有效的方法。

通过阅读本书,你将学到:
·创建可以发布到互联网上的富有洞察力的漂亮图表
·通过强大的聚类和数据挖掘技术更好地理解数据
·使用Incanter、Hadoop和Weka等数据分析工具快速完成任务
·应用Mathematica和R的强大分析功能
·并发和并行处理数据以提高性能
·转换数据使其更方便、更适合于分析

作者简介

(美)Eric Rochester 著:暂无简介

译者简介

刘德海 张玫 译:暂无简介

图书目录

前言
关于技术审校者
第1章 导入分析数据 1
1.1 引言 1
1.2 新建项目 1
1.3 将CSV数据读入Incanter数据集 2
1.4 将JSON数据读入Incanter数据集 4
1.5 使用Incanter读入Excel数据 5
1.6 从JDBC数据库读取数据 6
1.7 将XML数据读入Incanter数据集 9
1.8 从网页表中抓取数据 11
1.9 从网页中抓取文本数据 15
1.10 读取RDF数据 17
1.11 使用SPARQL读取RDF数据 20
1.12 整合不同格式的数据 24
第2章 清洗和校验数据 29
2.1 引言 29
2.2 使用正则表达式清洗数据 30
2.3 使用同义词映射保持一致性 31
2.4 识别并去除重复数据 33
2.5 标准化数字格式 35
2.6 调整词频值的度量 36
2.7 标准化日期和时间 38
2.8 大数据集的延迟处理 40
2.9 大数据集抽样 42
2.10 修正拼写错误 43
2.11 解析自定义数据格式 46
2.12 使用Valip校验数据 49
第3章 使用并发编程管理复杂度 51
3.1 引言 51
3.2 使用STM管理程序复杂度 52
3.3 使用agent管理程序复杂度 55
3.4 使用commute获得更好的性能 57
3.5 将agent和STM结合使用 58
3.6 使用ensure维护一致性 60
3.7 将安全的副作用引入STM中 63
3.8 使用validator维护数据一致性 65
3.9 使用watcher追踪处理过程 68
3.10 使用watcher调试并发程序 70
3.11 从agent中错误恢复 71
3.12 使用sized queue管理输入 73
第4章 使用并行编程提高性能 74
4.1 引言 74
4.2 使用pmap并行处理 75
4.3 使用Incanter并行处理 77
4.4 将蒙特卡罗模拟进行划分使pmap性能提升 79
4.5 使用模拟退火算法最优化分块大小 83
4.6 使用reducers并行处理 86
4.7 使用reducers生成在线统计 89
4.8 使用OpenCL和Calx驾驭你的GPU 91
4.9 使用类型提示 94
4.10 使用Criterium制定基准 96
第5章 使用Cascalog进行分布式数据处理 100
5.1 引言 100
5.2 使用Cascalog和Hadoop分布式处理 101
5.3 使用Cascalog查询数据 104
5.4 使用Apache HDFS分布数据 105
5.5 使用Cascalog解析CSV文件 108
5.6 使用Cascalog执行复杂查询 110
5.7 使用Cascalog聚合数据 112
5.8 定义新Cascalog操作符 113
5.9 组成Cascalog查询 116
5.10 处理Cascalog工作流中的错误 118
5.11 使用Cascalog转换数据 119
5.12 使用Pallet在云上执行Cascalog查询 120
第6章 使用Incanter数据集 126
6.1 引言 126
6.2 加载Incanter样例数据集 126
6.3 将Clojure数据结构加载到数据集中 127
6.4 使用view交互式查看数据集 129
6.5 将数据集转换为矩阵 130
6.6 在Incanter中使用infix公式 132
6.7 使用$选择列 133
6.8 使用$选择行 135
6.9 使用$where过滤数据集 136
6.10 使用$group-by对数据分组 138
6.11 将数据集另存为CSV和JSON 139
6.12 使用$join进行多数据集投影 141
第7章 使用Incanter准备并执行统计数据分析 144
7.1 引言 144
7.2 使用$rollup生成汇总统计 144
7.3 通过变量差别展示变化 146
7.4 调整变量以简化变量关系 148
7.5 使用Incanter Zoo处理时间序列数据 150
7.6 平滑数据以降低噪声 152
7.7 使用bootstrapping验证抽样统计 154
7.8 线性关系建模 156
7.9 非线性关系建模 158
7.10 多峰贝叶斯分布建模 162
7.11 使用本福德定律找出数据错误 165
第8章 使用Mathematica和R 167
8.1 引言 167
8.2 在Mac OS X和Linux系统中配置Mathematica与Clojuratica的交互环境 168
8.3 在Windows系统中配置Mathematica与Clojuratica的交互环境 170
8.4 在Clojuratica中调用Mathematica函数 172
8.5 在Clojuratica中向Mathematica发送矩阵 173
8.6 在Clojuratica中运行Mathematica脚本 174
8.7 从Mathematica中创建函数 175
8.8 在Mathematica中并行处理函数 176
8.9 配置R与Clojure交互 177
8.10 在Clojure中调用R的函数 179
8.11 将向量传入R 180
8.12 在Clojure中执行R文件 181
8.13 在Clojure中使用R绘图 183
第9章 聚类、分类和使用Weka 185
9.1 引言 185
9.2 将CSV和ARFF文件加载到Weka中 185
9.3 在Weka数据集中对列进行过滤和重命名 187
9.4 使用K-means聚类发现成组数据 190
9.5 在Weka中寻找层次聚类结构 195
9.6 在Incanter中使用SOM聚类 197
9.7 使用决策树分类数据 199
9.8 使用朴素贝叶斯分类器分类数据 201
9.9 使用支持向量机分类数据 203
9.10 使用Apriori算法发现数据中的关联 205
第10章 使用Incanter绘图 208
10.1 引言 208
10.2 使用Incanter创建散点图 209
10.3 使用Incanter创建柱形图 211
10.4 在柱形图中绘制非数值型数据 212
10.5 使用Incanter创建直方图 213
10.6 使用Incanter绘制函数 215
10.7 为Incanter图表加入方程式 216
10.8 为散点图加入直线 217
10.9 使用JFreeChart定制图表 218
10.10 将Incanter图保存为PNG格式 220
10.11 使用PCA绘制多维数据 221
10.12 使用Incanter创建动态图表 223
第11章 创建网页图表 225
11.1 引言 225
11.2 使用Ring和Compojure提供数据 226
11.3 使用Hiccup创建HTML网页 229
11.4 配置和使用ClojureScript 231
11.5 用NVD3创建散点图 234
11.6 用NVD3创建条形图 239
11.7 用NVD3创建直方图 242
11.8 使用力向布局进行图像可视化 244
11.9 用D3创建交互式可视化 248

教学资源推荐
作者: 赵宏,陈旭东,马迪芳
作者: 杨树林 胡洁萍 编著
作者: 李柏岩 尹枫 王洪亚 等编著
作者: [英]克里斯?布里顿(Chris Britton) 著
参考读物推荐
作者: [印] R.纳热瓦拉·拉奥(R. Nageswara Rao)著
作者: Alan Monnox
作者: (美)Alexander Stepanov, Paul McJones 著