使用 lightgbm 时如何抑制警告消息?

问题描述 投票:0回答:1

我正在使用

lightgbm
在 R 中训练 LGBM 模型。但是,每当我调用 lgb.cv() 函数时,都会出现很多警告消息。

我的代码写成:

train_params <- list(objective = "binary", learning_rate = 0.2, num_leaves = 50L, 
                     bagging_fraction = 0.3,
                     bagging_freq = 10,
                     deterministic = T, force_row_wise = T)

dtrain <- lgb.Dataset(as.matrix(train_data[, vars]), label = as.numeric(train_data[, outcome]), categorical_feature = cat_vars)
lgbm_cv <- lgb.cv(params = train_params, data = dtrain, verbose = -1)

运行上面的代码给了我这样的消息

[LightGBM] [信息] [binary:BoostFromScore]: pavg=0.446809 -> initscore=-0.213574

[LightGBM] [Info] 从分数-0.213574开始训练

[LightGBM] [警告] 没有进一步的正增益分裂,最佳增益:-inf

[LightGBM] [Warning] 停止训练因为没有更多的叶子满足分割要求

[LightGBM] [信息] [binary:BoostFromScore]: pavg=0.500000 -> initscore=0.000000

[LightGBM] [警告] 没有进一步的正增益分裂,最佳增益:-inf

[LightGBM] [Warning] 停止训练因为没有更多的叶子满足分割要求

[LightGBM] [信息] [binary:BoostFromScore]: pavg=0.553191 -> initscore=0.213574

[LightGBM] [Info] 从分数 0.213574 开始训练

[LightGBM] [警告] 没有进一步的正增益分裂,最佳增益:-inf

[LightGBM] [Warning] 停止训练因为没有更多的叶子满足分割要求

[LightGBM] [警告] 没有进一步的正增益分裂,最佳增益:-inf

[LightGBM] [Warning] 停止训练因为没有更多的叶子满足分割要求

[LightGBM] [警告] 没有进一步的正增益分裂,最佳增益:-inf

[LightGBM] [Warning] 已停止训练,因为没有更多满足拆分要求的叶子 [LightGBM] [警告] 没有进一步的正增益分裂,最佳增益:-inf

[LightGBM] [Warning] 停止训练因为没有更多的叶子满足分割要求

[LightGBM] [警告] 没有进一步的正增益分裂,最佳增益:-inf

[LightGBM] [Warning] 停止训练因为没有更多的叶子满足分割要求

[LightGBM] [警告] 没有进一步的正增益分裂,最佳增益:-inf

[LightGBM] [Warning] 停止训练因为没有更多的叶子满足分割要求

.....(以及更多)

这些已经占据了我的控制台。我看到一些讨论提到将 -1 表示冗长,但它在我的代码中不起作用。我错过了什么吗?还有其他方法可以抑制警告消息吗?

r cross-validation lightgbm
1个回答
0
投票
options(warn = -1) # globally suppresses warning messages
options(warn = 0 # to turn them back on

但是,全局抑制可能不是最安全的方法,因此请在此处查看更细微的方法。

© www.soinside.com 2019 - 2024. All rights reserved.