zl程序教程

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

当前栏目

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

Apache机器方法学习Spark 视图 3.2 整体
2023-09-11 14:16:05 时间


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

要评估影响销售团队成功的不同因素,我们有很多方法可以使用。作为例子,我们选择易于解释和在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函数,我们需要指定分类器和所有需要使用的特征。