Python 如何通过skopt/BayesSearchCV搜索绘制学习曲线

Python 如何通过skopt/BayesSearchCV搜索绘制学习曲线,python,optimization,scikit-learn,Python,Optimization,Scikit Learn,我无法从skopt优化中绘制学习曲线。以下是我尝试过的: from skopt.space import Real, Integer, Categorical from skopt.utils import use_named_args from skopt import BayesSearchCV from skopt.plots import plot_convergence rf = RandomForestRegressor(random_state =7, n_jobs=4) def

我无法从skopt优化中绘制学习曲线。以下是我尝试过的:

from skopt.space import Real, Integer, Categorical
from skopt.utils import use_named_args
from skopt import BayesSearchCV
from skopt.plots import plot_convergence

rf = RandomForestRegressor(random_state =7, n_jobs=4)
def RunSKOpt(X_train, y_train):  
    hyper_parameters =  {"n_estimators":      (5, 500),
                         "max_depth":         Categorical([3, None]),
                         "min_samples_split": (2, 10),
                         "min_samples_leaf":  (1, 10)
                        }

    search = BayesSearchCV(rf,
                           hyper_parameters,
                           n_iter = 40,
                           n_jobs = 4,
                           cv = 10,
                           verbose = 1,
                           return_train_score = False
    )
    return search

search = RunSKOpt(X_train, y_train)
search.fit(X_train, y_train)

plot_convergence(search)
情节是空的。请告诉我我做错了什么


Charles

直接从此Github发行线程:

BayesSearchCV不用于收敛绘图。你可以 但是,使用*SearchCV的cv_results_属性,将其转换为 pandas(应该只是根据cv_结果创建数据帧_ 属性),然后可视化不同 迭代。该属性类似于GridSearchCV的属性:

下面是一个这样做的例子: