加快模型拟合

数据挖掘 机器学习
2022-03-01 09:40:38

有哪些方法可以加快模型在大文件(超过 200 mb)上的拟合速度?我尝试过分块(块)或使用 dask 但效果并不理想。我使用 16GB RAM 和 i7 2.2GHz 处理器 4 核。仍然是购买云服务还是使用更好的计算机?我的分类器

clf = xgb.XGBClassifier(n_estimators=500,
                        n_jobs=4,
                        max_depth=9,
                        learning_rate=0.05,
                        subsample=0.7,
                        colsample_bytree=0.7,
                        missing=-999, 
                        gamma = 0.1)
# Number of variable > 400
# Number of rows > 200000
2个回答

您可以尝试的一件事是使用“普通”Logit,因为它的计算成本不是很高。使用 Lasso、Elastic Net 或 Ridge 可以产生良好的结果(通常类似于提升),如图所示

是 Logit/Lasso 的最新代码示例。

如果你想坚持使用 boosting,你可以检查 LightGBM,因为它往往更快。XGBoost 在数据处理方面趋于“繁重”。LightGBM(顾名思义)旨在解决这个问题,到目前为止我有很好的经验。

是 LightGBM 文档的链接。

您可以尝试以下两种技术,甚至两者的组合

  1. 如果您对分类变量使用单热编码并且具有多个级别的变量(即具有高基数的分类变量),您可以首先将稀有级别集中在一起然后编码或仅使用另一种方法来编码分类变量(例如目标编码)。

  2. 仅使用一小部分观察值(行)来识别最相关的变量(列),然后在整个数据集上仅使用这些变量重新拟合模型。如果最终模型的质量不令人满意,则需要包含更多变量。