机器学习笔记:如何使用Hyperopt对Xgboost自动调参

本文介绍了Hyperopt在机器学习中进行超参数优化的作用,特别是针对XGBoost模型。Hyperopt提供了一种超越随机搜索的贝叶斯优化方法,能够有效地寻找最优模型参数。文章详细阐述了Hyperopt的四个关键因素,并详细讲解了XGBoost的参数类型,包括常规参数、提升器参数和任务参数。通过实例展示了如何使用Hyperopt对XGBoost的超参数进行自动调参。
摘要由CSDN通过智能技术生成

Hyperopt介绍

超参数优化是实现模型性能最大化的重要步骤,scikit-learn提供了GridSearchCV和RandomizedSearchCV两个比较流行的选项。Hyperopt,是python中的一个用于"分布式异步算法组态/超参数优化"的类库。Hyperopt提供了能够超越随机搜索的算法,并且可以找到与网格搜索相媲美的结果。它是一种通过贝叶斯优化来调整参数的工具,可结合MongoDB可以进行分布式调参,快速找到相对较优的参数。

Hyheropt四个重要的因素:

  • 指定需要最小化的函数

  • 参数搜索空间

  • 存储搜索计算结果

  • 所使用的搜索算法

Xgboost介绍

XGBoost是一个优化的分布式梯度增强库, 它在Gradient Boosting框架下实现机器学习算法。XGBoost成功背后最重要的因素是它在所有场景中的可扩展性,模型具有可解释性,在工业系统中被大量使用,xgboost与gbdt相比,gbdt只用到了一阶导数信息,而xgboost则同时用到了一阶与二阶导数,并且xgboost在惩罚函数中加入了正则化项,用于控制模型的复杂度,防止过拟合。

XGBoost具有三类参数,(常规参数)general parameters,(提升器参数)booster parameters和(任务参数)task parameters。

  • 常规参数与我们用于提升的提升器有关,通常是树模型或线性模型

  • 提升器参数取决于你所选择的提升器,提升模型表现

  • 任务参数决定了学习场景, 例如回归任务、二分类任务

通常Xgboost训练模型, 

xgboost.train(params, dtrain, num_boost_round=10, evals=(), \
obj=None, feval=None, maximize=False, early_stopping_rounds=None, \
evals_result=None, verbose_eval=True, learning_rates=None, \
xgb_model=None, callbacks=None)

其中params为一个dict,

params = {
    'booster':'gbtree',
    'min_child_weight': 100,
    'eta': 0.02,
    'colsample_bytree': 0.7,
    'max_depth': 12,
    'subsample'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值