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
算法
Logistic Regression
Combine Freatures Logistic Regression
SoftMax
RDT