我有一个超大的数据集(超过1 TB),我想使用Scikit-Learn的GradientBoostingRegressor进行训练。
由于数据量远超我的内存容量,我考虑将数据分成小块,并逐一进行’fit()’操作。
我了解到将’warm_start’属性设置为True可以在fit()后保留权重。然而,似乎每次调用fit()时都需要增加估算器的数量。
是否可以先对所有数据块进行fit()操作,然后再将估算器的数量增加一个?
对于我的问题,即拟合超大数据集,有什么最佳解决方案?
回答:
你可以尝试使用SGD估算器中的partial_fit
方法。虽然它不是GBM,但效果很好。对于你这种数据量,使用线性模型并进行适当的交互作用可能会得到不错的结果。