• lightgbm 的 sklearnAPI(LGBMModel、LGBMClassifier 等)和默认 API(lgb.Dataset、lgb.cv、lgb.train)有什么区别?我应该更喜欢使用哪一种?
  • 使用lightgbm时使用sklearn的lgb.cv还是gridsearchcv/randomisedsearchcv更好?
  • 最佳答案

  • 这个答案已经被很好地覆盖了 here
  • 基于 Will Koehrsen 的 notebook,sklearn 交叉验证 API 不包括提前停止的选项。因此,如果您希望使用提前停止轮次(如果您想在给定数量的估计器的验证分数没有提高时停止训练,这将非常有用),最好使用 LightGBM 交叉验证(lgb.cv)功能。
    此外,摘自 Mikhail Lisyovi 的 answer -“从技术上讲,lightbgm.cv() 只允许您评估具有固定模型参数的 k 折分割的性能。对于超参数调整,您需要在循环中运行它,提供不同的参数和重新编码平均性能以选择最佳参数集。循环完成后。这个接口(interface)与sklearn不同,它为您提供了在CV循环中进行超参数优化的完整功能。我个人建议使用sklearn- lightgbm 的 API。它只是对原生 lightgbm.train() 功能的封装,因此它不会变慢。但它允许您使用完整的 sklearn 工具包,这让您的生活更轻松。”

  • 因此,您最终使用哪种方法取决于问题的上下文以及哪些因素对您更重要 - early_stopping_rounds 或对不同参数进行超参数优化的难易程度。

    关于python - LightGBM - sklearnAPI 与训练和数据结构 API 以及 lgb.cv 与 gridsearchcv/randomisedsearchcv,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54625245/

    10-09 04:43