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机器学习3.3 特征准备相关推荐

  1. Apache Spark机器学习

    推荐电子书:Apache Spark 2.x入门 - 从入门到制作 前言: 使用Apache Spark 2.0及更高版本,实现了很大的改进,使Spark更容易编程和执行更快: Spark SQL和D ...

  2. logistic回归预测_使用Apache Spark机器学习Logistic回归预测乳腺癌

    logistic回归预测 在此博客文章中,我将帮助您开始使用Apache Spark的spark.ml Logistic回归来预测癌症恶性程度. Spark的spark.ml库目标是在DataFram ...

  3. 基于Apache Spark机器学习的客户流失预测

    流失预测是个重要的业务,通过预测哪些客户可能取消对服务的订阅来最大限度地减少客户流失.虽然最初在电信行业使用,但它已经成为银行,互联网服务提供商,保险公司和其他垂直行业的通用业务. 预测过程是大规模数 ...

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

    1.7 机器学习工作流示例 为了进一步了解学习机器学习的工作流,在这里让我们学习一些例子. 本书后续章节会研究风险建模.欺诈检测.客户视图.流失预测和产品推荐.对于诸如此类的项目,目标往往是确定某些问 ...

  5. 用Spark机器学习数据流水线进行广告检测

    在这篇文章中,我们Spark的其它机器学习API,名为Spark ML,如果要用数据流水线来开发大数据应用程序的话,这个是推荐的解决方案.关键点: 了解机器学习数据流水线有关内容. 怎么用Apache ...

  6. 使用基于Apache Spark的随机森林方法预测贷款风险

    原文:Predicting Loan Credit Risk using Apache Spark Machine Learning Random Forests  作者:Carol McDonald ...

  7. Apache Spark 2.0预览: 机器学习模型持久化

    在即将发布的Apache Spark 2.0中将会提供机器学习模型持久化能力.机器学习模型持久化(机器学习模型的保存和加载)使得以下三类机器学习场景变得容易: \\ 数据科学家开发ML模型并移交给工程 ...

  8. Apache Spark 技术团队开源机器学习平台 MLflow

    开发四年只会写业务代码,分布式高并发都不会还做程序员?   近日,来自 Databricks 的 Matei Zaharia 宣布推出开源机器学习平台 MLflow .Matei Zaharia 是 ...

  9. Apache Flink vs Apache Spark——感觉二者是互相抄袭啊 看谁的好就抄过来 Flink支持在runtime中的有环数据流,这样表示机器学习算法更有效而且更有效率...

    Apache Flink是什么 Flink是一款新的大数据处理引擎,目标是统一不同来源的数据处理.这个目标看起来和Spark和类似.没错,Flink也在尝试解决 Spark在解决的问题.这两套系统都在 ...

最新文章

  1. OpenCV中的特征匹配(Feature Matching)
  2. 【ubuntu】vim中鼠标选中时变成 可视模式,不能复制的解决方法
  3. 向sqlce 里插入和取出一个Image
  4. 利用BIND 9基于电信网通智能DNS 搭建
  5. 一根Express Route同时支持ARM和ASM的VNET
  6. java 拖动图片放大_Android 图片拖拽、放大缩小的自定义控件
  7. 信息学奥赛一本通(1222:放苹果)
  8. 开源博客-秋色园QBlog多用户博客系统安装视频教程
  9. SkyEye仿真平台下的操作系统实验- 准备篇(一)
  10. macOS Docker 上安装、启动 MySQL
  11. 大家一起看广告?微信朋友圈广告@好友评论互动功能全量开放
  12. arcgis更改字段名_ArcGIS怎么修改属性表字段名称
  13. Centos7中安装zookeeper3.7.0_找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeer---zookeeper工作笔记003
  14. Java中的引用数据类型-BigDecimal
  15. android串口service,Android串口操作库:EZ-SerialPort
  16. 【图像隐写】基于matlab GUI DCT变换图像隐写【含Matlab源码 1380期】
  17. uniapp vite 路由跳转、登录模块封装(非无感登录)
  18. 软件测试工具介绍 (静态测试工具和动态测试工具)
  19. 【采用】社交网络分析与金融反欺诈应用(知识图谱?)
  20. OC5128欧创芯原装芯片,开关降压型恒流驱动芯片

热门文章

  1. BZOJ3295 [Cqoi2011]动态逆序对 分治 树状数组
  2. 利用junit对springMVC的Controller进行测试
  3. 国内流行的两大开源.net微信公众平台SDK对比分析
  4. 何登成 MYSQL 博客
  5. Phaser开源2d引擎 html5游戏框架中文简介
  6. filter过滤器(转载)
  7. 【2013年04月18号】
  8. VScode编辑同步Markdown文档到印象笔记
  9. 谜底是计算机的谜语英语,英语谜语(Riddle)  谜底
  10. 三丰三坐标编程基本步骤_ABB 机器人 | 输送链跟踪配置和编程步骤