MLlib 是 Spark 中可扩展的机器学习库,它由一系列机器学习算法和实用程序组成, 包括分类、回归、聚类、协同过滤、降维,还包括一些底层的优化方法。
Spark MLlib 构成
MLlib 大致如下几块儿:
- 依赖
MLlib 的底层实现采用数值计算库 Breeze 和基础线性代数库 BLAS。 - 优化计算
MLlib 目前支持随机梯度下降法、少内存拟牛顿法、最小二乘法等。 - 回归
MLlib 目前支持线性回归、逻辑回归、岭回归、保序回归和与之相关的 L1 和 L2 正则化的变体。MLlib 中回归算法的优化计算方法采用随机梯度下降法。 - 分类
MLlib 目前支持贝叶斯分类、决策树分类、线性 SVM 和逻辑回归,同时也包括 L1 和 L2 正则化的变体。优化计算方法也采用随机梯度下降法。 - 聚类
MLlib 目前支持 KMeans 聚类算法、LDA 主题模型算法。 - 推荐
MLIlib 目前支持 ALS 推荐,采用交替最小二乘求解的协同推荐算法。 - 关联规则
MLlib 目前支持 FPGrowth 关联规则挖掘算法。
Spark MLlib 包组成
Spark 机器学习库从 1.2 版本以后被分为两个包:
- spark.mllib 包含基于 RDD 的原始算法 API。Spark MLlib 历史比较长,在 1.0 以前的版本即已经包含了,提供的算法实现都是基于原始的 RDD。
- spark.ml 则提供了基于 DataFrames 高层次的 API,可以用来构建机器学习工作流(PipeLine)。ML Pipeline 弥补了原始 MLlib 库的不足,向用户提供了一个基于 DataFrame 的机器学习工作流式 API 套件。
包名 | 描述 | 具体描述 |
---|---|---|
api.python | 接口 | 针对的 Python 开放的接口包装 |
classification | 分类 |
贝叶斯分类、线性二元 SVM 分类、逻辑回归分类等 |
clustering | 聚类 | K-Mean、LDA 主题模型等 |
evaluation | 评估 | 模型评估相关内容,如 AUC 等 |
feature | 特征 | 特征工程相关内容 |
fpm | 关联规则 | FPGrowth 关联规则 |
impl | ||
linalg | 矩阵、向量 | 矩阵、向量、线性代数计算、分布式矩阵 |
optimization | 优化计算 | 梯度下降法、少内存拟牛顿法、最小二乘法 |
pmml | 模型输出 | 模型保存 |
random | ||
rdd | ||
recommendation | 推荐 | ALS 推荐 |
regression | 回归 | 线性回归、逻辑回归、岭回归、保序回归 |
stat | 统计 | 相关性统计等 |
tree | 决策树 | 决策树分类、决策树回归 |
util | 工具 |