spark写出分布式的训练算法_利用 Spark 和 scikit-learn 将你的模型训练加快 100 倍...

在 Ibotta,我们训练了许多机器学习模型。这些模型为我们的推荐系统、搜索引擎、定价优化引擎、数据质量等提供动力。它们在与我们的移动应用程序交互时为数百万用户做出预测。

当我们使用 Spark 进行数据处理时,我们首选的机器学习框架是 scikit-learn。随着计算机变得越来越便宜,机器学习解决方案的上市时间变得越来越关键,我们探索了加快模型训练的各种方法。其中一个解决方案是将 Spark 和 scikit-learn 中的元素组合到我们自己的混合解决方案中。

sk-dist 的介绍

我们很高兴地宣布我们的开源项目 sk-dist 的启动。该项目的目标是为使用 Spark 分发 scikit 学习元估计器提供一个通用框架。元估计器的例子有决策树集合(随机林和额外随机树)、超参数调解器(网格搜索和随机搜索)和多分类技术(一对多和多对一)。

我们的主要动机是填补传统机器学习模型空间的空白。在神经网络和深度学习的空间之外,我们发现我们的训练模型的大部分计算时间并没有花在训练单个数据集的单个模型上。相反,大部分时间都花在使用元估计器在数据集上训练模型的多次迭代上。

例子

让我们谈谈手写数字数据集。在这里,我们对手写数字的图像进行了适当的编码、分类。我们可以很快在一台机器上训练 1797 条记录的支持向量机,花费的时间不到一秒钟。但超参数调整需要在训练数据的不同子集上进行大量的训练。

如下图所示,我们已经构建了一个总计需要 1050 个训练的参数网格。在拥有 100 多个核的 Spark 上使用 sk dist 只需 3.4 秒。这项工作的总时间是 7.2 分钟,意思是在没有并行化的单机上训练要花这么长时间。import timefrom sklearn import datasets, svm

from skdist.distri

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值