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。