LightGBM超参数优化-贝叶斯,网格

2024-05-09 16:44

本文主要是介绍LightGBM超参数优化-贝叶斯,网格,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import hyperopt
from hyperopt import hp,fmin,tpe,Trials,partial
from hyperopt.early_stop import no_progress_loss
#参数的搜索空间
LGBM_params_space={'max_depth':hp.choice('max_depth',np.arange(10,50).tolist()),
'num_leaves':hp.choice('num_leaves',np.arange(10,50).tolist()),
'n_estimators':hp.choice('n_estimators',np.arange(10,100).tolist()),
'boosting_type':hp.choice('boosting_type',['gbdt','goss']),
'colsample_bytree':hp.uniform('colsample_bytree',0.2,1.0),#连续性的参数
'learning_rate':hp.uniform('learning_rate',0.001,0.5),
'reg_alpha':hp.uniform('reg_alpha',0.01,0.5),#L1
'reg_lambda':hp.uniform('reg_lambda',0.01,0.5)#l2
}

choice里的参数是独立的,如果用了randint模型会推测参数之间的大小,不太好对调参
在这里插入图片描述

def hyperopt_lgbm(params):max_depth=params['max_depth']num_leaves=params['num_leaves']n_estimators=params['n_estimators']boosting_type=params['boosting_type']colsample_bytree=params['colsample_bytree']learning_rate=params['learning_rate']reg_alpha=params['reg_alpha']reg_lambda=params['reg_lambda']#会根据搜索出的子参数空间,赋值,并进行下列实例化#实例化模型lgbm=LGBMClassifier(random_state=12,max_depth=max_depth,num_leaves=num_leaves,n_estimators=n_estimators,boosting_type=boosting_type,colsample_bytree=colsample_bytree,learning_rate=learning_rate,reg_alpha=reg_alpha,reg_lambda=reg_lambda )#输出交叉验证的结果res=cross_val_score(lgbm,xtrain263,ytrain263).mean()return res
#定义优化函数
def param_hyperopt_lgbm(max_evals):params_best=fmin(fn=hyperopt_lgbm,#目标函数space=LGBM_params_space,algo=tpe.suggest,#算法max_evals=max_evals)#迭代次数return params_best

在这里插入图片描述
在这里插入图片描述
超参数结果不如原始模型,最好是迭代次数的增加
在这里插入图片描述
针对上面的升级改造:训练模式和测试模式两套放在一起,根据最优秀的参数来实例化一个模型
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
二、基于网格搜索的超参数优化—枚举原理,TPE是根据迭代次数猜的,不会穷尽参数
,需要人工辅助判断
在这里插入图片描述
在这里插入图片描述
从大区间逐步缩小区间范围

#设置超参数空间
parameter_space={'num_leaves':range(20,51,5),'max_depth':range(5,15,2),'learning_rate':list(np.linspace(0.01,0.2,5)),'n_estimators':range(10,160,70),'boosting_type':['gbdt','goss'],'colsamp_bytree':[0.6,0.8,1.0]
}
#实例化模型与评估器
lgbm_0=LGBMClassifier(random_state=120)
grid_lgbm0=GridSearchCV(lgbm_0,parameter_space)
#模型训练
grid_lgbm0.fit(xtrain263,ytrain263)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
进行多轮探索
下面使用交叉训练:
超参数调完之后如何有更好的效果,–单独模型的交叉训练-非常有bagging的原理
在这里插入图片描述
取5次预测结果的均值作为最终的预测结果
–不一定有效果,但是可以试一下的
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

这篇关于LightGBM超参数优化-贝叶斯,网格的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/973930

相关文章

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

SpringMVC获取请求参数的方法

《SpringMVC获取请求参数的方法》:本文主要介绍SpringMVC获取请求参数的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下... 目录1、通过ServletAPI获取2、通过控制器方法的形参获取请求参数3、@RequestParam4、@

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

SpringBoot利用@Validated注解优雅实现参数校验

《SpringBoot利用@Validated注解优雅实现参数校验》在开发Web应用时,用户输入的合法性校验是保障系统稳定性的基础,​SpringBoot的@Validated注解提供了一种更优雅的解... 目录​一、为什么需要参数校验二、Validated 的核心用法​1. 基础校验2. php分组校验3

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

SpringBoot首笔交易慢问题排查与优化方案

《SpringBoot首笔交易慢问题排查与优化方案》在我们的微服务项目中,遇到这样的问题:应用启动后,第一笔交易响应耗时高达4、5秒,而后续请求均能在毫秒级完成,这不仅触发监控告警,也极大影响了用户体... 目录问题背景排查步骤1. 日志分析2. 性能工具定位优化方案:提前预热各种资源1. Flowable

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N