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

1.7 机器学习工作流示例


为了进一步了解学习机器学习的工作流,在这里让我们学习一些例子。

本书后续章节会研究风险建模、欺诈检测、客户视图、流失预测和产品推荐。对于诸如此类的项目,目标往往是确定某些问题的原因,或者建立一个因果模型。下面是使用工作流建立一个因果模型的一个例子。

1.检查数据结构,以确保更好地理解数据:

数据是横截面数据吗?是隐含着时间信息的合并数据吗?

是否使用了分类变量?

2.检查缺失值:

不知道或者忘记了一个答案可能会被记录为一个中立或特殊的类别

一些变量可能有很多缺失值

根据需要重新记录一些变量

3.进行一些描述性研究,开始讲故事:

使用比较方法和交叉列表

检查一些关键变量的变异性(标准差和方差)

4.ind变量(外生变量)的选择组:

作为问题原因的候选

5.基本描述性统计:

所有变量的均值、标准差和频率

6.测量工作:

研究一些测量值的规模(efa探索性因子分析在这里可能是有用的)

形成测量模型

7.本地模型:

从全局中找出部分以探索其中关系

使用交叉列表

图表展示

使用逻辑回归

使用线性回归

8.开展一些偏相关分析,以帮助模型设定。

9.使用(8)的结果,提出结构方程模型:

确定主结构和次结构

将测量和结构模型进行关联

10.初次拟合:

运用SPSS为lisrel或Mplus创建数据集

使用lisrel或Mplus编程

11.模型修正:

使用SEM结果(主要模型拟合指数)来指导

再次分析偏相关性

12.诊断:

分布

残差

曲线

13.到这里我们应该可以开展最终模型估计了:

如果不能,请重复步骤13和14

14.模型解释(识别和量化因果效应)

可参考 Spark Pipelines: http://www.researchmethods.org/step-by-step1.pdf。

Apache Spark团队认识到了机器学习工作流的重要性,因此,他们开发了Spark pipeline来高效处理工作流问题。

Spark 机器学习代表一个可以作为pipeline的机器学习工作流,它由一系列以特定顺序运行的PipelineStages组成。

PipelineStages包括:Spark转换、Spark估计和Spark评估。

机器学习的工作流可以是非常复杂的,因此创建和调整它们非常耗时。研发Spark 机器学习Pipeline,使得机器学习工作流的构造和调整更为容易,尤其可以表示以下主要阶段:

1.数据加载

2.特征提取

3.模型估计

4.模型评价

5.模型解释

对于以上任务,可以使用Spark转换器进行特征提取。Spark估计器用来训练和估计模型,Spark评估器用来评价模型。

从技术上看,Spark中的pipeline作为一系列处理过程的有序组合,每个过程可以是转换,或者是估计,或者是评估。这些过程按照顺序执行,输入的数据集遵循各过程顺序进行修改。在转换过程中,调用transform() 方法进行数据集处理。在估计过程中,调用fit()方法生成一个转换器(转换器将成为pipeline Model或拟合pipeline的一部分),并且在数据集上调用转换器的transform()方法。

上面给出的技术说明都是针对线性pipeline模型。一旦数据流图形成有向无环图(Directed Acyclic Graph,DAG),Spark也可能生产非线性pipeline模型。

更多关于Spark pipeline的信息,请访问如下链接:http://spark.apache.org/docs/latest/ml-guide.html#pipeline。

上一篇:Apache Spark机器学习.1.4 MLlib


下一篇:java反序列化漏洞入门分析