如何在LightGBM python中实现record_evaluation回调?

Alb*_*uez 2 python lightgbm

我正在使用该model = lgb.train功能。当尝试根据 LightGBM 模型的历元(即 )绘制评估指标时,lgb.plot_metric(model)出现以下错误:

类型错误:助推器必须是 dict 或 LGBMModel。要将plot_metric与Booster类型一起使用,首先使用record_evaluation回调记录指标,然后将其作为参数传递给plot_metricbooster

但我在文档中找不到有关设置上述回调的参数的任何信息。有没有办法在不借助 scikit-learn 版本的 LightGBM 的情况下实现这一点?

Sho*_*anz 6

以下内容应该有助于绘制指标。我想文档对于用法并不是很清楚,但这里有一个示例笔记本。evals 字典包含一个 OrderedDict 并且可以使用该plot_metric方法进行绘制。

train_dt = lgb.Dataset(data=train,label=train_y)
valid_dt = lgb.Dataset(data = valid, 
                       label=valid_y, 
                       reference=train_dt)

params = {
        'objective': 'regression',
        'metric': 'root_mean_squared_error',
        'num_leaves': 41,
}
evals={}
mod = lgb.train(params=params, 
                train_set = train_dt, 
                valid_sets=[train_dt, valid_dt],
                callbacks = [lgb.record_evaluation(evals)])

lgb.plot_metric(evals)
Run Code Online (Sandbox Code Playgroud)