如何解决LightGBM:lightgbm.dataset() 的意图
当我可以使用 sklearn API 提供数据并训练模型时,lightgbm.Dataset() 根据 docs 的目的是什么?
任何解释 lightgbm.dataset() 用法的真实示例都会很有趣?
解决方法
LightGBM 使用一些技术来加速训练,这些技术需要在训练开始前进行一次预处理。
其中最重要的是将连续特征分桶为直方图。当 LightGBM 搜索分裂以可能添加到树中时,它只搜索这些直方图 bin 的边界。这大大减少了要评估的拆分次数。
我认为来自 "What Makes LightGBM Fast?" 的这张图片描述得很好:
库中的 Dataset 对象是进行预处理的地方。直方图创建一次,然后在剩余的训练中不需要再次计算。
您可以通过查看控制该数据集的参数来获取有关 Dataset
对象中发生的情况的更多信息,该参数位于 https://lightgbm.readthedocs.io/en/latest/Parameters.html#dataset-parameters。其他任务的一些示例:
- 针对稀疏特征的优化
- 过滤掉不可分割的特征
何时可以使用 sklearn API 来提供数据并训练模型
lightgbm.sklearn
接口旨在使 LightGBM 与其他库(如 xgboost
和 scikit-learn
)一起使用变得更加容易。它以 scipy
稀疏矩阵、pandas
数据框和 numpy
数组等格式接收数据,以便与其他库兼容。在内部,LightGBM 根据这些输入构建一个数据集。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。