位置: IT常识 - 正文

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

发布时间:2024-01-16
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聊天怎么用)

  • 华为平板如何设置学生模式(华为平板如何设置返回键)

    华为平板如何设置学生模式(华为平板如何设置返回键)

  • 钉钉录制的视频保存在哪里(钉钉录制的视频可以剪辑吗)

    钉钉录制的视频保存在哪里(钉钉录制的视频可以剪辑吗)

  • 小米10系列是采用的挖孔屏吗(小米10系列是采埃孚吗)

    小米10系列是采用的挖孔屏吗(小米10系列是采埃孚吗)

  • 光猫网线正确插口位置(光猫网线插法)

    光猫网线正确插口位置(光猫网线插法)

  • 钉钉会议视频可以回放吗(钉钉会议视频可以美颜吗)

    钉钉会议视频可以回放吗(钉钉会议视频可以美颜吗)

  • 内存不兼容的表现(内存不兼容什么意思)

    内存不兼容的表现(内存不兼容什么意思)

  • 单元格地址是指什么(在WPS表格中单元格地址是指)

    单元格地址是指什么(在WPS表格中单元格地址是指)

  • 微信群待办怎么发布(微信群待办怎么设置)

    微信群待办怎么发布(微信群待办怎么设置)

  • 锁屏动画该怎么设置(锁屏动画怎么设置在哪)

    锁屏动画该怎么设置(锁屏动画怎么设置在哪)

  • 苹果卡贴机能上网不能打电话(苹果卡贴机能上网不能打电话怎么解决)

    苹果卡贴机能上网不能打电话(苹果卡贴机能上网不能打电话怎么解决)

  • 垂直视频是什么意思(垂直视频领域)

    垂直视频是什么意思(垂直视频领域)

  • western digital硬盘什么牌子(western digital硬盘500gb多少钱)

    western digital硬盘什么牌子(western digital硬盘500gb多少钱)

  • 怎么不让别人条件查找(怎么不让别人条微信聊天)

    怎么不让别人条件查找(怎么不让别人条微信聊天)

  • 小米黑屏无法唤醒屏幕(小米黑屏无法唤醒屏幕不亮)

    小米黑屏无法唤醒屏幕(小米黑屏无法唤醒屏幕不亮)

  • 去小米售后需要带什么(去小米售后需要什么条件)

    去小米售后需要带什么(去小米售后需要什么条件)

  • 微信一天加多少人会封号(微信一天加多少好友会频繁)

    微信一天加多少人会封号(微信一天加多少好友会频繁)

  • 微信邀请新人有奖励吗(微信邀请新人有什么好处)

    微信邀请新人有奖励吗(微信邀请新人有什么好处)

  • 苹果6s plus和6plus有什么区别(苹果6s plus和6plus屏幕一样吗)

    苹果6s plus和6plus有什么区别(苹果6s plus和6plus屏幕一样吗)

  • 苹果x刷机报错53解决方法(苹果x刷机报错4013的原因)

    苹果x刷机报错53解决方法(苹果x刷机报错4013的原因)

  • 荣耀20青春版怎么录屏(荣耀20青春版怎么调24小时制)

    荣耀20青春版怎么录屏(荣耀20青春版怎么调24小时制)

  • 趣味键盘怎么用在微信上(趣味键盘怎么用在微信上苹果手机)

    趣味键盘怎么用在微信上(趣味键盘怎么用在微信上苹果手机)

  • 台式电脑配置在哪里看(家用电脑台式机推荐配置)

    台式电脑配置在哪里看(家用电脑台式机推荐配置)

  • iphonex怎么设置微信锁(iPhoneX怎么设置手写键盘)

    iphonex怎么设置微信锁(iPhoneX怎么设置手写键盘)

  • 华为图片生成PDF后在哪(华为图片生成文档)

    华为图片生成PDF后在哪(华为图片生成文档)

  • 苹果6充电口接触不好怎么办(苹果充电口接触不灵敏修多少钱)

    苹果6充电口接触不好怎么办(苹果充电口接触不灵敏修多少钱)

  • 哪个视频播放器好?(哪个视频播放器最好)

    哪个视频播放器好?(哪个视频播放器最好)

  • 苹果为什么不能用流量下载(苹果为什么不能隔空投送)

    苹果为什么不能用流量下载(苹果为什么不能隔空投送)

  • beauty cam是什么相机

    beauty cam是什么相机

  • Win10升级后必须要做的基本设置一览(win10要更新系统)

    Win10升级后必须要做的基本设置一览(win10要更新系统)

  • 设计模式---适配器模式(设计模式适配器模式代码编写)

    设计模式---适配器模式(设计模式适配器模式代码编写)

  • 工程类预交税金
  • 所得税税负率的计算公式中营业收入含不含税
  • 没有原始凭证怎么补税
  • 利息按月计提分录
  • 作废的发票还需要保存吗
  • 法人其他应付款在借方表示
  • 原材料供销合同和电子汇划收款回单金额不一样
  • 年底暂估成本有风险吗
  • 季度收取租金会计分录怎么写?
  • 广告业福利发放会计处理怎么做?
  • 贴现票据种类
  • 哪些政府补助属于国家
  • 开普通发票现金走账怎样处理?
  • 280服务费抵税分录
  • 电子发票可以打多少行
  • 普票抵扣税
  • 未确认收入的增值税怎么记账
  • 事业单位购买固定资产费自行
  • 公司注销时资本公积为股东出资款要缴税吗?
  • 已开票怎么做坏账处理
  • 免费样品销售给客户计入什么科目
  • 怎么打开资源管理器
  • 收到发票未抵扣谁开红字
  • 包装物押金收入含税吗
  • php ord
  • linux系列
  • windows10记事本
  • 孕妇能吃荔枝吗 孕晚期
  • 拼多多改地址怎么改视频
  • php yii框架
  • 部门活动经费怎么算
  • 企业停产免征房产税
  • php转utf8
  • 微服务springboot结构
  • laravel实战教程
  • php wechat
  • 来料加工企业的划分标准
  • 哪些费用可以在以后年度扣除
  • 计提年终奖的会计分录
  • 互联网+文本格式
  • sqlserver sid
  • 织梦建站详细教程
  • 股东清算收入是负债吗
  • 银行代发工资流程
  • PostgreSql新手必学入门命令小结
  • 销售送客户礼物
  • 银行汇票背书
  • 金税四期讲解视频
  • 会计核算形式的设计具体内容包括
  • 合伙企业分红怎么做账
  • 募捐建议
  • 公司领导培训费用标准
  • 银行贴现手续费可以税前扣除吗
  • 个税公司少申报一个月会对个人有什么影响
  • 公司人才账户有什么用
  • 应交个人所得税借方余额表示什么
  • 金蝶kis专业版怎么备份账套
  • 边际成本是什么意思大白话
  • 工业企业待摊费用标准
  • SQL Transcation的一些总结分享
  • 电脑开机显示xp后无反应
  • Windows Server 2008作为打印服务器排错
  • mac 鼠标调整
  • macos技巧
  • win8系统如何卸载软件
  • 注册表winlogon
  • linux怎么禁用用户
  • linux进程的环境变量
  • win7系统鼠标指针形状介绍
  • linux zen3
  • linux用户配置文件是什么
  • bat怎么设置
  • jquery.Callbacks的实现详解
  • 键盘搜索的快捷键
  • 三水水厂热线电话号码
  • 挂车是否需要缴纳车船税
  • 陕西省地方税务局公告2016年第1号
  • 税务人员少征税款
  • 税控盘可以申请电子发票吗?
  • 国家税务总局中山市税务局港口税务分局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号