位置: 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聊天怎么用)

  • 电脑蓝牙怎么改名字(电脑蓝牙怎么用)(电脑怎么开蓝牙)

    电脑蓝牙怎么改名字(电脑蓝牙怎么用)(电脑怎么开蓝牙)

  • airpods pro怎么改名字(AirPodsPro怎么改摘掉耳机还放歌)

    airpods pro怎么改名字(AirPodsPro怎么改摘掉耳机还放歌)

  • 美团还款在哪里找(美团还款在哪里分期)

    美团还款在哪里找(美团还款在哪里分期)

  • 华为nova4专业模式如何用(华为nova4专业模式怎么用)

    华为nova4专业模式如何用(华为nova4专业模式怎么用)

  • 网易云音乐能看到访客吗(网易云音乐能看广告免费听歌30分钟在哪里)

    网易云音乐能看到访客吗(网易云音乐能看广告免费听歌30分钟在哪里)

  • vivo正在优化开不了机(vivox7正在优化)

    vivo正在优化开不了机(vivox7正在优化)

  • 抖音怎么看别人的播放量(抖音怎么看别人不留访客记录)

    抖音怎么看别人的播放量(抖音怎么看别人不留访客记录)

  • 小米手环4上市时间(小米8手环功能介绍)

    小米手环4上市时间(小米8手环功能介绍)

  • 短信收到法号令是什么(有收到法号令信息是真的吗)

    短信收到法号令是什么(有收到法号令信息是真的吗)

  • 什么是衡量微机性能的一项重要指标(衡量微机价值的主要依据是什么)

    什么是衡量微机性能的一项重要指标(衡量微机价值的主要依据是什么)

  • qq发空白消息代表什么(qq发空白消息代码)

    qq发空白消息代表什么(qq发空白消息代码)

  • 显卡输出接口类型(显卡输出接口类型声音)

    显卡输出接口类型(显卡输出接口类型声音)

  • 微信图片几天过期(微信图片几天过期清理)

    微信图片几天过期(微信图片几天过期清理)

  • 怎么找刷过的抖音(怎样找刷过的抖音)

    怎么找刷过的抖音(怎样找刷过的抖音)

  • vivoy93怎么弄语音助手(vivoy93jovi语音怎么开启)

    vivoy93怎么弄语音助手(vivoy93jovi语音怎么开启)

  • 微信文件多久过期(微信文件已过期或已被清理怎么办)

    微信文件多久过期(微信文件已过期或已被清理怎么办)

  • 手机上显示hd怎么关闭(手机上显示hd怎么关掉oppo)

    手机上显示hd怎么关闭(手机上显示hd怎么关掉oppo)

  • 华为nova5pro如何使用耳机(华为nova5pro如何开空调)

    华为nova5pro如何使用耳机(华为nova5pro如何开空调)

  • 华为p30pro与苹果xr对比(华为p30pro与苹果11pro max参数对比)

    华为p30pro与苹果xr对比(华为p30pro与苹果11pro max参数对比)

  • 华为scltl00h什么型号(华为型号scl-tl00)

    华为scltl00h什么型号(华为型号scl-tl00)

  • 投屏怎样设置全屏(投屏怎么调成全屏)

    投屏怎样设置全屏(投屏怎么调成全屏)

  • 手机一打电话就变成2g怎么回事(手机打电话就没网络是怎么回事)

    手机一打电话就变成2g怎么回事(手机打电话就没网络是怎么回事)

  • reno电池容量(oppo reno电池容量多少)

    reno电池容量(oppo reno电池容量多少)

  • 华为nova9se参数配置详情(华为nova9se参数详细参数)

    华为nova9se参数配置详情(华为nova9se参数详细参数)

  • 电脑麦克风没声音的三种解决方法(电脑麦克风没声音是什么原因)

    电脑麦克风没声音的三种解决方法(电脑麦克风没声音是什么原因)

  • 城建附加的计税依据
  • 预收账款什么时候确认收入
  • 小规模纳税人有增值税吗
  • 缴纳增值税的会计科目
  • 财务刷卡手续费怎么处理
  • 开专票还是开普发票
  • 员工在外出差的说说
  • 增值税发票怎么抵扣
  • 失业保险费返还后是给单位还是给员工
  • 出租的土地使用权是无形资产吗
  • 预缴的增值税怎么算
  • 公司支付佣金给个人合法吗
  • 临时聘用人员费用谁承担
  • 库存盘亏的原因
  • 汽车以租代售合法吗
  • 跨年度销售费用如何调账
  • 生物资产出售的账务处理
  • 办理异地租房提取公积金流程
  • 企业利息收入会计分录怎么做
  • 个人股东无偿借款给企业
  • 合并起来
  • 资产委托经营管理合同
  • 暂估商品入库跨年收到发票怎么做账?
  • 以前年度资产损失,汇算清缴怎么填表
  • 分期收款什么是分期还款
  • 劳务服务公司可以承包大型工程吗?
  • 补缴城镇土地使用税会计分录怎么做
  • 未开发票的结算款怎么入账?
  • 网件R6400路由器怎么样?R6400拆解与内部结构评测
  • 搭建自己的php mvc框架
  • python雪花算法生成id
  • 建造师与建筑师的区别详解
  • 上海地铁9号线一期工程
  • php jsondecode
  • linux php redis扩展
  • mysql alter table命令修改表结构实例详解
  • groupinfo命令
  • phpcms模板制作教程
  • phpcms建站教程
  • 装卸搬运的设备有哪些
  • 先息后本贷款利息计算器
  • 应付福利费算支出吗
  • 长期股权投资大白话解释
  • 建立access数据库一般需要五个步骤
  • 下月初可以认证上月的发票么
  • 有形动产租赁属于经营租赁吗
  • 内账会计有法律风险吗
  • 物流公司过户给我需要做什么
  • 跨月发票作废怎么做会计分录
  • 股东撤资后需要承担责任
  • 上年的应收帐款怎么记账
  • 出差补贴算工资吗
  • 汇算清缴交通费填在办公费里面吗
  • 认证的进项退税怎么操作
  • 金税盘的初始密码一般是多少
  • 没有发票的费用怎么入账
  • 营业外支出会导致所有者权益减少吗
  • 普通发票的金额
  • 生产能量等于什么
  • 案例分析购入办法怎么写
  • 营改增之后还有营业税金及附加吗
  • 计提资产减值准备会计科目
  • 现金支票办理电话
  • 防止服务器断电
  • mysql的三种查询方式
  • 使用命令行 -devmode
  • nano linux
  • ghost安装出错
  • linux界面显示
  • linux bye
  • unity3d脚本执行顺序
  • python int 转 float
  • Linux系统安装字体
  • jquery中的$是什么
  • python内置数据结构有哪些
  • pycharm flask框架
  • 税务机关的情况说明
  • 审批制改为备案制有什么区别
  • 印花税由哪方缴纳
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设