当前位置: 首页 > news >正文

XGBoost 调参实战:从入门到竞赛金牌

XGBoost 调参实战:从入门到竞赛金牌

1. XGBoost 核心参数

XGBoost 参数分类: ├── 树参数 │ ├── max_depth:树深度(3-10) │ ├── min_child_weight:叶子最小权重 │ ├── gamma:分裂最小增益 │ └── subsample:行采样比例 ├── 学习参数 │ ├── learning_rate:学习率(0.01-0.3) │ ├── n_estimators:树数量 │ └── colsample_bytree:列采样比例 ├── 正则化参数 │ ├── reg_alpha:L1 正则化 │ └── reg_lambda:L2 正则化 └── 类别参数 ├── scale_pos_weight:正负样本比 └── objective:目标函数

2. 分步调参法

importxgboostasxgbfromsklearn.model_selectionimportGridSearchCV# 步骤 1:确定树数量和学习率params_1={'learning_rate':0.1,'n_estimators':100,'max_depth':5,'min_child_weight':1,'subsample':0.8,'colsample_bytree':0.8,}# 步骤 2:调 max_depth 和 min_child_weightparam_grid_2={'max_depth':[3,5,7,9],'min_child_weight':[1,3,5,7],}grid_2=GridSearchCV(xgb.XGBClassifier(**params_1,use_label_encoder=False),param_grid_2,cv=5,scoring='accuracy')grid_2.fit(X_train,y_train)print(f"最佳:{grid_2.best_params_}")# 步骤 3:调 subsample 和 colsample_bytreeparam_grid_3={'subsample':[0.6,0.7,0.8,0.9],'colsample_bytree':[0.6,0.7,0.8,0.9],}# 步骤 4:调正则化param_grid_4={'reg_alpha':[0,0.01,0.1,1],'reg_lambda':[0,0.01,0.1,1],}# 步骤 5:降低学习率,增加树数量params_final={'learning_rate':0.01,'n_estimators':1000,'early_stopping_rounds':50,}

3. Optuna 自动调参

importoptunadefobjective(trial):params={'n_estimators':trial.suggest_int('n_estimators',100,1000),'max_depth':trial.suggest_int('max_depth',3,10),'learning_rate':trial.suggest_float('learning_rate',0.01,0.3,log=True),'min_child_weight':trial.suggest_int('min_child_weight',1,10),'subsample':trial.suggest_float('subsample',0.6,1.0),'colsample_bytree':trial.suggest_float('colsample_bytree',0.6,1.0),'reg_alpha':trial.suggest_float('reg_alpha',1e-8,10.0,log=True),'reg_lambda':trial.suggest_float('reg_lambda',1e-8,10.0,log=True),'gamma':trial.suggest_float('gamma',0,5),}model=xgb.XGBClassifier(**params,use_label_encoder=False,eval_metric='logloss')scores=cross_val_score(model,X_train,y_train,cv=5,scoring='accuracy')returnscores.mean()study=optuna.create_study(direction='maximize')study.optimize(objective,n_trials=200)

4. 竞赛技巧

竞赛常用技巧: ├── 特征工程 > 模型调参 ├── 多模型融合(Blending/Stacking) ├── 5-10 折交叉验证 ├── 数据增强(SMOTE/噪声注入) ├── 伪标签(Pseudo Labeling) └── 后处理(阈值优化)

总结

阶段参数范围
1learning_rate0.1
2max_depth, min_child_weight3-10, 1-7
3subsample, colsample0.6-1.0
4reg_alpha, reg_lambda0-10
5learning_rate0.01, n_estimators=1000
http://www.jsqmd.com/news/1140794/

相关文章:

  • 闲置电视盒子变身全能服务器:Armbian系统改造完全指南
  • 金蝶云星空表单插件对日期控件的操作代码
  • AWS IAM 最小权限实战体系 — 从组策略到 OIDC 到 Permission Boundary
  • Awoo Installer:终极Switch游戏安装工具 - 3种简单方式解决NSP/XCZ安装难题
  • 别再熬夜攒论文!7款AI写作辅助平台1天搞定全学科初稿
  • 北光恒电教你泰克MSO2024B日常使用误区与故障解决指南
  • Spark 数据倾斜排查实战:广播变量的正确用法与那些不该踩的坑
  • 实体识别落地:规则和模型不是二选一,是分层
  • Codex 最值得安装的 10 个插件:从 GitHub 到安全扫描,一篇装全
  • KH-CL0.5-H2.0-11PS
  • 面向西班牙语易读文本生成的治理型多智能体简化系统
  • Windows 7 用户必看:如何免费让 Blender 3.x+ 完美运行的终极指南 [特殊字符]
  • Fast-GitHub:解决国内开发者访问GitHub速度慢的终极方案
  • 项目实战项目简介
  • 算泥AI开发者社区MVP招募重磅启动!AI领域顶尖人才专属权益,邀你共建技术生态!
  • 终极Python手机号反查QQ工具:快速验证关联关系的完整指南
  • GitHub网络加速插件:突破性方案解决国内访问瓶颈
  • PowerToys终极指南:如何用微软官方工具集提升Windows生产力500%
  • 网盘直链下载助手:9大平台一键获取真实下载链接的完整指南
  • 年入近7亿,41万卖家养出一家浏览器公司
  • 为什么选择openEuler/community-issue?5大优势让开源问题管理更简单
  • ResNet-18 PyTorch 实战:CIFAR-10 数据集 5 个Epoch达到85%准确率
  • AI 在生产环境日志分析与异常模式识别中的实践
  • Blender 3MF插件:解决3D打印工作流中的5大核心痛点
  • 2026年最值得普通人投资的小本项目是AI数字产品分销——零库存零员工零店租
  • 如何5分钟搞定高效下载:终极网盘直链解析工具完整指南
  • 工业负载控制方案:TPD2017FN与MK64FN1M0VDC12应用解析
  • 基于ADS127L11与STM32的高精度数据采集系统设计
  • Three.js 蘑菇教程
  • DeepL浏览器划词翻译插件全面指南:提升跨语言阅读效率的最佳实践