利用BayesianOptimization库对模型进行贝叶斯调参(XGBOOST)
步骤:
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)相关推荐
- 自动化机器学习(AutoML)之自动贝叶斯调参
一.Python实现自动贝叶斯调整超参数 [导读]机器学习中,调参是一项繁琐但至关重要的任务,因为它很大程度上影响了算法的性能.手动调参十分耗时,网格和随机搜索不需要人力,但需要很长的运行时间.因此, ...
- 调参1——随机森林贝叶斯调参
贝叶斯调参教程请参考:https://blog.csdn.net/weixin_35757704/article/details/118480135 安装贝叶斯调参: pip install baye ...
- LGBM使用贝叶斯调参
贝叶斯调参的相关知识与代码格式请参考:https://blog.csdn.net/weixin_35757704/article/details/118416689 构造LGBM模型 model = ...
- 机器学习调参——网格搜索调参,随机搜索调参,贝叶斯调参
from sklearn.datasets import load_boston from sklearn.metrics import mean_squared_error from lightgb ...
- 网格搜索、随机搜索和贝叶斯调参总结与实践
网格搜索 网格搜索时应用最广泛的超参数搜素算法,网格搜索通过查找搜索范围内的所有点,来确定最优值.一般是通过给出较大的搜索范围以及较小的步长,网格搜索时一定可以找到全局最大值或全局最小值的. 但是网格 ...
- 贝叶斯调参——bayes_opt
一.简介 贝叶斯调参主要思想是,给定优化的目标函数(广义的函数,只需指定输入和输出即可,无需知道内部结构以及数学性质),通过不断地添加样本点来更新目标函数的后验分布 他与常规的网格搜索或者随机搜索的区 ...
- python朴素贝叶斯调参_邹博机器学习升级版II附讲义、参考书与源码下载(数学 xgboost lda hmm svm)...
课程介绍 本课程特点是从数学层面推导最经典的机器学习算法,以及每种算法的示例和代码实现(Python).如何做算法的参数调试.以实际应用案例分析各种算法的选择等. 1.每个算法模块按照"原理 ...
- 决策树模型 朴素贝叶斯模型_有关决策树模型的概述
决策树模型 朴素贝叶斯模型 Decision Trees are one of the highly interpretable models and can perform both classif ...
- ML之Xgboost:利用Xgboost模型(7f-CrVa+网格搜索调参)对数据集(比马印第安人糖尿病)进行二分类预测
ML之Xgboost:利用Xgboost模型(7f-CrVa+网格搜索调参)对数据集(比马印第安人糖尿病)进行二分类预测 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 grid_s ...
- 提升深度学习模型性能及网络调参
提升深度学习模型性能及网络调参 https://www.toutiao.com/a6637086018950398472/ 图像处理与机器视觉 2018-12-25 10:42:00 深度学习有很多的 ...
最新文章
- the resource is not on the build path of a java project错误
- 剑指Offer25 合并两个排序的链表
- MUI - 解决bug: iphone页面保存时popPicker自动弹出来
- java编程能做什么_学习Java编程能做什么工作?
- 上传图片和音频到Server,再转存到DB
- mysql中怎么在列中使用时间函数_mysql中关于时间的函数使用教程
- (计算机组成原理)第二章数据的表示和运算-第二节3:定点数的移位运算(算数移位、逻辑移位和循环移位)
- 企业如何实际使用 Docker
- 关于虚数i和欧拉公式对旋转的一点启示
- 机器人 知乎碧桂园_碧桂园:机器人不独行
- Android Binder通信机制
- 国际电话号码的区号mysql数据表
- java宽度优先搜索之八数码,广度优先搜索解决八数码问题
- html怎么做左侧广告,网站横幅怎么制作,html横幅广告代码
- fantastic website
- qq扫描用户文件传腾讯服务器,QQ被传窃取用户浏览器隐私,腾讯称为判断恶意登录而读取的数据...
- DirectX的发展历程!
- RecyclerView之利用ItemDecoration实现万能分割线
- 用借款方实际付出的手续费(或利息)计算真实的手续费率(或利率)
- 杂谈——如何合并两个有序链表(时间复杂度为O(n))
热门文章
- uvm 形式验证_重复使用UVM RTL验证测试进行门级仿真详细过程介绍
- v-if与v-show
- Thread中的静态代理
- activiti 工作流_JAVA-工作流引擎-activiti-Tasks-userTask动态绑定用户或用户组
- arcgis已试图对空几何执行该操作_ArcGIS中坐标转换和投影变换
- 华为算法精英赛(题1:判断输入天数为当年的第几天)
- 网络_连接路由器的每台电脑使用固定IP的方法(TP-LINK)
- 多尺度:传统高斯金字塔,拉普拉斯金字塔及SIFT算法多尺度金字塔
- 25-70K*14薪| 梅卡曼德视觉算法、C++软件开发工程师等职位招聘
- oracle 存储过程 示例