sklearnAPI(LGBMModel,LGBMClassifier等)与lightgbm的默认API(lgb.Dataset,lgb.cv,lgb.train)有什么区别?我更喜欢使用哪一个?
使用lightgbm时,最好使用sklearn的lgb.cv或gridsearchcv / randomisedsearchcv吗?
答案 0 :(得分:4)
基于Will Koehrsen的notebook,sklearn交叉验证API不包含提早停止的选项。因此,如果您希望使用早期停止回合(如果在给定数量的估计量的验证分数没有改善的情况下要停止训练,这可能会非常有用),则最好使用LightGBM交叉验证(lgb.cv)功能。
此外,摘自Mikhail Lisyovi的answer-“从技术上讲,lightbgm.cv()仅允许您在具有固定模型参数的k倍分割中评估性能。对于超参数调整,您需要在提供不同参数的循环中运行它,并重新编码平均性能以选择最佳参数集。循环完成后,此接口与sklearn不同,后者为您提供了在CV循环中进行超参数优化的完整功能。建议使用lightgbm的sklearn-API。它只是本机lightgbm.train()功能的包装,因此速度并不慢,但是它允许您使用完整的sklearn工具包堆栈,这使您的生活变得更加轻松更容易。“
因此,最终使用哪种方法取决于问题的背景以及对您更重要的因素-Early_stopping_rounds或对各种参数进行超参数优化的简便性。