基于Logistic回归算法的贝叶斯优化算法如何工作?

2024-04-29 10:47:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经使用GridSearchCV很长一段时间了,最后决定使用更高效、更省时的方法,比如贝叶斯优化(所以我被告知要使用)。我设置了一些参数,结果开始显示出来

代码如下:

#import BayesianOptimization
from bayes_opt import BayesianOptimization
#import cross validation score
from sklearn.model_selection import cross_val_score
# Set parameters -- have I set an interval or just 2 numbers for each parameter
pbounds = {
    'C': (0.01, 1.0),
    'max_iter': (100,1000),
    'intercept_scaling': (1.0, 2.0)}
# Define logisticregression_hyper_param function
def logisticregression_hyper_param(C, max_iter, intercept_scaling):
    lr= LogisticRegression(C=C,max_iter=max_iter)
    return np.mean(cross_val_score(lr, X, y, cv=3, scoring='roc_auc'))

optimizer = BayesianOptimization(f=logisticregression_hyper_param,pbounds=pbounds)
# How does this part work?
optimizer.maximize(n_iter=10, init_points=2)

# This part is supposed to give me the best parameters
optimizer.max

我还在得到结果,已经有一段时间了

到目前为止,它看起来像什么:

Partial Output

我的主要问题是,我是通过设置这些参数还是仅仅设置值来设置间隔?如果我设置一个时间间隔,它如何决定每次增加多少


Tags: fromimport参数paramvalhypermaxoptimizer