XGBoost系列文章(四):参数调优与模型训练


XGBoost系列文章(四):参数调优与模型训练

本文是XGBoost系列的第四篇,聚焦参数调优与模型训练实战,从参数分类到调优技巧,结合代码示例解析核心方法。内容涵盖学习率、正则化、采样策略、早停法等关键环节,帮助读者快速掌握工业级调参方案。


1. XGBoost的三大类参数(通用参数、Booster参数、任务参数)分别是什么?

XGBoost参数分为三大类,控制不同层面的行为:

参数类型 作用范围 常用参数示例
通用参数 全局控制模型类型和设备 booster(模型类型:gbtree/gblinear/dart)、nthread(线程数)、verbosity(日志级别)
Booster参数 控制树模型或线性模型 eta(学习率)、max_depth(树深度)、gamma(分裂阈值)、subsample(行采样比例)
任务参数 定义任务目标和评估指标 objective(损失函数:reg:squarederror/binary:logistic)、eval_metric(评估指标)

代码示例(参数分类设置)

import xgboost as xgb

# 通用参数
general_params = {
   
   
    'booster': 'gbtree',  # 使用树模型
    'nthread': 4,          # 使用4个CPU线程
    'verbosity': 1         # 显示警告和关键信息
}

# Booster参数
booster_params = {
   
   
    'eta': 0.3,            # 学习率
    'max_depth': 6,        # 树的最大深度
    'gamma': 0.1           # 最小分裂增益阈值
}

# 任务参数
task_params = {
   
   
    'objective': 'reg:squarederror',  # 回归任务
    'eval_metric': 'rmse'            # 评估指标为均方根误差
}

# 合并所有参数
params = {
   
   **general_params, **booster_params, **task_params}

2. 学习率(eta)对模型性能有什么影响?如何调节?

学习率(eta) 控制每棵树的权重,是平衡模型精度与训练速度的核心参数:

  • eta较大(如0.3):模型快速学习,但可能跳过最优解(欠拟合)。
  • eta较小(如0.01):模型收敛更精确,但需要更多树(训练时间增加)。

调参技巧

  1. 初始值建议:0.1~0.3。
  2. 配合早停法(Early Stopping)使用,避免手动设定树的数量。
  3. 若模型欠拟合:增大eta并减少n_estimators;若过拟合:减小eta并增加n_estimators

代码示例(不同eta对比)

import matplotlib.pyplot as plt

etas = [0.01, 0.1, 0.3]
results = {
   
   }

for eta in etas
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫比乌斯@卷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值