步骤:
1.构建目标函数(贝叶斯优化的目标函数)

构建目标函数

目标函数(参数优化最大化的函数):-1*mse,使用10折交叉验证(cross_val_score),
取10次的平均MSE作为最终目标函数.
def xgb_cv(max_depth, learning_rate, n_estimators, min_child_weight, subsample, colsample_bytree, reg_alpha, gamma):val = cross_val_score(estimator=XGBRegressor(max_depth=int(max_depth),learning_rate=learning_rate,n_estimators=int(n_estimators),min_child_weight=min_child_weight,subsample=max(min(subsample, 1), 0),colsample_bytree=max(min(colsample_bytree, 1), 0),reg_alpha=max(reg_alpha, 0), gamma=gamma, objective='reg:squarederror',booster='gbtree',seed=888), X=x_train, y=y_train, scoring='neg_mean_squared_error',cv=10).mean()return val

参数优化

pbounds:参数搜索空间
n_iter:迭代次数,init_points:随机多样性

默认实数范围内搜索

xgb_bo = BayesianOptimization(xgb_cv, pbounds={'max_depth': (1, 10),'learning_rate': (0.01, 0.3),'n_estimators': (1, 1000),'min_child_weight': (0, 20),'subsample': (0.001, 1),'colsample_bytree': (0.01, 1),'reg_alpha': (0.001, 20),'gamma': (0.001, 10)})
xgb_bo.maximize(n_iter=100, init_points=10)

利用最优参数拟合模型

由于前面int不起作用,对整数参数进行取整

xgb_bo.max['params']:存储最佳参数的字典
params = xgb_bo.max['params']
xgb1 = XGBRegressor(gamma=params['gamma'], colsample_bytree=params['colsample_bytree'],learning_rate=params['learning_rate'],max_depth=int(params['max_depth']), min_child_weight=params['min_child_weight'],n_estimators=int(params['n_estimators']),reg_alpha=params['reg_alpha'], subsample=params['subsample'],objective='reg:squarederror',booster='gbtree',n_jobs=4)

参考:
强大而精致的机器学习调参方法:贝叶斯优化
具有贝叶斯优化的XGBoost和随机森林
fmfn/BayesianOptimization
调参神器贝叶斯优化(bayesian-optimization)实战篇

利用BayesianOptimization库对模型进行贝叶斯调参(XGBOOST)相关推荐

  1. 自动化机器学习(AutoML)之自动贝叶斯调参

    一.Python实现自动贝叶斯调整超参数 [导读]机器学习中,调参是一项繁琐但至关重要的任务,因为它很大程度上影响了算法的性能.手动调参十分耗时,网格和随机搜索不需要人力,但需要很长的运行时间.因此, ...

  2. 调参1——随机森林贝叶斯调参

    贝叶斯调参教程请参考:https://blog.csdn.net/weixin_35757704/article/details/118480135 安装贝叶斯调参: pip install baye ...

  3. LGBM使用贝叶斯调参

    贝叶斯调参的相关知识与代码格式请参考:https://blog.csdn.net/weixin_35757704/article/details/118416689 构造LGBM模型 model = ...

  4. 机器学习调参——网格搜索调参,随机搜索调参,贝叶斯调参

    from sklearn.datasets import load_boston from sklearn.metrics import mean_squared_error from lightgb ...

  5. 网格搜索、随机搜索和贝叶斯调参总结与实践

    网格搜索 网格搜索时应用最广泛的超参数搜素算法,网格搜索通过查找搜索范围内的所有点,来确定最优值.一般是通过给出较大的搜索范围以及较小的步长,网格搜索时一定可以找到全局最大值或全局最小值的. 但是网格 ...

  6. 贝叶斯调参——bayes_opt

    一.简介 贝叶斯调参主要思想是,给定优化的目标函数(广义的函数,只需指定输入和输出即可,无需知道内部结构以及数学性质),通过不断地添加样本点来更新目标函数的后验分布 他与常规的网格搜索或者随机搜索的区 ...

  7. python朴素贝叶斯调参_邹博机器学习升级版II附讲义、参考书与源码下载(数学 xgboost lda hmm svm)...

    课程介绍 本课程特点是从数学层面推导最经典的机器学习算法,以及每种算法的示例和代码实现(Python).如何做算法的参数调试.以实际应用案例分析各种算法的选择等. 1.每个算法模块按照"原理 ...

  8. 决策树模型 朴素贝叶斯模型_有关决策树模型的概述

    决策树模型 朴素贝叶斯模型 Decision Trees are one of the highly interpretable models and can perform both classif ...

  9. ML之Xgboost:利用Xgboost模型(7f-CrVa+网格搜索调参)对数据集(比马印第安人糖尿病)进行二分类预测

    ML之Xgboost:利用Xgboost模型(7f-CrVa+网格搜索调参)对数据集(比马印第安人糖尿病)进行二分类预测 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 grid_s ...

  10. 提升深度学习模型性能及网络调参

    提升深度学习模型性能及网络调参 https://www.toutiao.com/a6637086018950398472/ 图像处理与机器视觉 2018-12-25 10:42:00 深度学习有很多的 ...

最新文章

  1. the resource is not on the build path of a java project错误
  2. 剑指Offer25 合并两个排序的链表
  3. MUI - 解决bug: iphone页面保存时popPicker自动弹出来
  4. java编程能做什么_学习Java编程能做什么工作?
  5. 上传图片和音频到Server,再转存到DB
  6. mysql中怎么在列中使用时间函数_mysql中关于时间的函数使用教程
  7. (计算机组成原理)第二章数据的表示和运算-第二节3:定点数的移位运算(算数移位、逻辑移位和循环移位)
  8. 企业如何实际使用 Docker
  9. 关于虚数i和欧拉公式对旋转的一点启示
  10. 机器人 知乎碧桂园_碧桂园:机器人不独行
  11. Android Binder通信机制
  12. 国际电话号码的区号mysql数据表
  13. java宽度优先搜索之八数码,广度优先搜索解决八数码问题
  14. html怎么做左侧广告,网站横幅怎么制作,html横幅广告代码
  15. fantastic website
  16. qq扫描用户文件传腾讯服务器,QQ被传窃取用户浏览器隐私,腾讯称为判断恶意登录而读取的数据...
  17. DirectX的发展历程!
  18. RecyclerView之利用ItemDecoration实现万能分割线
  19. 用借款方实际付出的手续费(或利息)计算真实的手续费率(或利率)
  20. 杂谈——如何合并两个有序链表(时间复杂度为O(n))

热门文章

  1. uvm 形式验证_重复使用UVM RTL验证测试进行门级仿真详细过程介绍
  2. v-if与v-show
  3. Thread中的静态代理
  4. activiti 工作流_JAVA-工作流引擎-activiti-Tasks-userTask动态绑定用户或用户组
  5. arcgis已试图对空几何执行该操作_ArcGIS中坐标转换和投影变换
  6. 华为算法精英赛(题1:判断输入天数为当年的第几天)
  7. 网络_连接路由器的每台电脑使用固定IP的方法(TP-LINK)
  8. 多尺度:传统高斯金字塔,拉普拉斯金字塔及SIFT算法多尺度金字塔
  9. 25-70K*14薪| 梅卡曼德视觉算法、C++软件开发工程师等职位招聘
  10. oracle 存储过程 示例