lightgbm.basic.LightGBMError:检查失败:(best_split_info.left_count) > (0)

问题描述

还有其他几个与此类似的问题,但我找不到合适的解决方案。我将 LightGBM 与 Scikit-Optimize BayesSearchCV 结合使用。

{
    "security": {
        "is_bogon": false,"is_cloud_provider": false,"is_tor": false,"is_tor_exit": false,"is_proxy": false,"is_anonymous": false,"is_abuser": false,"is_attacker": false,"is_threat": false
    }
}

训练会运行一段时间,然后出现以下错误

full_pipeline = skl.Pipeline(steps=[('preprocessor',pre_processor),('estimator',lgbm.sklearn.LGBMClassifier())])
scorer=make_scorer(fl.lgb_focal_f1_score)
lgb_tuner = sko.BayesSearchCV(full_pipeline,hyper_space,cv=5,refit=True,n_iter=num_calls,scoring=scorer)
lgb_tuner.fit(balanced_xtrain,balanced_ytrain)

类似问题的一些答案表明这可能是使用 GPU 的结果,但我没有可用的 GPU。我不知道还有什么原因导致它或如何尝试修复它。任何人都可以提出任何建议吗?

解决方法

我认为这是由于我的超参数限制错误,导致一个超参数被设置为零,但我不确定是哪一个。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...