zl程序教程

您现在的位置是:首页 >  工具

当前栏目

Apache Spark机器学习3.3 特征准备

Apache机器学习Spark 准备 特征 3.3
2023-09-11 14:16:05 时间


在前面几节,我们选择了模型并且准备了监督学习所需的因变量。本节,我们需要准备自变量,他们是影响因变量因素(销售团队的成功)的所有特征。对于这项重要的工作,我们需要将400多个特征约减为合理的一组特征,以适应最终的建模需要。为此,我们使用PCA方法,利用专业知识,然后执行特征选择任务。

3.3.1 PCA

PCA是非常成熟且经常使用的特征约减方法,经常用来寻找一个小的变量集合以表示最显著的变化。严格地讲,PCA的目标是寻找一个低维度子空间来尽可能获取数据集的变化情况。

如果你使用MLlib,以下网址有几个示例代码,用户可以在Spark上使用、修改后运行PCA:http://spark.apache.org/docs/latest/mllib-dimensionality-reduction.html#principal-component-analysis-pca。更多关于MLlib的信息,请访问:https://spark.apache.org/docs/1.2.1/mllib-dimensionality-reduction.html。

考虑到R语言丰富的PCA算法,在本例中我们使用R语言。在R语言中,至少有5个PCA计算的函数,具体如下:

 

 

 

 

 

R语言Stats包中的prcomp 和princomp方法最常使用,并且具有较好的结果总结和绘制的函数。因此,我们将使用这两个方法。

3.3.2 使用专业知识进行分类分组

事情总是这样,如果可以使用一些专业知识,可以大幅提高特征筛选结果。

对于我们这个例子,数据分类是一个良好的开始,数据分类如下:

市场营销

培训

促销

团队管理

员工

产品

因此,我们针对每个数据分类执行一个PCA算法,共执行6次PCA算法。例如,对于团队分类,我们需要在73个特征或变量上执行PCA算法,以识别出能够全面表示我们所了解的团队信息的因素或维度。在这个练习中,我们找到2个维度来表示团队分类的73个特征。

对于员工分类,我们在103个特征或变量上执行PCA算法,以识别出能够全面表示我们所了解的员工信息的因素或维度。在这个练习中,我们找到2个维度来表示员工分类的103个特征。特征选择情况如下表所示:

分 类 因素的数量 因素的名称

团队 2 T1,T2

市场营销 3 M1,M2,M3

培训 3 Tr1,Tr2,Tr3

员工 2 S1,S2

产品 4 P1,P2,P3,P4

促销 3 Pr1,Pr2,Pr3

合计 17

 

PCA执行之后,我们在每个类型得到了2到4个特征,汇总情况如上表所示。

3.3.3 特征选择

特征选择主要用于消除特征冗余或不相关特征,但是由于以下原因一般在最后使用:

使模型易于理解

减少过拟合的机会

节约模型估计的时间和空间

在MLlib中,我们可以使用ChiSqSelector算法,具体如下所示:

 

在R语言中,我们可以使用R语言包来简化计算。在可选的R语言包中,CARET是经常使用的R语言包之一。

首先,作为练习,我们在所有400个特征上执行特征选择。

然后,我们从PCA结果中选择的所有特征开始,我们也执行特征选择,因此可以全部保留它们。

因此,最后我们有17个特征供使用,具体如下所示:

特 征

团队特征T1, T2

市场营销特征M1, M2, M3

培训特征Tr1, Tr2, Tr3

员工特征S1, S2

产品特征P1, P2, P3, P4

促销特征Pr1, Pr2, Pr3

 

更多关于Spark上特征选择的信息,请访问:http://spark.apache.org/docs/latest/mllib-feature-extraction.html。


《Apache Spark 中文实战攻略下册》电子版地址 《Apache Spark 中文实战攻略(下册)》让企业大数据平台性能更优。阿里、Databricks、领英、Intel都在用!Spark 企业级最佳实践中文解读全收纳!
《Apache Spark 中文实战攻略上册》电子版地址 《Apache Spark 中文实战攻略(上册)》全新收录了Spark+AI Summit 2020 中文精华版峰会,Apache Spark 3.0性能优化与基础实战一书看遍!
《Apache Spark 中文实战攻略下册》电子版 《Apache Spark 中文实战攻略(下册)》让企业大数据平台性能更优。阿里、Databricks、领英、Intel都在用!Spark 企业级最佳实践中文解读全收纳!