Apache Spark机器学习2.6 特征提取

简介:

2.6 特征提取


在本节,我们的关注点将转向特征提取,特征提取是根据工作数据集中可用特征或信息扩展为新的特征或者变量。与此同时,我们将讨论一些Apache Spark中特征提取的特殊功能,以及Spark中与特征相关的便捷解决方案。

学完本节之后,我们能够针对各种各样的机器学习项目开发并组织特征。

2.6.1 特征开发的挑战

大部分的大数据机器学习项目通常都不能直接使用大数据集。例如,使用网络日志数据时,它经常以随机文本集形式呈现,显得非常混乱,我们需要从中提取对机器学习有用的信息和特征。例如,我们需要从网络日志数据提取点击次数和展示次数,这样才能使用许多文本挖掘工具和算法。

对于任何特征提取,机器学习从业者需要决定:

采用什么信息,生成哪些特征

使用何种方法和算法

提取什么特征取决于以下几种情况:

数据可用性以及数据特性,比如处理数据缺失情况的难易程度

可用的算法,尽管有很多的算法可用于数据元素的数字组合,但较缺乏文本操作

算法

领域知识,因为涉及解读特征的能力

总体来说,下面几个常用的技术可用于追踪特征:

数据描述

数据合并

时序转换

地理相关技术

主成分分析(PCA)

特征准备的另一项工作是从数百上千个可用特征中进行选择,然后用于我们的机器学习项目。在机器学习中,特别是监督学习,手头上的普遍问题常常是根据一组预测性特征来预测结果。在大数据时代,乍看之下,会自然而然认为我们拥有的特征越多,预测效果会越好。然而,随着特征量的增加也会导致一些问题,如增加计算时间,也会导致生成结果的解读性差。

大多数情况下,在特征准备阶段,机器学习从业者经常使用与回归模型相关的特征选择方法和算法。

2.6.2 基于Spark MLlib的特征开发

特征提取可以使用Spark SQL实现,同时,Spark MLlib也有一些特殊函数完成此项任务,例如TF-IDF和Word2Vec。

MLlib和R语言都有主成分分析包,可以用于特征开发。

如我们所知,在2.2.3节,我们有4个数据表可用于展示说明:

 

在这里,我们可以对第三方数据应用特征提取技术,然后对最终合并的(连接)数据集进行特征选择。

基于Spark MLlib,我们可以用下面的命令调用TF-IDF:

 

另外,我们也可以应用Word2Vec,如下面的例子所示。

下面的例子(在Scala中)首先加载一个文本文件,把它解析为一个Seq[String] 类型的RDD,再构建一个Word2Vec实例,之后使用数据拟合Word2VecModel。然后,我们可以显示指定的前40个单词的同义词。这里,我们假定计划提取的文件名为text8,并和运行的Spark shell在同一个目录下。运行下面的代码:

 

 

 

有关使用Spark MLlib进行特征提取的更多信息,请访问:http://spark.apache.org/docs/latest/mllib-feature-extraction.html。

2.6.3 基于R语言的特征开发

前面提到了4个数据表:

 

正如前面讨论的,我们可以对第三方数据应用特征提取技术,然后对最终合并的(连接)数据集进行特征选择。

如果我们在R语言中利用Spark R notebook实现它们,就必须用到一些R程序包。如果使用ReporteRs,我们可以执行以下命令:

 

关于ReporteRsR程序包的更多信息请访问:https://cran.r-project.org/web/packages/ReporteRs/ReporteRs.pdf。

相关文章
|
20天前
|
机器学习/深度学习 分布式计算 大数据
阿里云 EMR Serverless Spark 在微财机器学习场景下的应用
面对机器学习场景下的训练瓶颈,微财选择基于阿里云 EMR Serverless Spark 建立数据平台。通过 EMR Serverless Spark,微财突破了单机训练使用的数据规模瓶颈,大幅提升了训练效率,解决了存算分离架构下 Shuffle 稳定性和性能困扰,为智能风控等业务提供了强有力的技术支撑。
141 15
|
5月前
|
分布式计算 大数据 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的易用性和强大功能。
130 1
|
8月前
|
分布式计算 大数据 Spark
Spark大数据处理:技术、应用与性能优化(全)PDF书籍推荐分享
《Spark大数据处理:技术、应用与性能优化》深入浅出介绍Spark核心,涵盖部署、实战与性能调优,适合初学者。作者基于微软和IBM经验,解析Spark工作机制,探讨BDAS生态,提供实践案例,助力快速掌握。书中亦讨论性能优化策略。[PDF下载链接](https://zhangfeidezhu.com/?p=347)。![Spark Web UI](https://img-blog.csdnimg.cn/direct/16aaadbb4e13410f8cb2727c3786cc9e.png#pic_center)
196 1
Spark大数据处理:技术、应用与性能优化(全)PDF书籍推荐分享
|
7月前
|
分布式计算 Hadoop 大数据
大数据处理框架在零售业的应用:Apache Hadoop与Apache Spark
【8月更文挑战第20天】Apache Hadoop和Apache Spark为处理海量零售户数据提供了强大的支持
112 0
|
7月前
|
分布式计算 Serverless 数据处理
EMR Serverless Spark 实践教程 | 通过 Apache Airflow 使用 Livy Operator 提交任务
Apache Airflow 是一个强大的工作流程自动化和调度工具,它允许开发者编排、计划和监控数据管道的执行。EMR Serverless Spark 为处理大规模数据处理任务提供了一个无服务器计算环境。本文为您介绍如何通过 Apache Airflow 的 Livy Operator 实现自动化地向 EMR Serverless Spark 提交任务,以实现任务调度和执行的自动化,帮助您更有效地管理数据处理任务。
273 0
|
9月前
|
分布式计算 大数据 数据处理
Apache Spark在大数据处理中的应用
Apache Spark是大数据处理的热门工具,由AMPLab开发并捐赠给Apache软件基金会。它以内存计算和优化的执行引擎著称,提供比Hadoop更快的处理速度,支持批处理、交互式查询、流处理和机器学习。Spark架构包括Driver、Master、Worker Node和Executor,核心组件有RDD、DataFrame、Dataset、Spark SQL、Spark Streaming、MLlib和GraphX。文章通过代码示例展示了Spark在批处理、交互式查询和实时数据处理中的应用,并讨论了其优势(高性能、易用性、通用性和集成性)和挑战。【6月更文挑战第11天】
233 6
|
8月前
|
分布式计算 Apache Spark
|
9月前
|
分布式计算 Spark 大数据
深入探究Apache Spark在大数据处理中的实践应用
【6月更文挑战第2天】Apache Spark是流行的开源大数据处理框架,以其内存计算速度和低延迟脱颖而出。本文涵盖Spark概述、核心组件(包括Spark Core、SQL、Streaming和MLlib)及其在数据预处理、批处理分析、交互式查询、实时处理和机器学习中的应用。通过理解Spark内部机制和实践应用,可提升大数据处理效率,发挥其在各行业的潜力。
|
10月前
|
机器学习/深度学习 数据采集 分布式计算
【机器学习】Spark ML 对数据进行规范化预处理 StandardScaler 与向量拆分
标准化Scaler是数据预处理技术,用于将特征值映射到均值0、方差1的标准正态分布,以消除不同尺度特征的影响,提升模型稳定性和精度。Spark ML中的StandardScaler实现此功能,通过`.setInputCol`、`.setOutputCol`等方法配置并应用到DataFrame数据。示例展示了如何在Spark中使用StandardScaler进行数据规范化,包括创建SparkSession,构建DataFrame,使用VectorAssembler和StandardScaler,以及将向量拆分为列。规范化有助于降低特征重要性,提高模型训练速度和计算效率。
220 6
|
10月前
|
机器学习/深度学习 分布式计算 算法
【机器学习】Spark ML 对数据特征进行 One-Hot 编码
One-Hot 编码是机器学习中将离散特征转换为数值表示的方法,每个取值映射为一个二进制向量,常用于避免特征间大小关系影响模型。Spark ML 提供 OneHotEncoder 进行编码,输入输出列可通过 `inputCol` 和 `outputCol` 参数设置。在示例中,先用 StringIndexer 对类别特征编码,再用 OneHotEncoder 转换,最后展示编码结果。注意 One-Hot 编码可能导致高维问题,可结合实际情况选择编码方式。
158 6

热门文章

最新文章

推荐镜像

更多