贝叶斯调参——bayes_opt
⼀、简介
贝叶斯调参主要思想是,给定优化的⽬标函数(⼴义的函数,只需指定输⼊和输出即可,⽆需知道内部结构以及数学性质),通过不断地添加样本点来更新⽬标函数的后验分布
他与常规的⽹格搜索或者随机搜索的区别是:
贝叶斯调参采⽤⾼斯过程,考虑之前的参数信息,不断地更新先验;⽹格搜索未考虑之前的参数信息
贝叶斯调参迭代次数少,速度快;⽹格搜索速度慢,参数多时易导致维度爆炸
贝叶斯调参针对⾮凸问题依然稳健;⽹格搜索针对⾮凸问题易得到局部优最
⼆、安装
pip install bayesian-optimization
三、⽤贝叶斯调参的⼩例⼦:
from bayes_opt import BayesianOptimization
def rf_cv(num_leaves,max_depth,subsample,min_child_samples):
val = cross_val_score(LGBMRegressor(
objective ='regression_l1',
num_leaves=int(num_leaves),
max_depth=int(max_depth),
subsample = subsample,
怎么画山min_child_samples =int(min_child_samples)
)
,X=train_X, y=train_y_ln, verbo=0, cv =5, scoring=make_scorer(mean_absolute_error)色彩搭配学习
).mean()
return1- val
罽宾
#实例化⼀个bayes优化对象了:
rf_bo = BayesianOptimization(
rf_cv,
{
'num_leaves':(2,100),
'max_depth':(2,100),
'subsample':(0.1,1),
'min_child_samples':(2,100)
}
浏览器崩溃
)
#运⾏bayes优化
rf_bo.maximize()感谢的歌曲
七女#输出分数
泡菜制作
1- rf_bo.max['target']
曲线拟合plt.figure(figsize=(13,5))
sns.lineplot(x=['0_origin','1_log_transfer','2_L1_&_L2','3_change_model','4_parameter_turning'], y=[1.36,0.19,0.19,0.14,0.13])