我目前正在从事的项目中,我必须对非常大的数据集(太大而无法完全容纳在内存中)执行回归任务。但是,根据我的估计,所得的lightgbm数据集应足够小以适合内存。我有一个可用的计算机网格,我很好奇是否有可能使用数据块创建lightgbm数据集并将所有内容合并到我可以使用的最终数据集中。这可以通过在特征轴上拆分数据,为每个块创建数据集对象并使用lightgbm的最新add_features_from
类的最新python API中提供的Dataset
方法合并结果数据集来完成。
对于这是否等同于用完整数据调用Dataset
类构造函数,我有所保留。当然,这种等效性完全取决于如何创建垃圾箱以及它们如何跨要素交互的细节。我一直认为,对于每个特征,都使用其样本分布的分位数来分配容器,这意味着容器不依赖于其他特征的分布。我之所以这样假设,是因为我不太了解lightgbm的C ++源代码,并且因为add_from_other
方法暗示了功能之间的独立性。
更熟悉lightgbm的人是否可以提供有关如何创建bin并将其映射到要素值的任何详细信息,并说是否使用add_from_other
合并具有不同要素的多个数据集等同于立即创建整个数据集? / p>