书籍详情
《Scala机器学习:构建现实世界机器学习和深度学习项目》[39M]百度网盘|亲测有效|pdf下载
  • Scala机器学习:构建现实世界机器学习和深度学习项目

  • 出版社:机械工业出版社自营官方旗舰店
  • 出版时间:2019-11
  • 热度:4755
  • 上架时间:2024-06-30 09:08:33
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

产品特色


内容简介

《Scala机器学习:构建现实世界机器学习和深度学习项目》通过“保险赔偿程度分析”“电信客户流失分析与预测”“基于历史和实时数据预测高频比特币价格”“人口规模聚类与民族预测”“主题建模:更好地洞察大型文本”“开发基于模型的电影推荐引擎”“使用 Q-learning和Scala Play框架进行期权交易”“使用深度神经网络进行银行电话营销的客户订购评估”“使用自动编码器和异常检测进行欺诈分析”“使用递归神经网络识别人类活动”和“使用卷积神经网络进行图像分类”等11个完整的项目,结合Spark ML、H2O、Zeppelin、DeepLearning4j和MXNet等流行机器学习库以及一些经典数据集为读者介绍了机器学习项目的详细开发流程。

《Scala机器学习:构建现实世界机器学习和深度学习项目》主要针对数据分析师、深度学习爱好者和开发人员,他们虽具有一定的背景知识,但是对于实际项目的开发过程接触得不多。通过本书的学习,读者不仅可以清楚地了解到实际项目的开发流程,而且可以对目前流行的机器学习算法、机器学习库、经典数据集、Scala函数式编程概念和Maven、SBT等构建工具等内容有更深入的认识,并能够在生产就绪环境中开发,构建和部署研究机器学习项目。


作者简介

本书作者Md. Rezaul Karim是德国弗劳恩霍夫应用信息技术研究所(FIT)的研究科学家,也是德国亚琛工业大学的博士。在加入FIT之前,他曾先后在韩国三星电子公司担任首席工程师,在爱尔兰国家大数据分析研究中心Insight担任研究员。他在C++、Java、R、Scala和Python方面拥有多年的研发经验,发表了多篇关于生物信息学、大数据和深度学习的研究论文,具有Spark、Zeppelin、Hadoop、Keras、Scikit-Learn、TensorFlow、DeepLearning4j、MXNet和H2O的实际工作经验。

目录

译者序

原书前言

第 1章 保险赔偿程度分析 // 1

1.1 机器学习和学习过程 //1

1.1.1 典型的机器学习工作过程 // 2

1.2 超参数调整和交叉验证 //4

1.3 分析和预测保险赔偿程度 //6

1.3.1 动机 // 6

1.3.2 数据集的描述 // 6

1.3.3 对数据集的探索性分析 // 6

1.3.4 数据预处理 // 10

1.4 LR用于预测保险索赔的严重性 //13

1.4.1 使用 LR开发保险赔偿严重性预测模型 // 14

1.5 GBT回归用于预测保险索赔严重性 //18

1.6 使用随机森林回归算法提升性能 //23

1.6.1 随机森林用于分类和回归 // 23

1.7 比较分析和模型部署 //29

1.7.1 基于 Spark的大规模数据集模型部署 // 33

1.8 小结 //34

第 2章 电信客户流失分析与预测 // 35

2.1 流失分析的原理以及实现 //35

2.2 流失分析过程 //36

2.2.1 数据集的描述 // 38

2.2.2 探索性分析(EDA)和特征工程 // 38

2.3 LR用于流失预测 //47

2.4 用于流失预测的 SVM //52

2.5 用于客户流失预测的 DT //55

2.6 用于预测客户流失的随机森林 //61

2.7 选择要部署的最佳模型 //66

2.8 小结 //68

第 3章 基于历史和实时数据预测高频比特币价格 // 69

3.1 比特币、加密货币和在线交易 //69

3.1.1 最先进的比特币自动交易 // 71

3.1.2 训练 // 72

3.1.3 预测 // 72

3.2 原型的高级数据管道 //73

3.3 收集历史和实时价格数据 //74

3.3.1 历史数据集 // 74

3.3.2 将历史数据转换为时间序列 // 75

3.3.3 通过 Cryptocompare API处理实时数据 // 77

3.4 针对预测的模型训练 //80

3.5 Web服务: Scala Play //85

3.5.1 通过 Akka Actor实现并发 // 86

3.5.2 Web服务工作流程 // 86

3.6 预测价格并评估模型 //91

3.7 使用 Scala Play框架来演示预测 //92

3.7.1 为何选择 RESTful架构 // 92

3.7.2 项目结构 // 93

3.7.3 运行 Scala Play Web应用程序 // 95

3.8 小结 //96

第 4章 人口规模聚类与民族预测 // 99

4.1 人口规模聚类和区域民族 //99

4.1.1 针对遗传变异的机器学习 // 100

4.2 1000基因项目数据集描述 //100

4.3 算法、工具和技术 //102

4.3.1 H2O和 Sparkling Water // 102

4.3.2 ADAM用于大规模基因组数据处理 // 105

4.3.3 无监督机器学习 // 106 4.3.4 K均值的原理 // 107

4.3.5 用于进行地理民族预测的 DNN // 108

4.4 配置编程环境 //110

4.5 数据预处理和特征工程 //112

4.5.1 模型训练和超参数调整 // 117

4.5.2 使用随机森林进行民族预测 // 123

4.6 小结 //126

第 5章 主题建模:更好地洞察大型文本 // 127

5.1 主题建模和文本聚类 //127

5.1.1 LDA算法的工作原理 // 129

5.2 使用 Spark MLlib和 Stanford NLP进行主题建模 //131

5.2.1 实现 // 131

5.3 其他主题模型与 LDA的可扩展性 //139

5.4 部署经过训练的 LDA模型 //140

5.5 小结 //144

第 6章 开发基于模型的电影推荐引擎 // 145

6.1 推荐系统 //145

6.1.1 协同过滤方法 // 145

6.1.2 效用矩阵 // 147

6.2 基于 Spark的电影推荐系统 //148

6.2.1 针对电影相似性基于商品的协同过滤 // 148

6.2.2 基于 Spark的模型推荐 // 153

6.3 选择和部署最佳模型 //161

6.4 小结 //164

第 7章 使用 Q -learning和 Scala Play框架进行期权交易 // 165

7.1 强化学习与监督学习和无监督学习 //165

7.1.1 使用强化学习 // 166

7.1.2 强化学习中的符号、策略和效用 // 166

7.2 简单 Q-learning算法实现 //169

7.2.1 Q-learning算法的组成部分 // 169

7.2.2 QLearning 模型验证 // 179 7.2.3 使用训练模型进行预测 // 179

7.3 使用 Q-learning开发期权交易 Web应用程序 //179

7.3.1 问题描述 // 180

7.3.2 实现期权交易 Web应用程序 // 182

7.3.3 评估模型 // 189

7.3.4 将期权交易应用程序封装为 Scala Web应用程序 // 191

7.3.5 运行和部署说明 // 197

7.3.6 模型部署 // 199

7.4 小结 //199

第 8章 使用深度神经网络进行银行电话营销的客户订购评估 // 200

8.1 通过电话营销进行客户订购评估 //200

8.1.1 数据集描述 // 200

8.1.2 安装 Apache Zeppelin并开始使用 // 202

8.1.3 对数据集的研究与分析 // 204

8.1.4 数字特征统计 // 214

8.1.5 实施客户订购评估模型 // 215

8.1.6 超参数调整和特征选择 // 225

8.2 小结 //227

第 9章 使用自动编码器和异常检测进行欺诈分析 // 228

9.1 异常值和异常检测 //228

9.2 自动编码器和无监督学习 //231

9.2.1 自动编码器的工作原理 // 231

9.2.2 使用自动编码器实现高效的数据表示 // 232

9.3 开发欺诈分析模型 //233

9.3.1 数据集的描述和使用线性模型 // 233

9.3.2 问题描述 // 234

9.3.3 准备编程环境 // 234

9.3.4 辅助类和方法 // 254

9.4 超参数调整和特征选择 //255

9.5 小结 //256

第 10章 使用递归神经网络识别人类活动 // 258

10.1 使用 RNN //258

10.1.1 上下文信息和 RNN的体系结构 // 258

10.1.2 RNN和长期依赖性问题 // 260

10.1.3 LSTM网络 // 261

10.2 使用 LSTM模型识别人类活动 //263

10.2.1 数据集的描述 // 263

10.2.2 为 Scala设置和配置 MXNet // 264

10.3 为 HAR实现 LSTM模型 //266

10.4 调整 LSTM超参数和 GRU //281

10.5 小结 //283

第 11章 使用卷积神经网络进行图像分类 // 284

11.1 DNN的图像分类和缺点 //284

11.2 CNN架构 //285

11.2.1 卷积运算 // 286

11.2.2 池化层和填充操作 // 287

11.2.3 DL4j中的卷积和子采样操作 // 288

11.3 使用 CNN进行大规模图像分类 //295

11.3.1 问题描述 // 296

11.3.2 图像数据集的描述 // 296

11.3.3 整个项目的工作流程 // 297

11.3.4 CNN图像分类的实现 // 298

11.4 调整和优化 CNN超参数 //315

11.5 小结 //316


前言/序言

机器学习通过将数据转化为可操作的智能而对学术界和工业界产生了巨大影响。另一方面, Scala在过去几年中,特别是在数据科学和分析领域,其使用率稳步上升。本书是为数据科学家、数据工程师和深度学习爱好者编写的,他们具有复杂数值计算的扎实背景,但想了解更多可以实际操作的机器学习应用开发方法。

因此,如果读者精通机器学习概念并希望通过使用 Scala的强大功能深入研究实际实现来扩展知识,那么本书就是读者所需要的!通过书中 11个端到端项目,读者将熟悉如 Spark ML、H2O、Zeppelin、DeepLearning4j和 MXNet等流行的机器学习库。

阅读本书并练习所有项目后,读者将能够驾驭数值计算、深度学习和函数式编程来执行复杂的数值任务,并可以在生产就绪的环境中开发、构建和部署研究商业项目。

本书并不要求从封面一页页地阅读到封底,读者完全可以从感兴趣的任何页面来开始阅读,同时欢迎任何类型的改进反馈。

快乐阅读!

本书面向的读者如果想利用 Scala及 Spark ML、Deeplearning4j、H2O、MXNet和 Zeppelin等开源库的强大功能来理解大数据,那么本书非常适合。同时建议对 Scala和 Scala Play Framework有深入的了解,如果基本熟悉 ML技术将更好。

本书涵盖的内容第 1章 保险赔偿程度分析,讲解如何运用一些广泛使用的回归技术开发用于分析保险赔偿程度的预测模型,将演示如何在实际生产环境中部署该模型。

第 2章 电信客户流失分析与预测,将使用 Orange Telecoms Churn数据集,包括清洗后的客户活动和流失标签、指定客户是否取消订阅,以开发真实的预测模型。

第 3章 基于历史和实时数据预测高频比特币价格,展示了如何开发收集历史和实时数据的真实项目。项目预测即将到来的几周、几个月等时段的比特币价格,此外还将演示如何在比特币中生成用于在线交易的简单信号,最后本章使用 Scala Play框架将整个应用程序打包为 Web应用程序。

第 4章 人口规模聚类与民族预测,使用来自 1000 Genome项目的基因组变异数据,将 K均值聚类方法应用于可扩展的基因组数据分析,目标是聚集大规模人口的基因型变异,最后通过训练深度神经网络和随机森林模型来预测民族。

第 5章 主题建模:更好地洞察大型文本,展示了如何利用基于 Spark的 LDA算法和 Stanford NLP处理大规模原始文本来开发主题建模应用程序。

第 6章 开发基于模型的电影推荐引擎,展示了如何通过奇异值分解、 ALS和矩阵分原书前言解之间的互操作来开发可伸缩的电影推荐引擎,movie lens数据集将用于此端到端项目。

第 7章 使用 Q-learning和 Scala Play 框架进行期权交易,将在实际 IBM公司股票数据集上应用强化 QLearning算法,开发一个由批评和奖励驱动的期权交易应用程序,并使用Scala Play框架将整个应用程序打包为 Web应用程序。

第 8章 使用深度神经网络进行银行电话营销的客户订购评估,将展示如何解决称为客户订阅评估的现实问题,使用银行电话营销数据集训练 H2O深度神经网络,并评估了这种预测模型的性能。

第 9章 使用自动编码器和异常检测进行欺诈分析,将使用自动编码器和异常检测技术进行欺诈分析,使用 Worldline和布鲁塞尔自由大学( Université Libre de Bruxelles,ULB)机器学习小组在研究合作期间收集和分析的欺诈检测数据集。

第 10章 使用递归神经网络识别人类活动,该项目展示了如何使用名为 LSTM的RNN实现来使用智能手机传感器数据集进行人类行走、上楼等活动的识别。

第 11章 使用卷积神经网络的图像分类,演示了如何在称为 Yelp的真实图像数据集上使用卷积神经网络开发预测分析应用程序,如图像分类。

如何充分利用本书本书的目标人群是开发人员、数据分析师和深度学习爱好者,他们没有太多的复杂数值计算背景,但却想知道深度学习的相关内容,所以建议读者对 Scala及其函数式编程概念有深入的了解。此外,掌握本书的全部内容还需要对 Spark ML、H2O、Zeppelin、DeepLearning4j和 MXNet的一些知识有所了解,对构建工具 Maven和 SBT等有基本的了解。

书中所有示例都是在 Ubuntu 16.04 LT 64位和 Windows 10 64位系统上使用 Scala语言实现的,同时还需要如下组件(最好是最新版本):

. Apache Spark 2.0.0(或更高版本);. MXNet、Zeppelin、DeepLearning4j和 H2O(请参阅本章和附带的 pom.xml文件中的详细信息);. Hadoop 2.7(或更高版本);. Java(JDK和 JRE)1.7 + / 1.8 +;. Scala 2.11.x(或更高版本);. 带有 Maven插件( 2.9+)、Maven编译器插件( 2.3.2+)和 Maven assembly插件(2.4.1+)的 Eclipse Mars或 Luna(最新版本);. IntelliJ IDE;. SBT插件和 Scala Play框架安装。

对于处理器而言,至少是 Core i3以上,推荐使用 Core i5,当然使用 Core i7更好,这将获得最佳的性能,同时多核处理可以提供更快的数据处理和可扩展性。对于内存而言,独立模式下至少使用 8GB内存,单个虚拟机至少使用 32GB内存,对于集群使用更高内存。对于存储空间而言,应该根据将要处理的数据集的大小来使用足够的存储空间,以运行繁重的作业,推荐至少有 50GB的可用磁盘存储空间用于独立存储器和 SQL仓库。

操作系统可以使用 Linux的 Debian、Ubuntu、Fedora、RHEL、CentOS等发行版,例如如果使用 Ubuntu,建议使用 14.04(LTS)64位或更高版本的完整安装,虚拟机采用 VM-Ware player 12或 VirtualBox,当然也可以在 Windows (XP/7/8/10)或 Mac OS X (10.4.7+)系统上运行 Spark作业。

下载示例代码文件可以使用账户登录 www.packtpub.com网站,然后下载本书的示例代码文件,如果在其他地方购买了本书,可以访问 www.packtpub.com/support并注册,示例代码文件将直接发送到注册邮箱中。

下载代码文件的步骤如下:

1)在 www.packtpub.com网站上登录或注册。

2)选择SUPPORT选项卡。

3)点击Code Downloads& Errata。

4)在搜索框中输入图书的名称,然后按照屏幕上的说明进行操作。下载文件后,请使用最新版本的压缩解压软件来解压缩文件夹,具体软件如下:

. 适用于 Windows系统的 WinRAR / 7-Zip;. 适用于 Mac系统的 Zipeg / iZip / UnRarX;. 适用于 Linux系统的 7-Zip / PeaZip。

下载彩色图片下面网址中的 PDF文件包含本书中使用的截图 /图表的彩色图片,读者可以在这里下载:http://www.packtpub.com/sites/default/.les/downloads/ScalaMachineLearningProjects_Col-orImages.pdf。

使用约定本书中使用了许多文本约定。

CodeInText:表示文本中的代码、数据库表名、文件夹名称、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter句柄。这是一个例子:“将下载的 WebStorm-10*.dmg磁盘映像文件挂载为系统中的另一个磁盘。

代码块设置如下:

val cv = new CrossValidator().setEstimator(pipeline).setEvaluator(new RegressionEvaluator).setEstimatorParamMaps(paramGrid).setNumFolds(numFolds)Scala函数代码块如下:

原书前言def variantId(genotype: Genotype): String = {val name = genotype.getVariant.getContigNameval start = genotype.getVariant.getStartval end = genotype.getVariant.getEnds"$name:$start:$end"}当希望引起读者对代码块的特定部分的注意时,相关的行或项目以黑体显示:

var paramGrid = new ParamGridBuilder() .addGrid(dTree.impurity, "gini" :: "entropy" :: Nil) .addGrid(dTree.maxBins, 3 :: 5 :: 9 :: 15 :: 23 :: 31 :: Nil) .addGrid(dTree.maxDepth, 5 :: 10 :: 15 :: 20 :: 25 :: 30 :: Nil) .build()所有命令行输入或输出的写法如下:

$ sudo mkdir Bitcoin$ cd Bitcoin黑体:表示在屏幕上出现的新术语、重要词语。例如菜单或对话框中的单词就像下面例子中一样出现在文本中,例子:“从管理面板中选择系统信息”。

警告或重要注意事项以这种方式给出。

提示和技巧以这种方式给出。



译者序

随着物联网、云计算和大数据的快速发展,人工智能基础理论、技术在此基础上日益成熟且迅速发展,目前人工智能技术广泛应用于各个领域并取得了令人满意的结果,呈现出全面进入商用阶段、冲击传统产业、改变全球经济生态的趋势,其广阔的应用前景和重大的战略意义,引起了世界的广泛关注,而机器学习是人工智能领域里最为重要的研究分支之一。

Scala语言是 Martin Odersky在 2004年研发的一门多范式编程语言,它跟 Java语言类似,它将面向对象和函数式编程结合在一个简洁的高级语言中,它的静态类型有助于避免复杂应用程序中的错误,且可以在 JVM和 JavaScript运行时构建高性能系统,同时可以轻松访问数量庞大的库生态系统。和 Java语言相比, Scala语言所具有的优势正如其名字全称 scalable所描述的那样,具有可伸缩性,可应对简单或者复杂的场景。在简单的应用场景中,可以像使用 Python语言一样当脚本语言使用;当面对复杂的应用场景时,可以使用其大量的原生方法和数据结构来完成较复杂的操作;当有性能要求时,可以通过重构来获取数十倍或者上百倍的速度提升。此外, Scala语言含有专为大规模数据处理而设计的快速通用计算引擎 Spark。目前 Twitter后台的很多应用就是使用 Scala语言编写的。

本书每一章使用一个项目来介绍目前十分流行的机器学习算法,相关代码采用 Scala语言描述,在相关章节描述了 Scala语言编程环境的配置和在不同平台中使用的注意事项。书中主要介绍了机器学习的学习过程、机器学习模型的超参数调优和交叉验证、 Scala Play框架、 H2O和 Apache Zeppelin的使用等相关内容。通过“保险赔偿程度分析”“电信客户流失分析与预测”“基于历史和实时数据预测高频比特币价格”“人口规模聚类与民族预测”“主题建模:更好地洞察大型文本”“开发基于模型的电影推荐引擎”“使用 Q-learning和 Scala Play框架进行期权交易”“使用深度神经网络进行银行电话营销的客户订购评估”“使用自动编码器和异常检测进行欺诈分析”“使用递归神经网络识别人类活动”和“使用卷积神经网络进行图像分类”等项目实现了线性回归,梯度提升树,随机森林, Logistic回归, SVM,决策树, K均值、 H2O民族预测,基于 LDA、Spark MLlib和 Standard NLP的主题建模,基于物品的电影协同过滤和相似性推荐,基于 Q-learning的期权交易算法,基于深度神经网络的客户订购评估,基于自动编码器和异常检测的欺诈分析,识别人类活动的 LSTM模型和能够进行图像分类的卷积神经网络等多个目前流行的机器学习模型或算法,并讨论了各个模型或者算法的调试方法以及在生产环境中的部署步骤。总之,本书涵盖了目前机器学习中大部分流行算法,通过对本书的学习,可以掌握机器学习的工作过程和不同算法的使用技巧,提高工程实战能力,能深入理解各种机器学习模型的基本原理。

本书主要由重庆工商大学人工智能学院张世勇老师翻译,重庆工商大学人工智能学院刘波老师参与了部分翻译工作,并负责全书的技术审稿,对本书的翻译提出了很多宝贵意见。

翻译本书的过程也是译者们不断学习的过程。为了保证专业词汇翻译的准确性,我们在翻译过程中查阅了大量相关资料。但由于时间和能力有限,书中内容难免出现差错,恳请读者批评指正。