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

  • 爱奇艺和爱奇艺极速版会员通用吗(爱奇艺和爱奇艺体育会员通用吗)

    爱奇艺和爱奇艺极速版会员通用吗(爱奇艺和爱奇艺体育会员通用吗)

  • 手机怎么设置倒计时天数(手机怎么设置倒计时拍照)

    手机怎么设置倒计时天数(手机怎么设置倒计时拍照)

  • 淘宝权重怎么提升权重(提升淘宝权重)

    淘宝权重怎么提升权重(提升淘宝权重)

  • 荣耀10录屏功能在哪里(荣耀10录屏功能怎么开启)

    荣耀10录屏功能在哪里(荣耀10录屏功能怎么开启)

  • 抖音快手视频可以同步吗(抖音快手视频可以隐藏吗)

    抖音快手视频可以同步吗(抖音快手视频可以隐藏吗)

  • 钉钉为什么不能退群(钉钉为什么不能发起视频会议)

    钉钉为什么不能退群(钉钉为什么不能发起视频会议)

  • 联通宽带已连接不可上网(联通宽带已连接但无法访问互联网)

    联通宽带已连接不可上网(联通宽带已连接但无法访问互联网)

  • 荣耀30s支持内存扩展吗(荣耀30s支持内存卡扩展吗)

    荣耀30s支持内存扩展吗(荣耀30s支持内存卡扩展吗)

  • airpods能跟华为匹配吗(airpods能跟华为电脑连接吗)

    airpods能跟华为匹配吗(airpods能跟华为电脑连接吗)

  • 华为eva-al00什么型号(华为eva aloo)

    华为eva-al00什么型号(华为eva aloo)

  • oppoa37m怎么装内存卡(oppoa37m怎么加内存卡)

    oppoa37m怎么装内存卡(oppoa37m怎么加内存卡)

  • iphone11自带什么配件(苹果11都是自带什么软件)

    iphone11自带什么配件(苹果11都是自带什么软件)

  • 小米热点密码是多少(小米热点密码是什么)

    小米热点密码是多少(小米热点密码是什么)

  • 苹果手机画图功能在哪(苹果手机画图在哪里画)

    苹果手机画图功能在哪(苹果手机画图在哪里画)

  • 离职要解除子账号吗(离职之后子账号需要注销吗)

    离职要解除子账号吗(离职之后子账号需要注销吗)

  • 华为mate20拍照怎么加时间(华为mate20拍照怎么调)

    华为mate20拍照怎么加时间(华为mate20拍照怎么调)

  • 多闪怎么看来访记录(多闪怎样看访客记录)

    多闪怎么看来访记录(多闪怎样看访客记录)

  • 普通手环怎么调时间(手环如何使用)

    普通手环怎么调时间(手环如何使用)

  • 抖音点赞受限怎么解决(抖音点赞受限怎么解除限制)

    抖音点赞受限怎么解决(抖音点赞受限怎么解除限制)

  • 小米4手环怎么放音乐(小米4手环怎么连接手机APP)

    小米4手环怎么放音乐(小米4手环怎么连接手机APP)

  • 相机怎么传照片到手机(相机怎么传照片到手机vivo)

    相机怎么传照片到手机(相机怎么传照片到手机vivo)

  • 怎样看三年前的朋友圈(怎么查几年前的)

    怎样看三年前的朋友圈(怎么查几年前的)

  • 什么是死锁?如何避免死锁?(什么是死锁,死锁的四个必要条件)

    什么是死锁?如何避免死锁?(什么是死锁,死锁的四个必要条件)

  • css 隐藏元素(css隐藏元素的方式)

    css 隐藏元素(css隐藏元素的方式)

  • 小规模30万免增值税1点怎么申报税款
  • 递延所得税负债怎么算
  • 期末留抵税额怎么算开票金额
  • 税会差异产生的原因
  • 公司章程在工商局
  • 房地产企业所得税纳税义务发生时间
  • 个人车卖给公司能抵税吗
  • 住宿费电子普票可以抵扣进项税额
  • 用友软件在哪里
  • 企业防伪税控维护方案
  • 业务招待费扣除计算
  • 股权出资登记管理办法已废止
  • 融资租赁咨询服务合同需要交印花税吗
  • 工资税后扣款
  • 购买固定资产没付款怎么入账
  • 营改增后税目税率表
  • 购进药材如何抵扣进项税额
  • 应征增值税不含税销售额(3%征收率)怎么算
  • 商品返点收入账务处理
  • 工程施工纳税
  • 先开票后预缴能退吗
  • 资产处置损益计入利润吗
  • 个税本期收入是应发还是实发
  • 一次性收取的租金怎么纳税
  • 发票跨年了还能认证吗
  • 公司账务审计费用取费标准
  • 公司职员培训与管理
  • 小规模纳税人有销无进是什么意思
  • 支付宝国际驾照有效期是多久
  • 应收账款期初余额是借还是贷
  • windows11 缩放
  • 建筑业总产值和营业收入相等吗?
  • win10重装系统后黑屏无图像
  • 员工工伤保险报销条件
  • 从上布法罗荒野地区的惠特克顶小道向东看,阿肯色州奥沙克国家森林 (© Jens Lambert Photography/Getty Images Plus)
  • vue实现瀑布流布局
  • 利用matlab作图
  • 后端中spef文件和spf文件
  • go语言入门指南
  • 自学前端,你必做的事
  • 购买短期股票
  • 资产负债表中应交税费为负数是什么意思
  • java中的变量
  • 出让土地的土地出让金与抵押权
  • python中的threading模块
  • 销售成本是付现成本吗
  • 房屋租赁时需要交税吗
  • 下列支出计入销售费用账户借方的是
  • 采购供应部门发挥的作用
  • 装修消防改造费用会计分录
  • 利润表中其他业务利润怎么算
  • 开发商出售商铺税费
  • 建筑行业普票和专票的税率一样吗
  • 客户购买商品的三要素
  • 广告公司收到广告收入会计分录
  • 我是小规模纳税人,客户都想获得13%的专票
  • 应付职工薪酬的工资是实发工资还是应发工资
  • 金蝶迷你版为什么打不开
  • 财产裁定书
  • 建筑业营改增后税务问题
  • 分公司有独立账套吗
  • 销售空调并提供安装如何征增值税
  • 商业企业批发商是什么
  • win8系统如何关机
  • Windows XP/Vista/Windows 7常见蓝屏故障分析
  • 怎么用u盘装xp系统教程
  • ubuntu 16.10
  • win8升win8.1
  • vrvedp_m.exe是什么
  • linuxwindows差别
  • win8使用技巧 图文
  • django项目中遇到的难点
  • perl tr函数
  • css div内容自动换行
  • python中str的用法
  • react和nodejs
  • JavaScript中的数据类型
  • 全国税务发票查询电话
  • 如何安装金税三期app
  • 销售佣金属于什么税目
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设