根据docs,当我可以使用sklearn API来提供数据和训练模型时,lightgbm.Dataset()的用途是什么?
有没有什么真实的例子来解释lightgbm.dataset()的用法呢?
发布于 2021-02-02 13:33:36
LightGBM使用一些技术来加速训练,这些技术需要在训练开始之前进行一次预处理。
其中最重要的是将连续特征嵌入到直方图中。当LightGBM搜索拆分以可能添加到树中时,它只搜索这些直方图框的边界。这极大地减少了要计算的拆分次数。
我认为这张来自"What Makes LightGBM Fast?"的图片很好地描述了这一点:

库中的Dataset对象是进行此预处理的位置。直方图只创建一次,然后不需要在其余的训练中再次计算。
您可以通过查看控制该数据集的参数(可从https://lightgbm.readthedocs.io/en/latest/Parameters.html#dataset-parameters获得)来获取有关Dataset对象中发生的情况的更多信息。其他任务的一些示例:
针对稀疏features
当我可以使用sklearn API提供数据和训练模型时使用
lightgbm.sklearn接口旨在使LightGBM与其他库(如xgboost和scikit-learn )一起使用变得容易。它接受scipy稀疏矩阵、pandas数据帧和numpy数组等格式的数据,以便与其他库兼容。在内部,LightGBM根据这些输入构造一个数据集。
https://stackoverflow.com/questions/65924856
复制相似问题