Apache Spark机器学习2.7 复用性和自动化

简介:

2.7 复用性和自动化


本节我们将讨论数据集组织方法、预处理工作流方法,然后使用Apache Spark pipeline模型进行表示,并实现工作流。然后,我们将评估数据预处理的自动化解决方案。

学完本节,我们应能够使用Spark pipeline模型来表示和实现数据集预处理工作流,理解一些基于Apache Spark的自动化解决方案。

2.7.1 数据集预处理工作流

数据准备工作是从数据清洗到标识匹配,再由数据重组到特征提取,能以某种形式进行组织,反映了一步一步开展机器学习数据集准备的有序过程。换言之,所有的数据准备工作可以被组织为一个工作流程。

为工作流组织数据清理可以帮助实现复用性工作和自动化,对于机器学习从业者而言极具价值,这是因为机器学习从业者和数据科学家往往要花费工作时间的80%用于数据清洗和预处理。

在大多数机器学习项目中,包括后续章节中要讨论的,数据科学家需要把数据划分训练数据集、测试数据集和验证数据集。这里,需要对训练数据集做的预处理同样会重复应用于测试数据集和验证数据集。仅以此为由,利用工作流进行复用将节省机器学习从业者大量时间,也有利于避免许多错误。

使用Spark表示和实现数据预处理的工作流有独特优势,其中包括:

不同来源之间的数据流无缝集成。

这是首要且非常重要的一步。

可用MLlib和GraphX数据处理库。

正如前面章节中指出,构建基于MLlib和GraphX的库使得数据清洗更加容易。

避免与速度较慢的脱机表连接。

Spark SQL比SQL运行速度快。

操作被自然地并行执行,速度显著提升。

并行计算由Apache Spark提供;同时,优化是Spark提供的另一个优势。

Spark pipeline API使得开发、部署数据清理和数据预处理工作流特别容易。

2.7.2 基于Spark pipeline的数据集预处理

作为案例,SampleClean是数据预处理系统的一部分——特别适于数据清洗和对象分析工作。

为了更好地学习,我们鼓励用户把SampleClearn和R notebook相结合,然后利用Apache Spark pipeline来组织工作流。

正如在前面的章节中讨论的,为完成数据预处理,使其可用,我们需要至少以下步骤:

1.数据清洗,处理缺失情况。

2.对象分析,解决对象问题。

3.重组数据,覆盖子集和汇总数据。

4.连接数据。

5.基于现有特征开发新特征。

对于一些最基本的预处理,我们可以用几行R语言代码组织成工作流:

 

然后,我们使用R语言函数、subset、aggregate和merge重组和连接数据集。

上述在R notebook上开展的工作,通过结合使用SampleClearn和特征开发,完成工作流。

然而,在实际工作中,预处理工作流会更加复杂,并可能会涉及反馈。

2.7.3 数据集预处理自动化

Spark新的pipeline模型能较好地表示工作流。

一旦所有数据预处理步骤经过组织进入工作流,自动化将变得更容易。

Databricks是一个端到端的解决方案,目的是更容易地构建一个从数据采集到生成的pipeline。同样的概念也适用于R notebook:你可以规划R notebook在现有的或新的Spark集群上运行作业。每个作业运行的结果,包括可视化,都可以进行浏览,这使得数据科学家的工作成果可以更简便快速地投入到生产。

 

这里有一点很重要:数据准备可以将输出转换为DataFrame。然后,可以很容易地与机器学习pipeline结合,全部实现自动化。

例如,最常见的高级分析任务可以使用MLlib新的pipeline API。例如,下面的代码创建一个简单的文本分类pipeline,pipeline由tokenizer、散列词频特征提取机和逻辑回归组成:

 

建立好pipeline之后,我们就可以用它直接在DataFrame上进行训练模型:

 

上面的代码,我们将在后面的章节中进行更多讨论。

2.2.3节中有如下4个做案例说明的数据表:

 

 

基于这组数据集,我们进行了:

1.数据清洗。

2.一致性匹配。

3.数据集重组。

4.数据集连接。

5.特征提取,然后开展数据连接、特征选择。

为了实现上述工作,我们可以使用R notebook将这些工作组织为可自动化的工作流,也可求助于Spark pipeline。

完成上述所有工作后,我们就可以开展机器学习了。


 

 

相关文章
|
2月前
|
机器学习/深度学习 数据采集 监控
如何使用机器学习模型来自动化评估数据质量?
【10月更文挑战第6天】如何使用机器学习模型来自动化评估数据质量?
|
27天前
|
机器学习/深度学习 数据采集 监控
如何使用机器学习模型来自动化评估数据质量?
如何使用机器学习模型来自动化评估数据质量?
|
1月前
|
机器学习/深度学习 数据采集 运维
智能化运维:机器学习在故障预测和自动化响应中的应用
智能化运维:机器学习在故障预测和自动化响应中的应用
55 4
|
1月前
|
机器学习/深度学习
自动化机器学习研究MLR-Copilot:利用大型语言模型进行研究加速
【10月更文挑战第21天】在科技快速发展的背景下,机器学习研究面临诸多挑战。为提高研究效率,研究人员提出了MLR-Copilot系统框架,利用大型语言模型(LLM)自动生成和实施研究想法。该框架分为研究想法生成、实验实施和实施执行三个阶段,通过自动化流程显著提升研究生产力。实验结果显示,MLR-Copilot能够生成高质量的假设和实验计划,并显著提高任务性能。然而,该系统仍需大量计算资源和人类监督。
32 4
|
1月前
|
机器学习/深度学习 数据采集 监控
如何使用机器学习模型来自动化评估数据质量?
如何使用机器学习模型来自动化评估数据质量?
|
2月前
|
分布式计算 大数据 Apache
利用.NET进行大数据处理:Apache Spark与.NET for Apache Spark
【10月更文挑战第15天】随着大数据成为企业决策和技术创新的关键驱动力,Apache Spark作为高效的大数据处理引擎,广受青睐。然而,.NET开发者面临使用Spark的门槛。本文介绍.NET for Apache Spark,展示如何通过C#和F#等.NET语言,结合Spark的强大功能进行大数据处理,简化开发流程并提升效率。示例代码演示了读取CSV文件及统计分析的基本操作,突显了.NET for Apache Spark的易用性和强大功能。
50 1
|
2月前
|
机器学习/深度学习 供应链 搜索推荐
机器学习驱动的工厂自动化
机器学习驱动的工厂自动化是一种利用先进的机器学习技术来提升生产效率、降低成本和提高产品质量的智能制造方法。
40 2
|
2月前
|
机器学习/深度学习 人工智能 安全
自动化测试的未来:AI与机器学习的结合
随着技术的发展,软件测试领域正迎来一场革命。自动化测试,一度被认为是提高效率和准确性的黄金标准,如今正在被人工智能(AI)和机器学习(ML)的浪潮所推动。本文将探讨AI和ML如何改变自动化测试的面貌,提供代码示例,并展望这一趋势如何塑造软件测试的未来。我们将从基础概念出发,逐步深入到实际应用,揭示这一技术融合如何为测试工程师带来新的挑战和机遇。
70 3
|
2月前
|
机器学习/深度学习 数据采集 运维
智能化运维:机器学习在故障预测和自动化响应中的应用
【10月更文挑战第1天】智能化运维:机器学习在故障预测和自动化响应中的应用
69 3
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
自动化测试的未来:AI与机器学习的融合
【9月更文挑战第29天】在软件测试领域,自动化测试一直是提高测试效率和质量的关键。随着人工智能(AI)和机器学习(ML)技术的飞速发展,它们正逐步渗透到自动化测试中,预示着一场测试革命的来临。本文将探讨AI和ML如何重塑自动化测试的未来,通过具体案例展示这些技术如何优化测试流程,提高测试覆盖率和准确性,以及它们对测试工程师角色的影响。
96 7

推荐镜像

更多