开源sk-dist,超参数调优仅需3.4秒,sk-learn训练速度提升100倍
【导语】这篇文章为大家介绍了一个开源项目——sk-dist。在一台没有并行化的单机上进行超参数调优,需要 7.2 分钟,而在一百多个核心的 Spark 群集上用它进行超参数调优,只需要 3.4 秒,把训练 sk-learn 的速度提升了 100 倍。
import time
from sklearn import datasets, svm
from skdist.distribute.search import DistGridSearchCV
from pyspark.sql import SparkSession
# instantiate spark session
spark = ( SparkSession .builder .getOrCreate() )
sc = spark.sparkContext
# the digits dataset
digits = datasets.load_digits()
X = digits["data"]
y = digits["target"]
# create a classifier: a support vector classifier
classifier = svm.SVC()
param_grid = { "C": [0.01, 0.01, 0.1, 1.0, 10.0, 20.0, 50.0], "gamma": ["scale", "auto", 0.001, 0.01, 0.1], "kernel": ["rbf", "poly", "sigmoid"] }
scoring = "f1_weighted"
cv = 10
# hyperparameter optimization
start = time.time()
model = DistGridSearchCV( classifier, param_grid, sc=sc, cv=cv, scoring=scoring, verbose=True )
model.fit(X,y)
print("Train time: {0}".format(time.time() - start))
print("Best score: {0}".format(model.best_score_))
------------------------------
Spark context found; running with spark
Fitting 10 folds for each of 105 candidates, totalling 1050 fits
Train time: 3.380601406097412
Best score: 0.981450024203508
- 分布式训练:使用 Spark 分发元估计器训练。支持以下算法:使用网格搜索和随机搜索的超参数调优,使用随机森林的树集成,其他树和随机树嵌入,以及一对多、一对一的多类别问题策略。
- 分布式预测:使用 Spark DataFrames 分配拟合后的 scikit-learn 估计器进行预测。通过便携式的 scikit-learn 估计器,该方法使得大尺度的分布式预测成为可能。这些估计器可以与 Spark 一起使用,也可以不与 Spark 一起使用。
- 特征编码:使用 Encoderizer 对特征进行灵活编码。 Encoderizer 可以使用或不使用Spark 并行化。它将推断数据类型和形状,自动选择并应用最佳的默认特征变换器,对数据进行编码。作为一个完全可定制的特征联合编码器,它还具有使用 Spark 进行分布式变换的附加优势。
- 传统的机器学习: 广义线性模型,随机梯度下降,最近邻,决策树和朴素贝叶斯等方法与 sk-dist 配合良好。这些模型都已在 scikit-learn 中集成,用户可以使用 sk-dist 元估计器直接实现。
- 中小型数据:大数据无法与 sk-dist 一起使用。值得注意的是,训练分布的维度是沿着模型的轴,而不是数据。数据不仅需要适合每个执行器的内存,还要小到可以广播。根据 Spark 的配置,最大广播量可能会受到限制。
- Spark 的使用:sk-dist 的核心功能需要运行Spark。对于个人或小型数据科学团队而言,从经济上来讲可能并不可行。此外,为了以经济有效的方式充分利用 sk-dist,需要对 Spark 进行一些调整和配置,这要求使用者具备一些 Spark 的基础知识。
六大主题报告,四大技术专题,AI开发者大会首日精华内容全回顾
AI ProCon圆满落幕,五大技术专场精彩瞬间不容错过
CSDN“2019 优秀AI、IoT应用案例TOP 30+”正式发布
如何打造高质量的机器学习数据集?
从模型到应用,一文读懂因子分解机
用Python爬取淘宝2000款套套
7段代码带你玩转Python条件语句
高级软件工程师教会小白的那些事!
谁说 C++ 的强制类型转换很难懂?
开源sk-dist,超参数调优仅需3.4秒,sk-learn训练速度提升100倍相关推荐
- 超参数调优河伯、组合优化器CompBO,华为诺亚开源贝叶斯优化库
视学算法报道 编辑:陈萍.杜伟 华为诺亚开源了一个贝叶斯优化的库,该库包含三个部分:河伯.T-LBO.CompBO. 贝叶斯优化可以说是一种黑盒优化算法,该算法用于求解表达式未知函数的极值问题.因其具 ...
- 华为诺亚开源贝叶斯优化库:超参数调优河伯、组合优化器CompBO
©作者 | 陈萍.杜伟 来源 | 机器之心 华为诺亚开源了一个贝叶斯优化的库,该库包含三个部分:河伯.T-LBO.CompBO. 贝叶斯优化可以说是一种黑盒优化算法,该算法用于求解表达式未知函数的极值 ...
- 机器学习模型评估与超参数调优详解
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:李祖贤 深圳大学,Datawhale高校群成员 机器学习分为两类 ...
- 一文详解超参数调优方法
©PaperWeekly 原创 · 作者|王东伟 单位|Cubiz 研究方向|深度学习 本文介绍超参数(hyperparameter)的调优方法. 神经网络模型的参数可以分为两类: 模型参数,在训练中 ...
- 深度学习-超参数调优
在机器学习中有很多调优的方式机器学习--超参数调优,深度学习中也存在同样的方式,接下来,介绍一下深度学习框架里边的自动调参模块. 1. 基于Tensorflow的Keras tuner 官方教程如下: ...
- python代码设置超参数_超参数调优总结,贝叶斯优化Python代码示例
本文介绍超参数(hyperparameter)的调优方法. 神经网络模型的参数可以分为两类,模型参数,在训练中通过梯度下降算法更新: 超参数,在训练中一般是固定数值或者以预设规则变化,比如批大小(ba ...
- 深度神经网络之Keras(三)——正则化、超参数调优和学习方向
深度神经网络之Keras(三)--正则化.超参数调优和学习方向 本文将继续探索Keras框架下的深度神经网络知识,主要介绍了利用Keras构建的深度神经网络正则化及超参数调优问题. 目录 深度神经网络 ...
- 贝叶斯优化: 一种更好的超参数调优方式
简介 本文受 浅析 Hinton 最近提出的 Capsule 计划 启发,希望以更通俗的方式推广机器学习算法,让有数学基础和编程能力的人能够乐享其中. 目前人工智能和深度学习越趋普及,大家可以使用开源 ...
- tf.saved_model.save模型导出、TensorFlow Serving模型部署、TensorBoard中的HParams 超参数调优
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 4.11 综合案例:模型导出与部署 学习目标 目标 掌握Ten ...
最新文章
- 表达式树 java_表达树—构建表达式树、获取表达式(二)
- ubuntu20分区_「图」Canonical希望Ubuntu 20.04 LTS Server Installer更快更舒适
- 039_External Data Source(转载)
- SAP Spartacus delivery mode continue button enable与否的逻辑
- Educational Codeforces Round 107 (Rated for Div. 2)
- ElasticJob-分布式作业调度神器,你们还在用Quartz吗
- centos7安装java6_CentOS7.6安装jdk1.8
- Azure PowerShell (10) 使用PowerShell导出订阅下所有的Azure VM和Cloud Service的高可用情况...
- 音视频基础之YUV格式
- 得物购买截图生成_iPhone12订单生成器app-iPhone12订单生成器网页app免费版预约 v1.0...
- H3C设备忘记密码修改办法
- 浏览器点击链接打开指定APP详解
- 在Golang里如何实现结构体成员指针到结构体自身指针的转换
- mysql计算年龄_MySQL根据出生日期计算年龄的三种方法比较
- HTML中placeholder用法
- HDU 1713 相遇周期(求两个分数的最小公倍数)
- 银狐小贷风控系统引领行业最前端
- 无法启动计算机上rasman,无法启动Remote Access Auto connection Manager错误1068 依存服务或组无法启动...
- 六、创建Templates(模板)
- python计算协方差矩阵_用Python构建协方差矩阵