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转换器,可以进行预测数据。
功能:
将某个机器学习应用中整个流程进行串联起来,方便部署测试使用。