数据挖掘竞赛预测模型——贝叶斯参数搜索

bayes_opt库实现贝叶斯自动调参

本案例使用xgboost算法实现bayes_opt自动搜索调参

import pandas as pd
import xgboost as xgb
from sklearn.model_selection import cross_val_score
from bayes_opt import BayesianOptimization

train_data = pd.read_csv('...')
train_label = pd.read_csv('...')
test_data = pd.read_csv('...')

def xgb_cv(n_estimators,learning_rate,max_depth,min_child_weigth,gamma,subsample,colsample_bytree,reg_alpha,reg_lambda):
    val = cross_val_score(    xgb.XGBRegressor( boosting_type='gbdt',
                                            objective='regression',
                                            n_estimators=int(n_estimators),
                                            learning_rate=learning_rate,
                                            max_depth=int(max_depth),
                                            min_child_weigth=min_child_weigth,
                                            gamma=gamma,
                                            subsamples=subsample,
                                            colsample_bytree=colsample_bytree,
                                            reg_alpha=reg_alpha,
                                            reg_lambda=reg_lambda)
                               train_data, 
                               train_label,
                               scoring='neg_mean_absolute_error',
                               cv=5,
                               n_jobs=4).mean()
    return val
xgb_bayes = BayesianOptimization(   xgb_cv,
                                    {'n_estimators':(20,500),
                                     'learning_rate':(0,0.5),
                                     'max_depth':(3,20),
                                     'min_child_weigth':(1,10),
                                     'gamma':(0,3),
                                     'subsample':(0.5,1),
                                     'colsample_bytree':(0.6,1),
                                     'reg_alpha':(0,5),
                                     'reg_lambda':(0,5)})
xgb_bayes.maximize()     #开始训练
result = xgb_bayes.max     #得到最佳分数以及最佳分数对应的参数,为字典类型
result_params = result['params']     #提取最佳参数,为字典类型

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

o0xgw0o

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

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

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

打赏作者

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

抵扣说明:

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

余额充值