Spark 教程

Spark SQL

Spark 笔记

Spark MLlib

Spark MLlib 介绍


MLlib 是 Spark 中可扩展的机器学习库,它由一系列机器学习算法和实用程序组成, 包括分类、回归、聚类、协同过滤、降维,还包括一些底层的优化方法。

Spark MLlib 构成

MLlib 大致如下几块儿:

  1. 依赖
    MLlib 的底层实现采用数值计算库 Breeze 和基础线性代数库 BLAS。
  2. 优化计算
    MLlib 目前支持随机梯度下降法、少内存拟牛顿法、最小二乘法等。
  3. 回归
    MLlib 目前支持线性回归、逻辑回归、岭回归、保序回归和与之相关的 L1 和 L2 正则化的变体。MLlib 中回归算法的优化计算方法采用随机梯度下降法。
  4. 分类
    MLlib 目前支持贝叶斯分类、决策树分类、线性 SVM 和逻辑回归,同时也包括 L1 和 L2 正则化的变体。优化计算方法也采用随机梯度下降法。
  5. 聚类
    MLlib 目前支持 KMeans 聚类算法、LDA 主题模型算法。
  6. 推荐
    MLIlib 目前支持 ALS 推荐,采用交替最小二乘求解的协同推荐算法。
  7. 关联规则
    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 套件。
mllib 包组成
包名 描述 具体描述
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 工具