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
算法
最近TalkingData开源了Fregata,Fregata的主要作用是加速基于spark的机器学习的计算速度,据说10亿*10亿级别的数据如果缓存到内存中的话用1s钟就可以算完,如果不缓存的话,十秒钟搞定,如果这么来的话,那真是碉堡了,以下只是翻译,如果有不正确的欢迎指正 简介 ·fregata是一个轻量级,超级快,大规模的基于基于spark的机器学习的框架,它提供了高水准的scalaAPI
轻量级大规模机器学习算法库Fregata开源:快速,无需调参 http://geek.csdn.net/news/detail/129806 作者:张夏天,TalkingData首席数据科学家。12年大规模机器学习和数据挖掘经验,对推荐系统、计算广告、大规模机器学习算法并行化、流式机器学习算法有很深的造诣;在国际顶级会议和期刊上发表论文12篇,申请专利9项;前IBM CRL、腾讯、华为诺亚方舟实验
import fregata.spark.data.LibSvmReader import fregata.spark.metrics.classification.{AreaUnderRoc, Accuracy} import fregata.spark.model.classification.LogisticRegression import org.apache.spark.{SparkC
Index 基本遵从《统计学习方法》一书中的符号表示。 除特别说明,默认w为行向量,x为列向量,以避免在wx 中使用转置符号;但有些公式为了更清晰区分向量与标量,依然会使用^T的上标,注意区分。 输入实例x的特征向量记为: 注意:x_i 和 x^(i) 含义不同,前者表示训练集中第 i 个实例,后者表示特征向量中的第 i 个分量;因此,通常记训练集为: 特征向量用小n表示维数,训练集用大N表示个数
问题答案可关注公众号 机器学习算法面试,回复“资料”即可领取啦~~ 1.机器学习理论 1.1 数学知识 1.1.1 机器学习中的距离和相似度度量方式有哪些? 1.1.2 马氏距离比欧式距离的异同点? 1.1.3 张量与矩阵的区别? 1.1.4 如何判断矩阵为正定? 1.1.5 距离的严格定义? 1.1.6 参考 1.2 学习理论 1.2.1 什么是表示学习? 1.2.2 什么是端到端学习? 1.2
感知机可以理解为几何中的线性方程:w*x+b=0 对应于特征空间 R^n 中的一个超平面 S ,其中 w 是超平面法向量,b 是超平面的截距。这个超平面将特征空间划分为两个部分。位于两部分的点(特征向量)分别被分为正、负两类。
本教程将全面介绍深度学习从模型构造到模型训练的方方面面,以及它们在计算机视觉和自然语言处理中的应用。
二面挂 总时长1.5h,面试45min,剩下时间手撕 面试大概问题: 1.讲数据挖掘比赛的过程 2.连续字段怎么转换为离散字段 3.讲一个困难的经历是如何解决并分工的 4.讲一个自己熟悉的网络框架 5.L1正则和L2正则 6.多模态数据怎么利用,模型怎么设计 其他的记不清了 反问环节: 1.部门做什么的 2.用的主要方法是什么 手撕代码,两问: 1.给定函数f(x) = 1.2 x^2 - 0.8
前言: 岗位:机器学习算法实习 笔试情况:无笔试 一面 1.自我介绍(非科班硕,一份水实习); 2.介绍项目,并由此引出一系列八股文: 介绍gbdt算法的原理与实现 说说xgboost对于gbdt所做的主要优化 3.介绍实习工作 简单介绍resnet及其主要改进(shortcut连接,BN层),说说这些改进为什么work 介绍transformer及self-attention机制实现方式 了解哪
时长:1h 1.自我介绍 2.选了个实习深挖,这部分问了蛮多的,从流程到实现,每部分的输入输出等等 3.根据我的研究方向,问了一些经典的算法和最新的一些前沿成果(这部分拉了坨大的,面试官说我说的那些东西在他上学那会就有了) 4.注意力机制的计算公式?为什么除以根号dk? 5.了解推荐模型嘛?知道哪些模型? 6.手撕:和为k的连续子数组(面试官口述的问题,一开始理解成输出数量,结果是要输出所有的数组
感知机学习问题转化为求解损失函数的最优化问题,最优化的方法就是随机梯度下降法。 1. 学习算法的原始形式 给定一个训练数据集$$T={(x{(1)},y{(1)}),(x{(2)},y{(2)}),...,(x{(m)},y{(m)})}$$,其中,$$x{(i)}in X= Rn$$,$$y^{(i)}in Y=lbrace+1,-1rbrace$$,$$i=1,2,...,m$$,求参数$$w