【GridSearch】 简单实现并记录运行效果

记录了使用for循环实现网格搜索的简单框架。
使用df_search记录每种超参数组合下的运行结果。
lgb_model.best_score返回模型的最佳得分
lgb_model.best_iteration_返回模型的最佳iteration也就是最佳n_extimator

import numpy as np
import pandas as pd
import lightgbm as lgbdf = pd.read_csv("this_is_train.csv")
df_search_columns = ['learning_rate', 'num_leaves', 'max_depth','subsample','colsample_bytree','best_iteration','best_score']
df_search =  pd.DataFrame(columns=df_search_columns )
# colsample_bytree :0.9, learning_rate : 0.001
lgb_params = {"objective": "mae", # "mae""n_estimators": 6000,"num_leaves": 256, # 256"subsample": 0.6,"colsample_bytree": 0.8,"learning_rate": 0.00571, # 0.00871'max_depth': 11, # 11"n_jobs": 4,"device": "gpu","verbosity": -1,"importance_type": "gain",
}
for learning_rate in [0.001,0.005,0.01,0.015,0.05]:for num_leaves in [300,256,200,150]:for max_depth in [15,13,11,9,7]:for subsample in [0.8,0.6,0.5]:for colsample_bytree in [0.9,0.8,0.7]:print(f"learning_rate : {learning_rate}, num_leaves : {num_leaves}, max_depth:{max_depth}, subsample : {subsample}, colsample_bytree : {colsample_bytree}")lgb_params['learning_rate'] = learning_ratelgb_params['num_leaves'] = num_leaveslgb_params['max_depth'] = max_depthlgb_params['subsample'] = subsamplelgb_params['colsample_bytree'] = colsample_bytree# Train a LightGBM model for the current foldlgb_model = lgb.LGBMRegressor(**lgb_params)lgb_model.fit(train_feats,train_target,eval_set=[(valid_feats, valid_target)],callbacks=[lgb.callback.early_stopping(stopping_rounds=100),lgb.callback.log_evaluation(period=100),],)best_iteration = lgb_model.best_iteration_best_score = lgb_model.best_score_cache = pd.DataFrame([[learning_rate,num_leaves,max_depth,subsample,colsample_bytree,best_iteration,best_score]],columns=['learning_rate', 'num_leaves', 'max_depth','subsample','colsample_bytree','best_iteration','best_score'])df_search = pd.concat([df_search, cache], ignore_index=True, axis=0)
df_search.to_csv('grid_search.csv',index=False)

使用该框架,需要调整训练数据df部分,以及进行网格的备选数据和lightgbm的超参数。
每次运行的数据通过一下代码进行记录

cache = pd.DataFrame([[learning_rate,num_leaves,max_depth,subsample,colsample_bytree,best_iteration,best_score]],\columns=df_search_columns )
df_search = pd.concat([df_search, cache], ignore_index=True, axis=0)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/169133.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JVM】一篇通关JVM垃圾回收

目录 1. 如何判断对象可以回收1-1. 引用计数法1-2. 可达性分析算法1-3. 四种引用强引用软引用弱引用虚引用终结器引用 2. 垃圾回收算法3. 分代垃圾回收4. 垃圾回收器5. 垃圾回收调优 1. 如何判断对象可以回收 1-1. 引用计数法 引用计数法 只要一个对象被其他变量所引用&…

甲烷产生及氧化

温室气体排放被认为是加速气候变化的重要因素,甲烷(CH4)是仅次于二氧化碳(CO2)的重要温室气体,其百年温室效应潜势是CO2的28倍[1-2]。湿地中的CH4由产甲烷古菌在水体底部或沉积层严格厌氧环境下产生并释放进入水体,产生的CH4向上覆水运输过程…

RealSense深度相机在Ubuntu18.04的ros环境下,保存同一时刻下深度图像和彩色图像

背景:Ubuntu18.04 ROS Melodic 已安装配置好RealSense相关程序,链接D435i相机后,得到如下Rostopic: /camera/color/image_raw # 彩色图像信息 /camera/depth/image_rect_raw # 深度图像信息 于是写一个python程序&am…

内网横向技术

如果拿下了一台机器之后寻找域控机器 ipconfig /all 找到域名 ping 域名或者nslookup域名

【数据库】数据库物理执行计划最基本操作-表扫描机制与可选路径,基于代价的评估模型以及模型参数的含义

物理执行计划基本操作符 ​专栏内容: 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏…

广州华锐互动:AR可视化展示昆虫让教学过程更直观生动

随着科技的不断发展,AR(增强现实)技术已经逐渐走进我们的生活。通过AR技术,我们可以将虚拟的信息叠加到现实世界中,让现实世界变得更加丰富多彩。在这篇文章中,我们将以昆虫为主题,探讨AR增强现…

ubuntu20.04下安装标注工具CVAT

1 安装docker sudo apt-get update sudo apt-get --no-install-recommends install -y apt-transport-https ca-certificates \curl \gnupg-agent \software-properties-commoncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-r…

ArgoCD基本组件

ArgoCD有5个基本组件, $ kubectl get po -n argocd NAME READY STATUS RESTARTS AGE argocd-application-controller-0 1/1 Running 0 19h argocd-dex-server-767fb49f59-7rxn7 1/1 Running 0…

解密C语言指针中的解引用操作:深入理解 * 运算符

导言: C语言中的指针是一项复杂而强大的特性,而其中的解引用操作则是使得程序员能够直接访问内存中数据的关键。本篇博客将深入研究解引用操作,通过 * 运算符的应用,探讨如何巧妙地操作指针,从而实现对内存中数据的精准…

002、ArkTS

之——开发语言 杂谈 基础编程语言ArkTS。引用来自华为开发者课堂。 ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发者以更简洁…

tp8 使用rabbitMQ(4)路由模式

路由模式 在第三节中我们使用的 交换机的 fanout 把生产者的消息广播到了所有与它绑定的队列中处理,但是我们能不能把特定的消息,发送给指定的队列,而不是广播给所有队列呢? 如图,交换机把 orange 类型的消息发送给了…

zookeeper 单机伪集群搭建简单记录

1、官方下载加压后,根目录下新建data和log目录,然后分别拷贝两份,分别放到D盘,E盘,F盘 2、data目录下面新建myid文件,文件内容分别为1,2,3.注意文件没有后缀,不能是txt文…

Java中类的类型判断技巧以及没有无参构造函数时的应对策略。isInstance()方法解析

类的类型判断 基本数据类型的包装类中&#xff0c;例如Integer、Long这些类是没有无参构造方法的&#xff0c;因此在以下情况中&#xff0c;会出错 具体类型是未知的&#xff0c;只有全路径类名 String typeSte "java.lang.Integer"; Class<?> typeClass …

LED驱动控制专用电路

一、基本概述 TM1628是一种带键盘扫描接口的LED&#xff08;发光二极管显示器&#xff09;驱动控制专用IC,内部集成有MCU 数 字接口、数据锁存器、LED 驱动、键盘扫描等电路。本产品质量可靠、稳定性好、抗干扰能力强。 主要适用于家电设备(智能热水器、微波炉、洗衣机、空调…

排序算法-----基数排序

目录 前言 基数排序 算法思想 ​编辑 算法示例 代码实现 1.队列queue.h 头文件 2.队列queue.c 源文件 3.主函数&#xff08;radix_sort实现&#xff09; 算法分析 前言 今天我想把前面未更新完的排序算法补充一下&#xff0c;也就是基数排序的一种&#xff0c;这是跟…

Android 一键屏锁的实现

1.activity里的代码 获取设备管理器 Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//setContentView(R.layout.main);registerReceiver();devicePolicyManager (DevicePolicyManager)getSystemService(DEVICE_POLICY_SER…

ubuntu 使用webrtc_ros 编译linux webrtc库

ubuntu 使用webrtc_ros 编译linux webrtc库 webrtc_ros 使用WebRTC流式传输ROS图像主题 该节点提供了一个WebRTC对等方&#xff0c;可以将其配置为流ROS图像主题并接收发布到ROS图像主题的流。 该节点托管一个提供简单测试页面的Web服务器&#xff0c;并提供可用于创建和配置W…

基于Vue+SpringBoot的APK检测管理系统

项目编号&#xff1a; S 038 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S038&#xff0c;文末获取源码。} 项目编号&#xff1a;S038&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 开放平台模块2.3 软…

电子学会C/C++编程等级考试2021年09月(二级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:字符统计 给定一个由a-z这26个字符组成的字符串,统计其中哪个字符出现的次数最多。输入 输入包含一行,一个字符串,长度不超过1000。输出 输出一行,包括出现次数最多的字符和该字符出现的次数,中间以一个空格分开。如果有多…

Python入门03变量

目录 1 什么是变量2 变量声明3 变量命名规则4 变量类型5 类型转换总结 1 什么是变量 编程语言中变量就像容器一样&#xff0c;可以用来存放东西 我的变量就像杯子一样&#xff0c;可以用来盛放各种饮料。在Python中变量用来存放各种各样的数据&#xff0c;比如整数、浮点数、…