编辑推荐
如果你想创建适用于实际生产环境的数据科学模型,那么Java将是你的****。Java可以调用各种强大的库(例如MLlib、Weka、DL4j等)。借助这些库,你可以使用Java高效地完成各种数据科学任务。
总之,通过学习本书的内容,读者能掌握各种处理问题的方法,学会如何把数据科学知识应用到实际生产环境中,以及编写分布式数据科学应用等。本书讲解的内容将在实际工作中派上大用场。
内容简介
现如今,数据科学已经成为一个热门的技术领域,它涵盖了人工智能的各个方面,例如数据处理、信息检索、机器学习、自然语言处理、数据可视化等。而Java作为一门经典的编程语言,在数据科学领域也有着杰出的表现。本书旨在通过Java编程来引导读者更好地完成数据科学任务。本书通过9章内容,详细地介绍了数据获取与清洗、索引的建立和检索数据、统计分析、数据学习、信息的提取、大数据处理、深度学习、数据可视化等重要主题。本书适合想通过Java解决数据科学问题的读者,也适合数据科学领域的专业人士以及普通Java开发人员阅读。
作者简介
Rushdi Shams毕业于加拿大韦仕敦大学,获得了机器学习应用博士学位,主攻方向是自然语言处理(Natural Language Processing,NLP)。在成为机器学习与NLP领域的专家之前,他讲授本科生与研究生课程。在YouTube上,他一直运营着一个名为“跟Rushdi一起学”(Learn with Rushdi)的频道,并且做得有声有色,该频道主要面向想学习计算机技术的朋友。
目录
- 第1章 获取数据与清洗数据 1
- 1.1 简介 2
- 1.2 使用Java从分层目录中提取所有文件名 3
- 准备工作 3
- 操作步骤 3
- 1.3 使用Apache Commons IO从多层目录中提取所有文件名 5
- 准备工作 5
- 操作步骤 5
- 1.4 使用Java 8从文本文件一次性读取所有内容 6
- 操作步骤 7
- 1.5 使用Apache Commons IO从文本文件一次性读取所有内容 7
- 准备工作 7
- 操作方法 8
- 1.6 使用Apache Tika提取PDF文本 8
- 准备知识 9
- 操作步骤 9
- 1.7 使用正则表达式清洗ASCII文本文件 11
- 操作步骤 11
- 1.8 使用Univocity解析CSV文件 12
- 准备工作 13
- 操作步骤 13
- 1.9 使用Univocity解析TSV文件 15
- 准备工作 15
- 操作步骤 16
- 1.10 使用JDOM解析XML文件 17
- 准备工作 17
- 操作步骤 18
- 1.11 使用JSON.simple编写JSON文件 20
- 准备工作 20
- 操作步骤 21
- 1.12 使用JSON.simple读取JSON文件 23
- 准备工作 24
- 操作步骤 24
- 1.13 使用JSoup从一个URL提取Web数据 26
- 准备工作 26
- 操作步骤 26
- 1.14 使用Selenium Webdriver从网站提取Web数据 29
- 准备工作 29
- 操作步骤 29
- 1.15 从MySQL数据库读取表格数据 32
- 准备工作 32
- 操作步骤 32
- 第2章 为数据建立索引与搜索数据 35
- 2.1 简介 35
- 2.2 使用Apache Lucene为数据建立索引 35
- 准备工作 36
- 操作步骤 40
- 工作原理 47
- 2.3 使用Apache Lucene搜索带索引的数据 50
- 准备工作 50
- 操作步骤 51
- 第3章 数据统计分析 56
- 3.1 简介 57
- 3.2 生成描述性统计 59
- 操作步骤 59
- 3.3 生成概要统计 60
- 操作步骤 60
- 3.4 从多种分布生成概要统计 61
- 操作步骤 62
- 更多内容 63
- 3.5 计算频率分布 64
- 操作步骤 64
- 3.6 计算字符串中的词频 65
- 操作步骤 65
- 工作原理 67
- 3.7 使用Java 8计算字符串中的词频 67
- 操作步骤 67
- 3.8 计算简单回归 68
- 操作步骤 69
- 3.9 计算普通最小二乘回归 70
- 操作步骤 70
- 3.10 计算广义最小二乘回归 72
- 操作步骤 72
- 3.11 计算两组数据点的协方差 74
- 操作步骤 74
- 3.12 为两组数据点计算皮尔逊相关系数 75
- 操作步骤 75
- 3.13 执行配对t检验 76
- 操作步骤 76
- 3.14 执行卡方检验 77
- 操作步骤 78
- 3.15 执行单因素方差分析(one-way ANOVA test) 79
- 操作步骤 79
- 3.16 执行K-S检验 81
- 操作步骤 81
- 第4章 数据学习Ⅰ 83
- 4.1 简介 83
- 4.2 创建与保存ARFF文件 84
- 操作步骤 87
- 4.3 对机器学习模型进行交叉验证 91
- 操作步骤 91
- 4.4 对新的测试数据进行分类 95
- 准备工作 95
- 操作步骤 96
- 4.5 使用过滤分类器对新测试数据分类 102
- 操作步骤 102
- 4.6 创建线性回归模型 105
- 操作步骤 106
- 4.7 创建逻辑回归模型 108
- 操作步骤 108
- 4.8 使用K均值算法对数据点
- 进行聚类 110
- 操作步骤 110
- 4.9 依据类别对数据进行聚类处理 113
- 操作方法 113
- 4.10 学习数据间的关联规则 116
- 准备工作 116
- 操作步骤 116
- 4.11 使用低层方法、过滤方法、元分类器方法选择特征/属性 118
- 准备工作 119
- 操作步骤 119
- 第5章 数据学习Ⅱ 125
- 5.1 简介 125
- 5.2 使用Java机器学习库(Java-ML)向数据应用机器学习 126
- 准备工作 126
- 操作步骤 128
- 5.3 使用斯坦福分类器对数据点分类 137
- 准备工作 137
- 操作步骤 140
- 工作原理 141
- 5.4 使用MOA对数据点分类 142
- 准备工作 142
- 操作步骤 144
- 5.5 使用Mulan对多标签数据点进行分类 147
- 准备工作 147
- 操作步骤 150
- 第6章 从文本数据提取信息 154
- 6.1 简介 154
- 6.2 使用Java检测标记(单词) 155
- 准备工作 155
- 操作步骤 155
- 6.3 使用Java检测句子 160
- 准备工作 160
- 操作步骤 160
- 6.4 使用OpenNLP检测标记(单词)与句子 161
- 准备工作 162
- 操作步骤 163
- 6.5 使用Stanford CoreNLP从标记中提取词根、词性,以及
- 识别命名实体 167
- 准备工作 167
- 操作步骤 169
- 6.6 使用Java 8借助余弦相似性测度测量文本相似度 171
- 准备工作 172
- 操作步骤 172
- 6.7 使用Mallet从文本文档提取主题 176
- 准备工作 177
- 操作步骤 179
- 6.8 使用Mallet对文本文档进行分类 184
- 准备工作 184
- 操作步骤 185
- 6.9 使用Weka对文本文档进行分类 189
- 准备工作 190
- 操作步骤 191
- 第7章 处理大数据 194
- 7.1 简介 194
- 7.2 使用Apache Mahout训练在线逻辑回归模型 195
- 准备工作 195
- 操作步骤 198
- 7.3 使用Apache Mahout应用在线逻辑回归模型 202
- 准备工作 202
- 操作步骤 203
- 7.4 使用Apache Spark解决简单的文本挖掘问题 207
- 准备工作 208
- 操作步骤 210
- 7.5 使用MLib的K均值算法做聚类 214
- 准备工作 214
- 操作步骤 214
- 7.6 使用MLib创建线性回归模型 217
- 准备工作 217
- 操作步骤 218
- 7.7 使用MLib的随机森林模型对数据点进行分类 222
- 准备工作 222
- 操作步骤 223
- 第8章 数据深度学习 229
- 8.1 简介 229
- 8.2 使用DL4j创建Word2vec神经网络 241
- 操作方法 241
- 工作原理 243
- 更多内容 246
- 8.3 使用DL4j创建深度信念神经网络 246
- 操作步骤 246
- 工作原理 250
- 8.4 使用DL4j创建深度自动编码器 254
- 操作步骤 254
- 工作原理 256
- 第9章 数据可视化 259
- 9.1 简介 259
- 9.2 绘制2D正弦曲线 260
- 准备工作 260
- 操作步骤 262
- 9.3 绘制直方图 266
- 准备工作 266
- 操作步骤 268
- 9.4 绘制条形图 273
- 准备工作 274
- 操作步骤 275
- 9.5 绘制箱线图或箱须图 279
- 准备工作 279
- 操作步骤 281
- 9.6 绘制散点图 285
- 准备工作 285
- 操作步骤 286
- 9.7 绘制甜圈图 289
- 准备工作 289
- 操作步骤 290
- 9.8 绘制面积图 294
- 准备工作 294
- 操作步骤 295