第1章 数据科学导论 1
1.1 数据分析起源 1
1.2 科学方法 2
1.3 精算科学 2
1.4 蒸汽计算 3
1.5 一个惊人的例子 4
1.6 赫尔曼·何乐礼 5
1.7 ENIAC 6
1.8 VisiCalc 7
1.9 数据、信息和知识 7
1.10 为什么用Java 7
1.11 Java集成开发环境 8
1.12 小结 10
第2章 数据预处理 11
2.1 数据类型 11
2.2 变量 12
2.3 数据点和数据集 12
2.4 关系数据库表 13
2.4.1 关键字段 13
2.4.2 键—值对 14
2.5 哈希表 14
2.6 文件格式 16
2.6.1 微软Excel数据 18
2.6.2 XML和JSON数据 21
2.7 生成测试数据集 27
2.7.1 元数据 28
2.7.2 数据清洗 29
2.7.3 数据缩放 30
2.7.4 数据过滤 30
2.7.5 排序 33
2.7.6 合并 34
2.7.7 散列法 37
2.8 小结 38
第3章 数据可视化 39
3.1 表和图 40
3.1.1 散点图 40
3.1.2 线图 42
3.1.3 条形图 43
3.1.4 直方图 43
3.2 时间序列 45
3.3 Java实现 46
3.4 移动平均 49
3.5 数据排序 53
3.6 频率分布 55
3.7 正态分布 57
3.8 指数分布 59
3.9 Java示例 59
3.10 小结 61
第4章 统计 62
4.1 描述性统计量 62
4.2 随机抽样 65
4.3 随机变量 67
4.4 概率分布 67
4.5 累积分布 69
4.6 二项分布 70
4.7 多元分布 74
4.8 条件概率 76
4.9 概率事件的独立性 77
4.10 列联表 78
4.11 贝叶斯定理 78
4.12 协方差和相关 80
4.13 标准正态分布 82
4.14 中心极限定理 86
4.15 置信区间 87
4.16 假设检验 89
4.17 小结 91
第5章 关系数据库 92
5.1 关系数据模型 92
5.2 关系数据库 93
5.3 外键 94
5.4 关系数据库设计 95
5.4.1 创建数据库 96
5.4.2 SQL命令 100
5.4.3 数据插入数据库 104
5.4.4 数据库查询 106
5.4.5 SQL数据类型 107
5.4.6 JDBC 108
5.4.7 使用JDBC PreparedStatement 110
5.4.8 批处理 112
5.4.9 数据库视图 115
5.4.10 子查询 119
5.4.11 表索引 121
5.5 小结 123
第6章 回归分析 124
6.1 线性回归 124
6.1.1 Excel中的线性回归 125
6.1.2 计算回归系数 129
6.1.3 变异统计量 131
6.1.4 线性回归的Java实现 134
6.1.5 安斯库姆的四重奏 141
6.2 多项式回归 143
6.2.1 多元线性回归 147
6.2.2 Apache Commons的实现 150
6.2.3 曲线拟合 151
6.3 小结 153
第7章 分类分析 154
7.1 决策树 156
7.1.1 熵和它有什么关系? 157
7.1.2 ID3算法 160
7.1.3 Weka平台 171
7.1.4 数据的ARFF文件类型 171
7.1.5 Weka的Java实现 174
7.2 贝叶斯分类器 175
7.2.1 Weka的Java实现 177
7.2.2 支持向量机算法 181
7.3 逻辑回归 184
7.3.1 k近邻算法 189
7.3.2 模糊分类算法 193
7.4 小结 194
第8章 聚类分析 195
8.1 测量距离 195
8.2 维数灾难 200
8.3 层次聚类法 201
8.3.1 Weka实现 210
8.3.2 K-均值聚类 212
8.3.3 K-中心点聚类 218
8.3.4 仿射传播聚类 220
8.4 小结 228
第9章 推荐系统 229
9.1 效用矩阵 230
9.2 相似性度量 231
9.3 余弦相似性 233
9.4 一个简单的推荐系统 233
9.5 亚马逊项目对项目的协同过滤推荐 244
9.6 实现用户评分 250
9.7 大型稀疏矩阵 254
9.8 使用随机访问文件 257
9.9 Netflix大奖赛 260
9.10 小结 260
第10章 NoSQL数据库 261
10.1 映射数据结构 261
10.2 SQL与NoSQL 263
10.3 Mongo数据库系统 265
10.4 Library数据库 270
10.5 MongoDB的Java开发 273
10.6 MongoDB的地理空间数据库扩展 281
10.7 MongoDB中的索引 282
10.8 为什么选择NoSQL,为什么选择MongoDB 283
10.9 其他的NoSQL数据库系统 284
10.10 小结 284
第11章 Java大数据分析 285
11.1 扩展、数据分块和分片 285
11.2 谷歌的PageRank算法 286
11.3 谷歌的MapReduce框架 290
11.4 MapReduce的一些应用示例 291
11.5 “单词计数”示例 292
11.6 可扩展性 296
11.7 MapReduce的矩阵操作 297
11.8 MongoDB中的MapReduce 301
11.9 Apache Hadoop 302
11.10 Hadoop MapReduce 303
11.11 小结 304
附录 Java工具 305