R语言 如何在使用lightgbm时抑制警告消息?

p5cysglq  于 2023-03-27  发布在  其他
关注(0)|答案(1)|浏览(180)

我正在使用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] [Info] [binary:BoostFromScore]:pavg=0.446809 -〉initscore=-0.213574
[LightGBM] [信息]从分数-0.213574开始训练
[LightGBM] [Warning]没有正增益的进一步拆分,最佳增益:-inf
[LightGBM] [Warning]停止训练,因为没有更多的叶子满足拆分要求
[LightGBM] [Info] [binary:BoostFromScore]:pavg=0.500000 -〉initscore=0.000000
[LightGBM] [Warning]没有正增益的进一步拆分,最佳增益:-inf
[LightGBM] [Warning]停止训练,因为没有更多的叶子满足拆分要求
[LightGBM] [Info] [binary:BoostFromScore]:pavg=0.553191 -〉initscore=0.213574
[LightGBM] [Info] Start training from score 0.213574
[LightGBM] [Warning]没有正增益的进一步拆分,最佳增益:-inf
[LightGBM] [Warning]停止训练,因为没有更多的叶子满足拆分要求
[LightGBM] [Warning]没有正增益的进一步拆分,最佳增益:-inf
[LightGBM] [Warning]停止训练,因为没有更多的叶子满足拆分要求
[LightGBM] [Warning]没有正增益的进一步拆分,最佳增益:-inf
[LightGBM] [警告]停止训练,因为没有更多的叶子满足拆分要求[LightGBM] [警告]没有正增益的进一步拆分,最佳增益:-inf
[LightGBM] [Warning]停止训练,因为没有更多的叶子满足拆分要求
[LightGBM] [Warning]没有正增益的进一步拆分,最佳增益:-inf
[LightGBM] [Warning]停止训练,因为没有更多的叶子满足拆分要求
[LightGBM] [Warning]没有正增益的进一步拆分,最佳增益:-inf
[LightGBM] [Warning]停止训练,因为没有更多的叶子满足拆分要求
.....(以及更多)
这些已经占据了我的控制台。我看到一些讨论提到把-1放在verbose上,但它在我的代码中不起作用。我错过了什么吗?有没有其他方法来抑制警告消息?

2wnc66cl

2wnc66cl1#

options(warn = -1) # globally suppresses warning messages
options(warn = 0 # to turn them back on

但是,全局抑制可能不是最安全的方法,因此检查here以获得更细致的方法。

相关问题