开发十年,就只剩下这套Java开发体系了 >>>
Spark分为两大块:1基于hive的sql操作,2基于mllib的机器学习模型
1.Spark On Hive:在R下通过sql命令可完美支持对hive的增删改查;
2.MLLib的机器学习模型:分为普通机器学习模型和RDD版的机器学习模型,由于Spark目前将逐渐淘汰掉RDD版的API,所以这里不再包含RDD版的API:
1.基本数据统计:无R版,大概是R通过summary等基本命令即可完成;
2.ML Pipelines(数据管道):无R版,大概是R本身就有DataFrame和Data.Table等,可以直接进行数据治理;
3.数据抽取、变换、特征选择:无R版,同上
4.分类和回归:
a.逻辑回归:spark.logit
b.决策树分类器:无R版,原因不明
c.随机森林分类器:spark.randomForest
d.梯度提升树分类器:spark.gbt
e.多层感知器分类器:spark.mlp
f.支持向量机:spark.svmLinear
g.一对多分类器(One-vs-All):无R版,原因不明
h.朴素贝叶斯:spark.naiveBayes
i.线性回归:R只有一个广义线性回归的API: spark.glm
j.决策树回归:无R版,原因不明
k.随机森林回归:spark.randomForest 参数为regression即可
l.梯度提升树回归:同上
m.生存回归(survival regression):spark.survreg
生存分析:通过研究个体间的相似性,预测个体的生存时间,主要用于生物寿命预测或机器设备寿命预测,详见:http://blog.csdn.net/jaen_tail/article/details/79081954
n.保序回归(isotonic regression):spark.isoreg
保序回归:在不改变数据集顺序的前提下进行回归分析,主要用于药品毒性分析,详见:http://blog.csdn.net/legotime/article/details/51836014
5.聚类:
a.K-means:spark.kmeans
b.LDA:spark.lda
c.二分K均值(Bisecting k-means):spark.bisectingKmeans
d.高斯混合模型(GMM):spark.gaussianMixture
6.协同过滤:spark.als
7.频繁模式挖掘(FP-Growth):spark.fpGrowth
8.模型选择与调参:无R版
综上所述Spark的MLLib并不是一个全面的机器学习框架,也是结合了spark自身业务特点的。
如果使用Spark+R的方式进行机器学习建模时,就需要根据MLLib的现状,合理选择模型方案。