微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

LightGBM:lightgbm.dataset() 的意图

如何解决LightGBM:lightgbm.dataset() 的意图

当我可以使用 sklearn API 提供数据并训练模型时,lightgbm.Dataset() 根据 docs 的目的是什么?

任何解释 lightgbm.dataset() 用法的真实示例都会很有趣?

解决方法

LightGBM 使用一些技术来加速训练,这些技术需要在训练开始前进行一次预处理。

其中最重要的是将连续特征分桶为直方图。当 LightGBM 搜索分裂以可能添加到树中时,它只搜索这些直方图 bin 的边界。这大大减少了要评估的拆分次数。

我认为来自 "What Makes LightGBM Fast?" 的这张图片描述得很好:

enter image description here

库中的 Dataset 对象是进行预处理的地方。直方图创建一次,然后在剩余的训练中不需要再次计算。

您可以通过查看控制该数据集的参数来获取有关 Dataset 对象中发生的情况的更多信息,该参数位于 https://lightgbm.readthedocs.io/en/latest/Parameters.html#dataset-parameters。其他任务的一些示例:

  • 针对稀疏特征的优化
  • 过滤掉不可分割的特征

何时可以使用 sklearn API 来提供数据并训练模型

lightgbm.sklearn 接口旨在使 LightGBM 与其他库(如 xgboostscikit-learn)一起使用变得更加容易。它以 scipy 稀疏矩阵、pandas 数据框和 numpy 数组等格式接收数据,以便与其他库兼容。在内部,LightGBM 根据这些输入构建一个数据集。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。