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。

时间: 2024-10-27 14:42:55

Apache Spark机器学习2.6 特征提取的相关文章

《 Apache Spark机器学习.》导读

本节书摘来自华章出版社< Apache Spark机器学习.>一书中作者[美] 刘永川(Alex Liu) 著 闫龙川 高德荃 李君婷 译  前 言 作为数据科学家和机器学习专业人员,我们的工作是建立模型进行欺诈检测.预测客户流失,或者在广泛的领域将数据转换为洞见.为此,我们有时需要处理大量的数据和复杂的计算.因此,我们一直对新的计算工具满怀期待,例如Spark,我们花费了很多时间来学习新工具.有很多可用的资料来学习这些新的工具,但这些资料大多都由计算机科学家编写,更多的是从计算角度来描述.

Apache Spark机器学习.1.4 MLlib

1.4 MLlib MLlib是一个可扩展的Spark机器学习库,包括很多常用的机器学习算法.MLlib内置的算法如下: 以向量和矩阵形式处理数据 基本的统计计算,例如:汇总统计和相关性.简单随机数生成.分层抽样.执行简单的假设检验 分类和回归建模 协同过滤 聚类 降维 特征提取与转换 频繁模式挖掘 开发优化 PMML模型导出 Spark MLlib还处在活跃开发阶段,预计每次新版发布都会有新的算法加入其中. MLlib符合Apache Spark的计算哲学,简单易用,性能卓越. MLlib使用

Apache Spark机器学习.1.7 机器学习工作流示例

1.7 机器学习工作流示例 为了进一步了解学习机器学习的工作流,在这里让我们学习一些例子. 本书后续章节会研究风险建模.欺诈检测.客户视图.流失预测和产品推荐.对于诸如此类的项目,目标往往是确定某些问题的原因,或者建立一个因果模型.下面是使用工作流建立一个因果模型的一个例子. 1.检查数据结构,以确保更好地理解数据: 数据是横截面数据吗?是隐含着时间信息的合并数据吗? 是否使用了分类变量? 2.检查缺失值: 不知道或者忘记了一个答案可能会被记录为一个中立或特殊的类别 一些变量可能有很多缺失值 根

Apache Spark机器学习.2.1 访问和加载数据集

摘要 Spark机器学习的数据准备 机器学习从业者和数据科学家时常耗费70%或80%的时间为机器学习项目准备数据.数据准备可能是很艰辛的工作,但是它影响到接下来的各方面工作,因此是非常必要和极其重要的.所以,在本章中,我们将讨论机器学习中所有必要的数据准备方面的内容,通常包括数据获取.数据清洗.数据集连接,再到特征开发,从而让我们为基于Spark平台构建机器学习模型准备好数据集.具体而言,我们将讨论前面提到的以下6个数据准备任务,然后在针对复用性和自动化的讨论中结束本章: 访问和加载数据集 开放

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

2.7 复用性和自动化 本节我们将讨论数据集组织方法.预处理工作流方法,然后使用Apache Spark pipeline模型进行表示,并实现工作流.然后,我们将评估数据预处理的自动化解决方案. 学完本节,我们应能够使用Spark pipeline模型来表示和实现数据集预处理工作流,理解一些基于Apache Spark的自动化解决方案. 2.7.1 数据集预处理工作流 数据准备工作是从数据清洗到标识匹配,再由数据重组到特征提取,能以某种形式进行组织,反映了一步一步开展机器学习数据集准备的有序过程

Apache Spark机器学习.2.4 数据集重组

2.4 数据集重组 本节,我们介绍数据集重组技术.我们将讨论一些特殊的Spark数据重组特征,以及一些可以用在Spark notebook中基于R语言数据重组的特别方法. 学习完本节,我们可以根据不同的机器学习需要进行数据集重组. 2.4.1 数据集重组任务 数据集重组虽然听起来比较容易,但还是很有挑战,并且非常耗时. 有两个常见的数据重组任务:一是,获取一个用于建模的数据子集:二是,以更高的层次汇总数据.例如,我们有学生数据,但是我们需要一些班级层面的数据集.为此,我们需要计算学生的一些属性,

Apache Spark机器学习.1.5 Spark RDD和DataFrame

1.5 Spark RDD和DataFrame 本节关注数据以及Spark如何表示和组织数据.我们将介绍Spark RDD和DataFrame技术. 通过本节的学习,读者将掌握Spark的两个关键概念:RDD和DataFrame,并将它们应用于机器学习项目. 1.5.1 Spark RDD Spark主要以一种分布式项集合的形式进行数据抽象,称之为弹性分布式数据集(Resilient Distributed Dataset,RDD).RDD是Spark的关键创新,使其比其他框架计算更加快速和高效

Apache Spark机器学习.1.1 Spark概述和技术优势

摘要 Spark机器学习简介 本章从机器学习和数据分析视角介绍Apache Spark,并讨论Spark中的机器学习计算处理技术.本章首先概括介绍Apache Spark,通过与MapReduce等计算平台进行比较,展示Spark在数据分析中的技术优势和特点.接着,讨论如下五个方面的内容: 机器学习算法与程序库 Spark RDD和DataFrame 机器学习框架 Spark pipeline技术 Spark notebook技术 以上是数据科学家或机器学习专业人员必须掌握的五项最重要的技术内容

Apache Spark机器学习.1.8 Spark notebook简介

1.8 Spark notebook简介 在本节中,我们首先讨论有关面向机器学习的notebook方法.然后,我们介绍R Markdown,以其作为一个成熟的notebook案例,最后介绍Spark中的R notebook. 学习完本节,读者将掌握notebook相关的方法和概念,并为将其用于管理和开发机器学习项目做好准备. 1.8.1 面向机器学习的notebook方法 notebook已经成为众人青睐的机器学习工具,因为该工具既能动态驱动,还具备可重复生成的特点. 大部分notebook接口