Fregata - 轻量级大规模机器学习算法库


Apache
跨平台
Scala

软件简介

Fregata 是一个基于 Apache Spark 的轻量级、超快速、大规模的机器学习库,并在 Scala 中提供了高级 API。

特性

  • 更准确:对于各种问题,Fregata 可以实现比 MLLib 更高的精度。

  • 更快速:对于广义线性模型,Fregata 在绝大部分数据上都能够扫描一遍数据即收敛。对于 10 亿 X 10 亿的数据集,Fregata 可以在 1 分钟内用内存缓存训练广义线性模型,或在没有内存缓存的情况下训练 10 分钟。通常,Fregata 比 MLLib 快 10-100 倍。

  • 算法无需调参(调参相对简单):Fregata 使用 GSA SGD 优化。GSA 算法是梯度型随机优化算法,也是 Fregata采用的核心优化方法。它是基于随机梯度下降法(SGD)的一种改进:保持了 SGD 易于实现,内存开销小,便于处理大规模训练样本的优势,同时免去了 SGD 不得不人为调整学习率参数的麻烦。

  • 更轻量:Fregata 只使用 Spark 的标准 API,能快速,无缝地集成到 Spark 大多数业务的数据处理流程上。

架构

这份文档是关于 Fregata 0.1 版本的

  • core : 主要实现基于 GSA 的独立算法,包括 分类、回归聚类分析

    • Classification:支持二进制和多重分类

    • Regression:即将发布

    • Clustering:即将发布

  • spark : 主要通过包裹 core.jar 实现基于 spark 的大规模机器学习算法,并提供相应的算法

Fregata 支持 spark 1.x 以及带 scala 2.10 和 scala 2.11 的 2.x

算法