Spark MLlib中分类和回归算法

Spark MLlib中分类和回归算法:

-分类算法:

pyspark.mllib.classification

-朴素贝叶斯 NaiveBayes

-支持向量机(优化:随机梯度下降)SVMWithSGD

-逻辑回归  LogisticRegressionWithSGD

// 从Spark 2.0开始,官方推荐使用BFGS方式优化LR算法

LogisticRegressionWithBFGS

// 针对流式数据实时模型训练算法

StreamingLogisticRegressionWithSGD

-树Tree相关分类算法:

pyspark.mllib.tree

  -决策树 DecisionTree

   -随机森林算法 –集成学习算法-Bagging方式   RandomForest

   -梯度提升决策树算法 –集成学习算法 –Boosting方式  GradientBoostedTrees

    Spark MLlib中从底层源码来看,无论是DT 还是RF还是GBT算法,底层都是RF算法实现的。

-分类算法的类别:

  树相关的算法,既可以做二分类,又可以做多分类算法:

  numClass: Number of classes for classification

  -二分类

  NB、SVM、LR

  -多分类

   NB、LR

监督学习算法:

数据集RDD[LabeledPoint]

标签向量 LabelPoint = feature: Vector + label: Float

类比:

RDD 类似 矩阵

数组 类比  Vector

无论是矩阵还是向量分为两种类型:

-稀疏类型

稀疏矩阵,稀疏向量

-稠密类型

稠密矩阵,稠密向量

Spark MLlib中回归算法(基于RDD 实现算法库):

-a. 线性回归算法相关:

LinerRegressionWithSGD

LassoWithSGD

L1-regularization

RidgeRegressionWithSGD

L2-regularization

-b. 树算法相关

    -决策树 DecisionTree

      -随机森林算法 –集成学习算法-Bagging方式   RandomForest

      -梯度提升决策树算法 –集成学习算法 –Boosting方式  GradientBoostedTrees

基于DataFrame实现机器学习库,几个重要的概念:

-a. DataFrame

类似Pandas中dataframe,将算法所有的数据集存储在DataFrame数据结构中。

DataFrame = RDD + Schema(字段名称、字段类型)

-b. Estimator

模型学习器,就是算法,比如ALS,DecisionTree,将数据应用到模型学习器中会得到一个模型Model。

每个模型学习器中有个一个方法(训练模型):

fit(dataframe) -> Model

-c. Transformer

转换器,就是模型Model或者算法,比如ALSModel,将针对数据集中某一列或某几列数据生成预测另外一列新数据。

ALSModel.transform(dataframe)

userId,itemId  -> predictRating

-d. Parameters

封装算法训练时参数或者模型预测时参数,底层是字典Dic(Map集合),其中字典的Key就是参数名称,字典的Value就是参数的值。

比如:使用ALS模型学习器训练模型,设置参数:特征数rank和迭代次数iterations,可以使用Parameters组合封装设置。

-e. Pipeline

管道,Spark ML机器学习库从SK-Learn中借鉴

由很多Stage组成:

一个序列的Stages组成,每个Stage要么是转换器Estimator(模型),要么是模型学习器Estimator(算法)

本身来说:

Pipeline就是一个模型学习器,相当于算法,所以里面有一个fit函数,应用数据训练以后得到PipelineModel转换器,可以进行预测数据。

功能:

将某个机器学习应用中整个流程进行串联起来,方便部署测试使用。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgfxgj.html