Apache Spark机器学习3.2 整体视图的方法

简介:

3.2 整体视图的方法


正如上一节讨论的,本节我们将选择分析的方法或模型(方程)来完成从商业实例到机器学习方法的映射。

要评估影响销售团队成功的不同因素,我们有很多方法可以使用。作为例子,我们选择易于解释和在Spark上易于实现的三个模型:(a)回归模型,(b)结构方程模型和

(c)决策树。

选择好分析方法或模型后,我们需要准备因变量和编程。后续几节将详细介绍。

3.2.1 回归模型

为了在Spark上使用回归模型,我们需要关注以下3点:

线性回归或是逻辑回归

回归方法是最成熟和最广泛使用的模型,主要用于表示不同变量对一个因变量的影响。使用线性回归方法还是逻辑回归方法主要取决于变量间的关系是线性还是非线性。这里,我们对变量间的关系不是很确定,因此将使用两个方法,根据他们的结果来选择部署哪个。

准备因变量

为了使用逻辑回归方法,我们需要通过中值法对目标变量或因变量(销售团队的成功变量,目前从0到100)重新编码为0或1。

准备编程

在MLlib中,我们可以使用下面的代码进行回归建模。现在使用Spark MLlib中的随机梯度下降法进行线性回归建模。

 

对于逻辑回归,我们使用下面的代码:

 

更多关于如何使用MLlib进行线性回归建模的信息,请访问:http://spark.apache.org/docs/latest/mllib-linear-methods.html#linear-least-squares-lasso-and-ridge-regression。

在R语言环境中,我们可以使用lm函数进行线性回归,使用glm函数进行逻辑回归,设置 family=binomial()。

3.2.2 SEM方法

为了在Spark上进行结构方程建模(Structural Equation Modeling,SEM),我们需要关注以下3点:

SEM介绍说明

结构方程建模可以看作是线性回归建模的扩展,因其由几个与回归方程类似的线性方程组成。然而,该模型同时估计所有方程,并考虑方程间的内部关系,因此较回归模型有更少的偏差。结构方程建模包括结构化建模和潜在变量建模两部分,而我们只使用结构化建模。

准备因变量

我们可以使用销售团队成功变量(范围从0到100)作为我们的目标变量。

准备编程

我们将使用Databricks环境下的R notebook进行编程,并使用R语言的SEM包。虽然有很多结构方程建模包可以选择,例如lavaan,但是我们在本项目中还是从易于学习角度出发使用SEM包。

我们使用install. packages("sem", repos="http://R-Forge.R-project.org")方法将SEM包加载到R notebook环境。接下来,我们执行R语言代码library(sem)。

之后,我们使用specify.model()函数在R notebook环境中指定模型,代码如下:

 

3.2.3 决策树

为了在Spark上进行决策树建模,我们需要关注以下3点:

决策树选择

决策树主要用于分类场景建模,在我们的例子中,决策树逐一将它们分为成功或者失败。决策树也是一个非常成熟和广泛使用的方法。决策树存在过拟合问题,因此需要后向归一化来消除过拟合。正因为如此,我们只使用简单的线性决策树,而不是冒昧地使用更加复杂的决策树,例如随机森林算法。

准备因变量

为了使用决策树模型,我们将销售团队的级别分为两类:成功或者失败。这与我们使用逻辑回归时一样。

准备编程

对于MLlib,我们可以使用如下代码:

 

更多关于MLlib上使用决策树的信息,请访问:http://spark. apache.org/docs/latest/mllib-decision-tree.html。

使用Spark上的R notebook,我们使用R语言的rpart包中的rpart函数进行计算。对于rpart函数,我们需要指定分类器和所有需要使用的特征。

相关文章
|
Ubuntu PHP Apache
在Ubuntu系统中为apt的apache2编译PHP 7.1的方法
以上就是在Ubuntu系统中为apt的apache2编译PHP 7.1的方法。希望这个指南能帮助你成功编译PHP 7.1,并在你的Apache服务器上运行PHP应用。
372 28
|
消息中间件 Ubuntu Java
在Ubuntu 18.04上安装Apache Kafka的方法
在Ubuntu 18.04上安装Apache Kafka的方法
573 0
|
机器学习/深度学习 分布式计算 大数据
阿里云 EMR Serverless Spark 在微财机器学习场景下的应用
面对机器学习场景下的训练瓶颈,微财选择基于阿里云 EMR Serverless Spark 建立数据平台。通过 EMR Serverless Spark,微财突破了单机训练使用的数据规模瓶颈,大幅提升了训练效率,解决了存算分离架构下 Shuffle 稳定性和性能困扰,为智能风控等业务提供了强有力的技术支撑。
831 15
|
分布式计算 大数据 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的易用性和强大功能。
579 1
apache+tomcat配置多站点集群的方法
apache+tomcat配置多站点集群的方法
305 4
|
分布式计算 大数据 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)
682 1
Spark大数据处理:技术、应用与性能优化(全)PDF书籍推荐分享
|
分布式计算 Hadoop 大数据
大数据处理框架在零售业的应用:Apache Hadoop与Apache Spark
【8月更文挑战第20天】Apache Hadoop和Apache Spark为处理海量零售户数据提供了强大的支持
496 0
|
分布式计算 Serverless 数据处理
EMR Serverless Spark 实践教程 | 通过 Apache Airflow 使用 Livy Operator 提交任务
Apache Airflow 是一个强大的工作流程自动化和调度工具,它允许开发者编排、计划和监控数据管道的执行。EMR Serverless Spark 为处理大规模数据处理任务提供了一个无服务器计算环境。本文为您介绍如何通过 Apache Airflow 的 Livy Operator 实现自动化地向 EMR Serverless Spark 提交任务,以实现任务调度和执行的自动化,帮助您更有效地管理数据处理任务。
908 0
|
Ubuntu 关系型数据库 MySQL
在 Ubuntu 14.04 服务器上使用 Apache 安装 Drupal 的方法
在 Ubuntu 14.04 服务器上使用 Apache 安装 Drupal 的方法
284 0
|
Ubuntu Java 应用服务中间件
在Ubuntu 16.04上安装Apache Tomcat 8的方法
在Ubuntu 16.04上安装Apache Tomcat 8的方法
347 0

热门文章

最新文章

推荐镜像

更多