第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 OSX和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