Apache Spark机器学习3.3 特征准备
在前面几节,我们选择了模型并且准备了监督学习所需的因变量。本节,我们需要准备自变量,他们是影响因变量因素(销售团队的成功)的所有特征。对于这项重要的工作,我们需要将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 企业级最佳实践中文解读全收纳!
相关文章
- Apache2.4.6添加虚拟主机提示:NameVirtualHost has no effect and will be removed in the next release /usr/local/apache/conf/extra/httpd-vhosts.conf
- 解决org.apache.lucene.store.AlreadyClosedException: this Directory is closed
- Apache Kafka - How to Load Test with JMeter
- Apache Kafka工作流程| Kafka Pub-Sub Messaging
- Windows 安装配置 Apache .zip
- apache 静态编译和动态编译参考
- apache ab压力测试报错(apr_socket_recv: Connection reset by peer (104))
- Apache支持.htaccess
- Apache 开机自启动脚本设置
- Atitit apache 和guava的反射工具
- nested exception is org.apache.ibatis.binding.BindingException: Parameter ‘xxx‘ not found错误的详细解决方法
- Apache Zeppelin 的 shiro.ini 简单配置说明
- apache-maven-3.8.4下载配置【解决JDK15与Maven-3.3.9低版本不匹配问题---mvn -v无法找到JAVA_HOME环境变量】
- 腾讯云基于 Apache Pulsar 跨地域复制功能实现租户跨集群迁移