zl程序教程

您现在的位置是:首页 >  硬件

当前栏目

《Scala机器学习》一一1.5 使用Scala和Spark的Notebook工作

机器scala学习Spark 工作 1.5 一一 Notebook
2023-09-11 14:19:11 时间

本节书摘来自华章计算机《Scala机器学习》一书中的第1章,第1.5节,作者:[美] 亚历克斯·科兹洛夫(Alex Kozlov),更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.5 使用Scala和Spark的Notebook工作

通常,这五种数字汇总方式不足以对数据形成初步认识。描述性统计(descriptive statistics)的术语非常通用,并且可以采用非常复杂的方法来描述数据。分位数和帕雷托图(Pareto chart)都是描述性统计的例子,当分析一个以上的属性时,相关性也是。在大多数情况下都能查阅到这些数据汇总的方法,但通过具体的计算来理解这些方法也很重要。
Scala或者Spark Notebook(https://github.com/Bridgewater/scala-notebook, https://github. com/andypetrella/spark-notebook)记录了完整的执行过程,并且保存为一个基于JSON的*.snb文件。Spark Notebook项目可以从http://spark-notebook.io?上下载,本书提供了一个例子文件Chapter01.snb。对于Spark的使用,会在第3章中进行更详细的讨论。
Spark可以运行在本地模式下,这是一种特殊情形。即使在本地模式下,Spark也可以在单机上进行分布式计算,不过会受机器的CPU核(或超线程)的数量限制。对配置进行简单修改后,Spark就可在一个分布式集群上运行,并能使用多个分布式节点上的资源。
下面这组命令可用于下载Spark Notebook,并从代码库中复制所需的文件:
image

在浏览器地址栏上输入http://localhost:9000来打开Notebook,具体如图1-2所示:
image

图1-2 以列表形式来展示Spark Notebook的首页
通过点击来打开Chapter01 notebook。语句被组织成多个单元,并可通过点击顶部那个向右的小箭头来执行每个单元(其结果如图1-3所示)。也可通过菜单Cell→Run All来一次性运行所有的单元。
首先来观察一下离散的变量。比如得到另一些观察属性。如果像下面的代码影响了标签的分布,就不可能这样做:
image

在MacBook Pro上第一次读入这个数据集可能需要几分钟,但是Spark会把数据缓存在内存中,随后的汇总只需要一秒钟左右。Spark Notebook给出了数据值的分布,如图1-4所示。
通过查看离散变量对的交叉表计数(使用http://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.sql.DataFrameStatFunctions)来理解变量之间相互依赖的关系。DataFrameStatFunctions不支持相关度量计算,如卡方等(见图1-5)。
image

图1-3 执行notebook中的前几个单元任务
image

图1-4 计算分类字段的值的分布

image

从这里可以看出:最流行的服务是private,并且和SF 标志相关。分析依赖关系的另一种方法是看为0的项。比如,S2和S3标志明显和SMTP以及FTP流量相关,因为其他项的值都是0。
当然,最有趣的是与目标变量的相关性,但这些都可通过监督学习算法(在第3章和第5章会详细介绍)来更好地得到。
类似地,可以通过dataFrame.stat.corr()和dataFrame.stat.cov()函数计算数值变量的相关性(见图1-6)。该类支持皮尔森相关系数。另外,也可以直接在Parquet文件上使用标准的SQL语句:
image

最后计算百分数。这通常会对整个数据集排序,其代价非常大。但如果要比较的是第一个或最后一个,通常可对计算进行优化:
image

从Spark Notebook的部分示例代码可看出计算更通用的精确百分位数会有更高的代价。

image


客户流失?来看看大厂如何基于spark+机器学习构建千万数据规模上的用户留存模型 ⛵ 如何在海量用户中精准预测哪些客户即将流失?本文结合音乐流媒体平台 Sparkify 数据,详细讲解一个客户流失建模预测案例的全流程:探索性数据分析 EDA、数据处理、进一步数据探索、建模优化、结果评估。【代码与数据集亲测可运行】
图解大数据 | 建模与超参调优@Spark机器学习 本文介绍Spark中用于大数据机器学习的板块MLlib/ML,讲解分类算法、回归算法、聚类算法和PCA降维算法的代码实践,并讲解超参数调优和交叉验证、训练集验证集切分等重要知识点。
图解大数据 | 工作流与特征工程@Spark机器学习 本文介绍Spark中用于大数据机器学习的板块MLlib/ML,讲解机器学习工作流(Pipeline)及其构建方式,并详解讲解基于DataFrame的Spark ML特征工程,包括二值化、定边界离散化、标准化、特征抽取等。
大数据 | Spark机器学习工作流开发指南 Spark.ml是在Spark 1.2开始引入的一个包,它旨在提供一套统一的高级API,帮助用户创建和优化实用的机器学习工作流,它在原来的MLlib的基础上进行了大量的改进和优化,让Spark生态更见坚不可摧,本文就来详细介绍一下Spark机器学习工作流的基本概念和用法。