推荐系统6:SparkML预测模型构建

1.Spark ML重要概念

1.Spark ML基于什么来处理的?

Spark-Core的核心开发是基于RDD,但是RDD并不是非常的灵活,如果做一个结构化数据处理,还需要转换成DataFrame(在Python当中引出的概念)DataFrame其实就是行对象的RDD加上schema,类似于文本的数据,对这些数据加入schema,做一些结构的转换,可以把它简单地理解为数据库里的一张表,里面有数据,有类型。RDD和DataFrame的关系可以理解为普通文本和表的对应关系。
所以DataFrame处理起来会更加灵活一些,ML就是基于DataFrame进行处理的,来用于学习的一个数据集,所以当我们创建一个DataFrame的时候可以指定一个schem,或者创建一个行对象RDD,可以从已有的RDD转换而来,DF也可以转换成RDD。
DataFrame在ML中有多种类型,除了常见的整型、字符串等,还可以支持图像、特征工程转换的向量Vector。所以DataFrame是Spark ML用来进行训练的数据集。

2.进行机器学习的流程?

前面讲到过,一般机器学习的流程是,先收集数据集,将数据集划分为训练集合测试集,再用训练集训练模型,然后用模型对测试集进行预测。最后通过混淆矩阵,借助于AUC、召回率或准确率来进行模型的评估。
这个流程是可以形成管道的,整体就是个DAG(有向无环图,spark通过DAG来进行调度的)其实整个模型测试的过程就是一个管道,这些管道会有各种各样的组件,每一个步骤便是一个组件,组件可以分成两个类别,第一个是Transformers,用到的函数是transform。它的作用就是进行转换,即DataFrame转成另外一个DataFrame,例如,将原本的数据集拆分成训练集和测试集。对测试集进行预测,预测的过程,也是将原本的测试集(DF)转换成了预测结果集(另外一个DF)。
第二种类型是Estimators,评估器,用到的函数是fit。它的作用是应用在一个DF上生成一个转换器的算法,我们通常的用训练集来训练一个模型(逻辑回归),本质

你可能感兴趣的:(推荐系统从入门到深入)