Spark MLlib全部算法总结(2.1.0版)
说明:总结算法为Spark2.1.0中Mllib中源码算法,参照网络链接及书籍整理而成。
算法按计算过程分两大类:监督学习(Supervised Learning)和无监督学习(Unsupervised Learning)。
监督学习:指给定算法的一个数据集,其中包含了“正确答案”。算法的目的就是给出更多的“正确答案”。
无监督学习:指给定算法的一个数据集,要求算法找出数据的类型结构,即“分门别类”。按基于数据类型不同又分为两个包:ml包和mllib包。
mllib包内算法是基于Spark的核心RDD(弹性分布式数据集)类型数据的。
ml包内算法是基于更为抽象数据类型DataFrame(数据流)的。
ml、mllib包内按功能类型分又分为多种类型,包括分类(classification)、聚类(clustering)、特征(feature)、优化(optimi/optimization)、推荐(recommendation)、回归(regression)、评估(evaluation)等多种类型。
注:Spark从2.0版本开始,不再向mllib包中添加新的算法,并逐渐将mllib包中算法向ml包中过渡,预计3.0版本将会移除mllib包,统一ml包内基于DataFrame类型的算法。
1 mllib包内算法
注:分类与回归的区别在于:分类是结果值离散型的,少数的;而回归结果值是连续的,多数的。根据结果值需求来决定用哪个算法。所以把分类与回归放一块分析。
2 ml包内算法
说明:名为ml包内算法,实则并非ml包与mllib包区别十分明显,部分甚至多数ml包内算法已经在mllib包算法内提到并叙述。ml包内算法仅为对算法提供一个基于DataFrame类型的补充说明,已解释过的算法不再赘述。