位置: IT常识 - 正文

XGBoost模型调参:GridSearchCV方法网格搜索优化参数(模型调参是调节什么)

编辑:rootadmin
XGBoost模型调参:GridSearchCV方法网格搜索优化参数 文章目录一、前言二、数据处理三、XGBoost参数调优3.1 常见可调参数3.2 GridSearchCV调参函数3.3 一般调参顺序3.4 调参结果可视化四、总结一、前言

推荐整理分享XGBoost模型调参:GridSearchCV方法网格搜索优化参数(模型调参是调节什么),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:xgb模型参数,模型参数调优,模型参数调整方法,调整模型参数,调整模型参数,调整模型参数,模型调参方法,模型调参方法,内容如对您有帮助,希望把文章链接给更多的朋友!

本篇文章是继上一篇文章:使用K-Fold训练和预测XGBoost模型的方法,探讨对XGBoost模型调优的方法,所使用的代码和数据文件均是基于上一篇文章的,需要的小伙伴可以跳转链接自行获取。

二、数据处理

程序和上篇文章中的完全一致,不再赘述。

import pandas as pdimport numpy as npfrom sklearn.model_selection import train_test_splitfrom xgboost import XGBRegressorfeature_file = pd.read_csv("./DataHousePricePrediction/train.csv")x = []# 特征数据y = []# 标签for index in feature_file.index.values: #print('index', index) #print(feature_file.values[0]) #print(feature_file.ix[index].values) x.append(feature_file.values[index][2: -1]) # 从原文件中提取输入变量数据 y.append(feature_file.values[index][1]) # 从原文件中提取输出变量标签x, y = np.array(x), np.array(y)# 划分训练集和验证集X_train,X_valid,y_train,y_valid = train_test_split(x,y,test_size=0.2,random_state=12345)三、XGBoost参数调优3.1 常见可调参数

一般调参会考虑以下几个超参数(需要在模型中初始化):

• learning_rate • n_estimators • max_depth • min_child_weight • subsample • colsample_bytree • gamma • reg_alpha • reg_lambda

这些参数的具体含义可见:XGBoost常用参数 定义模型:

#定义xgboost模型xgb = XGBRegressor(learning_rate =0.1, n_estimators=150, max_depth=5, min_child_weight=1, gamma=0, subsample=0.8, colsample_bytree=0.8, objective= 'reg:squarederror', reg_alpha= 0, reg_lambda= 1, nthread=4, scale_pos_weight=1, seed=27)3.2 GridSearchCV调参函数XGBoost模型调参:GridSearchCV方法网格搜索优化参数(模型调参是调节什么)

不同于CV领域的神经网络,Scikit-learn为XGBoost模型提供了一个网格搜索最优化参数的方法:GridSearchCV(网格搜索交叉验证调参)。详细介绍见:sklearn.model_selection.GridSearchCV

在本文中,主要使用到了GridSearchCV中的以下几个参数:

estimator:表示所要调优的模型。param_grid:字典类型变量。主要存储的是要尝试的参数,每一个参数中要尝试的值组成一个列表,不同的参数列表构成一个字典。n_jobs,int类型,表示要并行运行的作业数,-1表示使用所有的处理器。通过此参数可以认为控制使用CPU的核数。cv,int类型,表示要交叉验证拆分的数量,也就是K-Fold的数量。

GridSearchCV搜索原理:对param_grid中要尝试的变量进行排列组合,遍历每一种组合,通过交叉验证的方式返回所有参数组合下的评价指标得分,最后选择分数最高的组合对应的参数作为最优值。简单来说,GridSearchCV的搜索原理就是枚举,暴力搜索。

3.3 一般调参顺序

调参的要旨是:每次调一个或两个超参数,然后将找到的最优超参数代入到模型中继续调余下的参数。 XGBoost一般的调参顺序和排列组合是:

最佳迭代次数(树模型的个数):n_estimatorsmin_child_weight以及max_depthgammasubsample以及colsample_bytreereg_alpha以及reg_lambdalearning_rate

下面以min_child_weight以及max_depth两个参数为例展示对应的调参程序:

from sklearn.model_selection import GridSearchCV#Need to research#research_one: n_epoch#research_one: max_depthparam_test1 = { 'min_child_weight': [1, 2, 3], 'max_depth':[2, 3, 4, 5, 6, 7] }xgb_res = GridSearchCV(estimator = xgb, param_grid = param_test1, n_jobs=4, cv=5)xgb_res.fit(X_train, y_train)3.4 调参结果可视化

在搜索完成后,本文使用了cv_results_、best_params_、best_score_作为搜索输出,这三个方法都是GridSearchCV方法的对象,含义是:

cv_results_:输出cv(交叉验证)结果的,可以是字典形式也可以是numpy形式,还可以转换成DataFrame格式best_params_:通过网格搜索得到的score最好对应的参数best_score_:输出最好的成绩print('max_depth_min_child_weight')print('gsearch1.grid_scores_', xgb_res.cv_results_)print('gsearch1.best_params_', xgb_res.best_params_)print('gsearch1.best_score_', xgb_res.best_score_)

程序的输出为:

从输出的结果看出,GridSearchCV搜索确定了最佳的max_depth为3,最佳的min_child_weight为3,综合两种参数下模型的最佳得分为:0.65,获得了我们要的结果。 注:这里没有展示xgb_res.cv_results_的输出结果(太长了),从上面的对param_test1的定义可知,此次搜索中min_child_weight有3中取值,max_depth有6种取值,进行排列组合后有18种可能。cv_results_ 展示的就是这18种情况对应的交叉验证值。

四、总结

GridSearchCV是XGBoost模型最常用的调参方法,在调参时要注意调参顺序并且要有效设置参数的变化范围,提高效率。受限于暴力搜索的设计逻辑,GridSearchCV 并不适用于数据量大和超参数数量多的场景。当数据量大时,可以考虑坐标下降方法;当所调超参数数量多时,可以考虑使用随机搜索 RandomizedSearchCV方法。 总的来说,有效的数据清洗和挖掘、符合使用场景的模型、灵活的训练和调参技巧是提高预测准确度的三大手段。

本文链接地址:https://www.jiuchutong.com/zhishi/297296.html 转载请保留说明!

上一篇:【Bootstrap】Bootstrap环境搭建及demo(bootstrapicon)

下一篇:自己的智能AI聊天机器人,可自定义头像,免费html源码分享,粘贴即用!(自己的智能ai聊天怎么用)

  • 无线网密码怎么改192.168.1.1(无线网密码怎么分享)

    无线网密码怎么改192.168.1.1(无线网密码怎么分享)

  • 闲鱼怎么隐藏已卖出的东西(闲鱼怎么隐藏已经卖出去的东西)

    闲鱼怎么隐藏已卖出的东西(闲鱼怎么隐藏已经卖出去的东西)

  • 荣耀手机录屏怎么录内部声音(荣耀手机录屏怎么取消触摸点)

    荣耀手机录屏怎么录内部声音(荣耀手机录屏怎么取消触摸点)

  • 视拼购是什么(视客网拼团是怎么拼)

    视拼购是什么(视客网拼团是怎么拼)

  • iqoo和vivo质量一样吗(iqoo和vivo质量一样吗知乎)

    iqoo和vivo质量一样吗(iqoo和vivo质量一样吗知乎)

  • 内存影响游戏帧数吗(内存影响游戏帧率吗)

    内存影响游戏帧数吗(内存影响游戏帧率吗)

  • 苹果手机深色模式在哪里切换(苹果手机深色模式切换不了)

    苹果手机深色模式在哪里切换(苹果手机深色模式切换不了)

  • iphone屏幕突然变成灰色(iphone屏幕突然变暗怎么回事)

    iphone屏幕突然变成灰色(iphone屏幕突然变暗怎么回事)

  • 打印机打出来有重影(打印机打出来有墨点)

    打印机打出来有重影(打印机打出来有墨点)

  • mate30pro有什么特殊功能(华为mate30pro有什么特色功能)

    mate30pro有什么特殊功能(华为mate30pro有什么特色功能)

  • 华为研发中心在哪里(华为研发中心在9号线哪个站)

    华为研发中心在哪里(华为研发中心在9号线哪个站)

  • 爱奇艺会员可以扫码登录吗(爱奇艺会员可以登录几个设备怎么弄)

    爱奇艺会员可以扫码登录吗(爱奇艺会员可以登录几个设备怎么弄)

  • 抖音通过搜索关注是什么意思(抖音搜索关键词)

    抖音通过搜索关注是什么意思(抖音搜索关键词)

  • 华为手机忘了锁屏密码怎么快速解开(华为手机忘了锁屏密码怎么刷机)

    华为手机忘了锁屏密码怎么快速解开(华为手机忘了锁屏密码怎么刷机)

  • 更新数据库表数据的查询称为什么查询(如何更新数据库表里面的内容)

    更新数据库表数据的查询称为什么查询(如何更新数据库表里面的内容)

  • ps如何取色(ps如何取色器改变颜色)

    ps如何取色(ps如何取色器改变颜色)

  • 快手直播身份证怎么解除

    快手直播身份证怎么解除

  • 喜马拉雅能文本阅读吗(喜马拉雅文本提取)

    喜马拉雅能文本阅读吗(喜马拉雅文本提取)

  • 荣耀v20有液冷散热吗(荣耀v20液冷散热怎么开启)

    荣耀v20有液冷散热吗(荣耀v20液冷散热怎么开启)

  • oppoa9跑分多少

    oppoa9跑分多少

  • 苹果手机如何加密视频(苹果手机如何加入wifi)

    苹果手机如何加密视频(苹果手机如何加入wifi)

  • iphone8plus快充多少w(iphone8plus快充支持多少a)

    iphone8plus快充多少w(iphone8plus快充支持多少a)

  • Win10无法访问局域网电脑怎么办(Win10无法访问局域网计算机)

    Win10无法访问局域网电脑怎么办(Win10无法访问局域网计算机)

  • ftpte.exe是什么进程 有什么作用 ftpte进程查询(ftp指什么)

    ftpte.exe是什么进程 有什么作用 ftpte进程查询(ftp指什么)

  • 保险费车船税会计分录
  • 公司的纳税人识别号怎么查询
  • 一般税收协定是多少
  • 高铁票丢失了可以二次打印吗
  • 转账支票的签发
  • 间接费用是指
  • 货到发票没到
  • 车辆抵押贷款怎么做
  • 公司取现备用金违法吗
  • 个体工商户生产经营所得税率
  • 所得税汇算清缴账务处理
  • 用盈余公积弥补亏损会影响所有者权益吗
  • 药店药品成本怎么核算
  • 退货但发票不冲销
  • 小微企业劳务费税率
  • 汽车修理费增值税税率
  • 外管证税收预缴税率是多少?
  • 主营业务税金及附加怎么算
  • 个体户进项发票多开出发票少怎么办
  • 发票已勾选未确认
  • 资金清算款项
  • 装修公司购入材料计入什么科目
  • 酒店装修费用会计处理
  • 社保跨省转移社保流程
  • 电脑屏幕突然黑屏怎么回事
  • win7防火墙设置不了
  • 现金收入支出表怎么填
  • 增值税附加怎么入账
  • 多缴纳税款
  • 公司给客户报销费用可以吗
  • msoobe.exe是什么
  • php pack
  • win10磁盘碎片整理打不开
  • vue3中使用require
  • 用php做计算
  • 出口退税的申报期限是多久
  • php 获取文件类型
  • 汇总开具发票
  • php图片识别处理归类
  • php oracle 连接池
  • vue中$route
  • 目标检测论文解析怎么写
  • lspv命令详解
  • python包发布
  • mysql显示数据库语句
  • 融资租出的办公楼
  • 没有盈利的公司
  • 钢材贸易公司如何经营
  • 现金结算的特点和概念
  • mysql服务器怎么启动
  • 去年留抵税额会计分录
  • 购销合同印花税税率
  • 补缴的土地价款怎么算费用
  • 金税四期何时上线
  • 企业基建工程
  • 未开票确认收入账务处理
  • 新建厂房费用可以直接计入管理费用么
  • 小规模开具的1%专票 一般纳税人抵扣
  • 年终奖会计怎么走账
  • 转账时转错账号怎么办
  • 土地增值税计算题
  • mysql 使用inet_aton和inet_ntoa处理ip地址数据的实例
  • win7和winxp区别
  • 播放windows xp
  • win7无法访问局域网电脑
  • linux find命令忽略大小写
  • win7升级win10黑屏
  • win8.1 build9600
  • windows8 enterprise
  • 开机提示windows即将过期
  • 如何使桌面图标透明
  • win10聚焦功能失效
  • android性能指标
  • js测试工具
  • python 批量查询
  • js随机生成一个整数
  • Python selenium 三种等待方式详解(必会)
  • 移交税务稽查的条件标准
  • 小规模增值税怎么计提
  • 西安税务办税服务厅
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设