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 中的 Logistic 回归

随处运行

Spark 可以在 Hadoop、Apache Mesos、Kubernetes、独立或云中针对不同的数据源运行。

您可以使用其 独立集群模式EC2Hadoop YARNMesosKubernetes 运行 Spark。 访问 HDFSApache CassandraApache HBaseApache Hive 以及数百个其他数据源中的数据。

算法

MLlib 包含许多算法和实用程序。

ML 算法包括

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

ML 工作流实用程序包括

  • 特征转换:标准化、归一化、哈希等
  • ML Pipeline 构建
  • 模型评估和超参数调整
  • ML 持久性:保存和加载模型和 Pipeline

其他实用程序包括

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

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

社区

MLlib 是作为 Apache Spark 项目的一部分开发的。 因此,每次 Spark 发布时都会对其进行测试和更新。

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

MLlib 仍然是一个快速增长的项目,欢迎大家贡献。 如果您想向 MLlib 提交算法,请阅读 如何为 Spark 做出贡献 并向我们发送补丁!

入门

要开始使用 MLlib

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