LightGBM - sklearnAPI vs训练和数据结构API和lgb.cv vs gridsearchcv / randomisedsearchcv

问题描述 投票:4回答:1
  1. skgarnAPI(LGBMModel,LGBMClassifier等)和lightgbm的默认API(lgb.Dataset,lgb.cv,lgb.train)有什么区别?我应该选择哪一个?
  2. 使用lightgbm时,使用sklearn的lgb.cv或gridsearchcv / randomisedsearchcv会更好吗?
python scikit-learn data-science lightgbm
1个回答
5
投票
  1. 这个答案已经很好地覆盖了here
  2. 基于Will Koehrsen的notebook,sklearn交叉验证API不包括提前停止的选项。因此,如果您希望使用早期停止轮次(如果您希望在给定数量的估算器的验证分数未得到改善时停止训练,这可能非常有用),最好使用LightGBM交叉验证(lgb.cv)功能。 此外,Mikhail Lisyovi的answer的摘录 - “技术上,lightbgm.cv()允许您只评估具有固定模型参数的k倍分割的性能。对于超参数调整,您需要在提供不同的循环中运行它循环完成后,参数和重新编码平均性能以选择最佳参数集。此界面与sklearn不同,后者为您提供了在CV循环中进行超参数优化的完整功能。我个人建议使用sklearn- lightgbm的API。它只是原生lightgbm.train()功能的包装器,因此速度并不慢。但是它允许你使用整个sklearn工具包,这使你的生活变得更加容易。“

因此,您最终使用哪种方法取决于问题的背景以及哪些因素对您更重要 - early_stopping_rounds或在不同参数上简化超参数优化。

© www.soinside.com 2019 - 2024. All rights reserved.