MLlib 是 Apache Spark 的可扩展机器学习库。

易于使用

可在 Java、Scala、Python 和 R 中使用。

MLlib 完美契合 Spark 的 API,并能与 Python 中的 NumPy(自 Spark 0.9 起)以及 R 语言库(自 Spark 1.5 起)进行交互。您可以使用任何 Hadoop 数据源(例如 HDFS、HBase 或本地文件),从而轻松集成到 Hadoop 工作流中。

data = spark.read.format("libsvm")\
  .load("hdfs://...")

model = KMeans(k=10).fit(data)
在 Python 中调用 MLlib

高性能

高质量算法,速度比 MapReduce 快 100 倍。

Spark 擅长迭代计算,这使得 MLlib 运行速度极快。同时,我们也非常注重算法的性能:MLlib 包含利用迭代的高质量算法,能够比 MapReduce 中有时使用的单遍近似算法产生更好的结果。

Hadoop 和 Spark 中的逻辑回归

随处运行

Spark 可在 Hadoop、Apache Mesos、Kubernetes、独立模式或云端运行,并支持多种数据源。

您可以使用 Spark 的 独立集群模式 (standalone cluster mode),或在 EC2Hadoop YARNMesosKubernetes 上运行 Spark。访问 HDFSApache CassandraApache HBaseApache Hive 以及数百种其他数据源中的数据。

算法

MLlib 包含许多算法和实用工具。

机器学习算法包括

  • 分类:逻辑回归、朴素贝叶斯等……
  • 回归:广义线性回归、生存回归等……
  • 决策树、随机森林和梯度提升树
  • 推荐:交替最小二乘法 (ALS)
  • 聚类:K-Means、高斯混合模型 (GMM) 等……
  • 主题建模:潜在狄利克雷分配 (LDA)
  • 频繁项集、关联规则和序列模式挖掘

机器学习工作流实用工具包括

  • 特征转换:标准化、归一化、哈希等……
  • 机器学习流水线 (Pipeline) 构建
  • 模型评估和超参数调优
  • 机器学习持久化:保存和加载模型及流水线

其他实用工具包括

  • 分布式线性代数:SVD、PCA 等……
  • 统计:汇总统计、假设检验等……

有关用法示例,请参阅 MLlib 指南

社区

MLlib 是作为 Apache Spark 项目的一部分进行开发的,因此它随每个 Spark 版本进行测试和更新。

如果您对该库有任何疑问,请在 Spark 邮件列表上提问。

MLlib 是一个快速发展的项目,欢迎贡献代码。如果您想向 MLlib 提交算法,请阅读如何向 Spark 贡献代码并向我们发送补丁!

入门指南

开始使用 MLlib

  • 下载 Spark。MLlib 已作为一个模块包含在内。
  • 阅读 MLlib 指南,其中包含了各种用法示例。
  • 如果您想在分布式模式下运行,请了解如何将 Spark 部署到集群上。您也可以直接在多核机器上进行本地运行,无需任何设置。