描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787115533302丛书名: 图灵程序设计丛书
数据科学近年来迅速成为了热门研究领域,但很少有数据科学从业人士冒险涉足Java世界。考虑到在工程与科学的交叉地带所需的可伸缩性、稳健性以及便利性,Java其实是一门理想的语言。本书将循序渐进地引导读者进入数据科学的工作流程,在解释数学原理的同时给出代码示例。书中解释了数据科学流程每一步背后的基本数学原理,以及如何采用Java来应用这些原理。 本书内容涉及数据输入与输出、线性代数、统计学、数据操作、学习与预测,以及Hadoop MapReduce在这个过程中所扮演的关键角色。 ● 讨论获取数据、清理数据,以及以纯粹方式排列数据的众多方法 ● 理解数据应采用的矩阵结构 ● 学习测试数据来源及数据有效性的基本概念 ● 把数据转换为稳定且可用的数值 ● 理解监督型学习算法与无监督型学习算法,以及评估这些算法是否成功的方法 ● 采用适合数据科学算法的定制组件,设置和运行MapReduce任务
《Java数据科学实战》基于清晰的、面向对象的Java代码,讨论了数据科学研究的一些基本原理。考虑到项目所需的可伸缩性、稳健性以及便利性,Java是一门理想的语言。本书解释了数据科学过程每个步骤背后的基本数学原理,以及如何将这些概念应用于Java。本书内容涉及数据输入与输出、线性代数、统计学、数据操作、学习与预测,以及Hadoop MapReduce在这个过程中所扮演的关键角色。书中还提供了在应用程序中使用的代码示例。
前言 xi
第 1章 数据的输入与输出 1
1.1 究竟何谓数据 1
1.2 数据模型 2
1.2.1 一维数组 2
1.2.2 多维数组 2
1.2.3 数据对象 3
1.2.4 矩阵和向量 3
1.2.5 JSON 4
1.3 处理实际数据 4
1.3.1 空值 4
1.3.2 空格 5
1.3.3 解析错误 5
1.3.4 异常值 6
1.4 管理数据文件 6
1.4.1 首先理解文件内容 7
1.4.2 读取文本文件 8
1.4.3 读取JSON文件 10
1.4.4 读取图像文件 11
1.4.5 写入文本文件 12
1.5 掌握数据库操作 15
1.5.1 命令行客户端 15
1.5.2 结构化查询语言 16
1.5.3 Java数据库连接 18
1.6 通过绘图将数据可视化 20
1.6.1 创建简单图形 21
1.6.2 混合类型图的绘制 24
1.6.3 把图存入文件 26
第 2章 线性代数 28
2.1 构造向量和矩阵 29
2.1.1 数组存储 30
2.1.2 块存储 31
2.1.3 映射存储 31
2.1.4 访问元素 31
2.1.5 处理子阵 33
2.1.6 随机化 34
2.2 向量与矩阵的运算 35
2.2.1 缩放 35
2.2.2 转置 36
2.2.3 加与减 36
2.2.4 长度 37
2.2.5 距离 38
2.2.6 相乘 39
2.2.7 内积 40
2.2.8 外积 41
2.2.9 逐项积 42
2.2.10 复合运算 43
2.2.11 仿射变换 43
2.2.12 映射函数 44
2.3 矩阵分解 47
2.3.1 Cholesky分解 47
2.3.2 LU分解 48
2.3.3 QR分解 48
2.3.4 奇异值分解 48
2.3.5 特征分解 49
2.3.6 行列式 50
2.3.7 矩阵逆 50
2.4 求解线性方程组 51
第3章 统计学 53
3.1 数据的概率起源 54
3.1.1 概率密度 54
3.1.2 累积概率 55
3.1.3 统计矩 55
3.1.4 熵 56
3.1.5 连续分布 57
3.1.6 离散分布 68
3.2 数据集的特征 73
3.2.1 矩的计算 73
3.2.2 描述性统计 74
3.2.3 多元统计 79
3.2.4 协方差与相关系数 81
3.2.5 回归 82
3.3 处理大数据集 84
3.3.1 累积统计 85
3.3.2 统计结果的归并 87
3.3.3 回归 88
3.4 数据库内置函数的应用 89
第4章 数据操作 91
4.1 转换文本数据 91
4.1.1 从文档中提取标记 91
4.1.2 利用字典 92
4.1.3 文档向量化 94
4.2 数值数据的缩放与归一化 97
4.2.1 对列进行缩放 97
4.2.2 对行进行缩放 99
4.2.3 矩阵的缩放算子 100
4.3 将数据降维至主成分 102
4.3.1 协方差方法 105
4.3.2 SVD方法 106
4.4 创建训练集、验证集及测试集 108
4.4.1 基于索引的重新采样 108
4.4.2 基于列表的重新采样 110
4.4.3 小批量 111
4.5 标签的编码 111
4.5.1 泛型编码器 111
4.5.2 一位有效编码 112
第5章 学习与预测 115
5.1 学习算法 115
5.1.1 迭代学习过程 115
5.1.2 梯度下降优化方法 117
5.2 评估学习过程 119
5.2.1 损失函数最小化 119
5.2.2 方差和的最小化 127
5.2.3 轮廓系数 127
5.2.4 对数似然性 128
5.2.5 分类器的准确率 129
5.3 无监督型学习 131
5.3.1 K均值聚类 131
5.3.2 DBSCAN 133
5.3.3 高斯混合 137
5.4 监督型学习 141
5.4.1 朴素贝叶斯 142
5.4.2 线性模型 148
5.4.3 深度网络 156
第6章 Hadoop MapReduce 161
6.1 Hadoop分布式文件系统 161
6.2 MapReduce体系结构 162
6.3 编写MapReduce应用 163
6.3.1 剖析MapReduce任务 164
6.3.2 Hadoop数据类型 164
6.3.3 映射器 167
6.3.4 归约器 168
6.3.5 JSON字符串作为文本的简单性 169
6.3.6 部署技巧 170
6.4 MapReduce 示例 171
6.4.1 单词计数 171
6.4.2 定制单词计数 172
6.4.3 稀疏线性代数 173
附录A 数据集 177
作者简介 186
关于封面 186
“这是一本不可多得的、采用Java来实现与应用数据科学的书。书中对机器学习所需的线性代数和统计学的讨论简洁有力。本书汇集了布茹斯托维奇在该领域的丰富实战经验,我强烈推荐。”–Terence Parr,旧金山大学计算机科学和数据科学教授,语法分析器生成工具ANTLR之父
评论
还没有评论。