当前位置: 首页 > news >正文

HyperGBM的三种Early Stopping方式

本文作者:杨健,九章云极 DataCanvas 主任架构师

很多机器学习框架如都提供了Early Stopping策略,主要用来防止模型过拟合。和模型训练提前停止的目标不同,AutoML的Early Stopping策略更多考虑的是算力消耗和模型质量的平衡。

通常超参数优化的搜索空间在上万种排列组合的量级,但全Pipeline AutoML的搜索空间要大得多,有时候会有几十亿种甚至更多的组合。在如此庞大的搜索空间中如果要找到绝对的全局最优解,即使有非常高效的搜索算法也需要尝试数千甚至数万次搜索,这有可能需要无法承受的的算力成本,因此选择一个合适的提前停止策略对AutoML来说是一个必备特性。

AutoML的提前停止通常考虑3种方式:

1、限定搜索时间,在指定的时间内搜索到的最优模型做为最终方案。这种策略的时间和算力资源成本最为可控。

2、指定评估指标的目标值,比如AUC超过0.95就可以中止搜索过程,或者rmse小于0.02。这种策略的前提是业务上有明确的模型评估结果的合格标准。

3、在搜索过程中,如果当前最高的评估在接下来的n次尝试都不能进一步提升就中止搜索。当搜索算法的勘探和开采平衡策略比较合理时,这种策略往往可以得到非常好的模型,在时间消耗和模型质量的平衡方面也比较合理。

在HyperGBM中以上三种方式都可以支持,并且可以组合使用,例如:同时限定搜索时间、期望评估指标和n步提升条件,任何一个条件满足即中止搜索。示例代码如下:

使用make_experiment的代码:

from tabular_toolbox.datasets import dsutils
from sklearn.model_selection import train_test_split
from hypergbm.search_space import search_space_general
from hypergbm import make_experiment
# load data into Pandas DataFrame
df = dsutils.load_bank()
target = 'y'
train, test = train_test_split(df, test_size=0.3)
test.pop(target)
#create an experiment
experiment = make_experiment(train, target=target,   max_trails=100,  reward_metric='accuracy',optimize_direction='max', early_stopping_rounds=10, # 0 or None to disable itearly_stopping_time_limit=3600, #3600 seconds, 0 or None to disable itearly_stopping_reward=0.90 #0 or None to disable it) 
#run experiment
estimator = experiment.run()
# predict on test data without target values
pred = estimator.predict(test)

更多HyperGBM相关内容请参考:https://github.com/DataCanvasIO/HyperGBM

http://www.lryc.cn/news/23702.html

相关文章:

  • 心系区域发展,高德用一体化出行服务平台“聚”力区域未来
  • AI画图_stable-diffusion-webui安装使用指南(1)
  • 浅谈MySQL主从复制
  • docker-compose安装kafka和php简单测试
  • 【蓝桥云课】快速幂
  • 解决windows安装wxPython安装失败、速度过慢及PyCharm上wx包爆红问题
  • 封装小程序request请求[接口函数]
  • 嵌入式 STM32 通讯协议--MODBUS
  • 互联网人看一看,这些神器你用过哪些?
  • Kotlin学习:5.2、异步数据流 Flow
  • EPICS synApps介绍
  • Pycharm和跳板机 连接内网服务器
  • mysql去重查询的三种方法
  • PHP反序列化
  • 什么蓝牙耳机打电话效果最好?通话效果好的无线蓝牙耳机
  • Tesseract centos环境安装,基于springboot图片提取文字
  • Elasticsearch7.8.0版本优化——写入速度优化
  • 【Redis】Redis主从同步中数据同步原理
  • Python基础—while循环
  • linux基础(管道符,检索,vim和vi编辑使用)
  • GAN | 代码简单实现生成对抗网络(GAN)(PyTorch)
  • 华为面试题就这?00后卷王直接拿下30k华为offer......
  • html的常见标签使用
  • STM32——毕设智能感应窗户
  • golang archive/tar库的学习
  • MongoDB 详细教程,这一篇就够啦
  • python为什么慢
  • Android kotlin 组件间通讯 - LiveEventBus 及测试(更新中)
  • linux服务器时间同步
  • 扒系统CR8记录