python - 您可以在 LightGBM.train() 中获取每个 boosting 轮的分数吗?

标签 python lightgbm

基本信息

lgbm.train() 和 early_stopping 计算每个 boost 轮后的目标函数和 feval 分数,我们可以让它打印这些每verbose_eval轮,如下所示:

bst=lgbm.train(**params)
[10]    valid_0's binary_logloss: 0.215654  valid_0's BinaryError: 0.00775126
[20]    valid_0's binary_logloss: 0.303113  valid_0's BinaryError: 0.00790619
[30]    valid_0's binary_logloss: 0.358056  valid_0's BinaryError: 0.0838744
[40]    valid_0's binary_logloss: 0.386763  valid_0's BinaryError: 0.138462
[50]    valid_0's binary_logloss: 0.411467  valid_0's BinaryError: 0.176986

问题:

有什么方法可以访问每个助推轮的这些分数列表吗?

我能在文档中找到的最接近的东西 & bst.__dict__bst.best_score

defaultdict(collections.OrderedDict,
             {'valid_0': OrderedDict([('binary_logloss', 0.4233895131745753),
                           ('BinaryError', 0.194285077972568)])})

最佳答案

您可以按如下方式使用evals_result参数;

evals_result = {}

bst=lgbm.train(evals_result=evals_result, valid_sets = [valid_set, train_set],
               valid_names = [‘valid’, ‘train’], **params)

evals_result
>>> {‘train’: {‘logloss’: [‘0.36483’, ‘0.32617’, …]}, ‘valid’: {‘logloss’: [‘0.479168’, ‘0.317850’, …]}}

您将拥有一个字典,其中包含每个提升轮的训练分数和有效设定分数。

关于python - 您可以在 LightGBM.train() 中获取每个 boosting 轮的分数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59992923/

相关文章:

python - LightGBM 是否根据名称或 cat_code 值处理 Pandas 分类?

python - 如何使用python-docx增加word文档中的段落对象?

python - 使用 houghCircles (OpenCV) 检测小圆圈

python - 修改后将*args、**kwargs传递给父类

lightgbm - 使用具有平均精度召回分数的 lightgbm

python - 安装Mac后找不到LightGBM镜像

python - 如何使用 pandas 处理 unicode 字符并打印到屏幕?

python - 如何从主机共享 python 库到多个 docker 容器?

lightgbm - 如何正确保存mlr3 lightgbm模型?

python - 优化后如何将多个超参数传给LightGBM?