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