4

在 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)
    

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

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'
4

1 回答 1

3

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

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

于 2018-05-27T13:02:00.190 回答