Spark 教程

Spark SQL

Spark 笔记

Spark MLlib

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/spark-mllib-intro.html

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 工具  
Spark MLlib 提供了一系列基本数据类型以支持底层的机器学习算法。主要的数据类型包括,本地向量(Local Vector)、标注点( ...
Lombok(ProjectLombok)是一个用于Java编程语言的开源库,旨在减少Java代码中的冗余和样板代码,提高开发人员的生产力。 ...
Spark 是由 Scala 编写的,所以在安装 Spark 的过程中,首先必须确保 Java 环境的安装和 Scala 的安装。 ...
Apache Spark 是一个开源集群运算框架,最初是由加州大学伯克利分校 AMP 实验室所开发。相对于 Hadoop 的 MapRedu ...
这里收集了 Spark 开发中常见的问题及解决方案。 ...