LightGBMError:b'检查失败:config->bagging_freq > 0 && config->bagging_fraction < 1.0f && config->bagging_fraction > 0.0f

Kri*_*i07 7 python random-forest lightgbm

在 Python 上使用 lightGBM 并且由于它没有足够的文档,我有一段时间无法解决这个问题。如果这里有任何有 LGB 经验的人,请帮我解决这几个问题。

  1. 当具有连续目标变量时,lgb.cv 不起作用。为什么?
  2. 当有客观的“回归”时,我可以将 boosting_type 设置为“rf”(随机森林)吗?这个问题在图书馆这里打开有点证实我可以。想法?
  3. 如果我用“gbdt”替换“rf”参数,下面的代码可以完全正常工作

    params = {
            "objective" : "regression", "metric" : "rmse",
            "num_leaves" : 150, "learning_rate" : 0.05,
            "bagging_fraction" : 0.6, "feature_fraction" : 0.7,
            "bagging_frequency" : 1, "bagging_seed" : 2018,
            "verbosity" : -1, 'max_depth':-1,
            "min_child_samples":20, "boosting":"rf"}
    
    model = lgb.train(params, lgtrain, 1000, valid_sets=[lgval],
            early_stopping_rounds=20, verbose_eval=20, evals_result=evals_result)
    
    Run Code Online (Sandbox Code Playgroud)

在使用随机森林增强方法时,我收到以下错误 -

LightGBMError: b'Check failed: config->bagging_freq > 0 && config->bagging_fraction < 1.0f && config->bagging_fraction > 0.0f at /home/travis/build/Microsoft/LightGBM/python-package/compile/src/boosting/rf.hpp, line 29 .\n'
Run Code Online (Sandbox Code Playgroud)

Myk*_*vyi 4

正如错误所示,代码失败,因为检查未通过。原因很简单——频率变量的名称是bagging_freq 而不是bagging_frequency

您已经找到了有关lgb.cv回归配置的第一个问题的正确答案。

  • 那行得通。当使用“gdbt”作为提升类型时, bagging_freq 起作用。奇怪的。 (3认同)