XGBoost培训时间似乎太长

时间:2020-01-06 01:42:04

标签: python machine-learning xgboost training-data

我正在尝试使用xgboost软件包在Python中训练XGBoost分类器。我在分类器的所有参数上使用默认值,我的训练集包含大约16,000个元素,每个元素有180,000个功能。我没有使用gpu来训练模型,但是仍然,训练过程花费了五个多小时,并且仍在进行中。我有32GB的RAM和6核Intel I7。我想知道这是否是使用我拥有的数据量来训练该分类器的正常时间,因为我听说有人在几分钟内训练该模型。

1 个答案:

答案 0 :(得分:0)

如果需要训练时间,则可以将树生长策略tree_method切换为hist,这是基于直方图的方法。使用GPU时,应将其设置为gpu_hist。您可以在http://arxiv.org/abs/1603.02754

中找到有关其xgboost实现的更多详细信息

这是秘密的调味料,可带来超快速的培训,而解决方案的质量没有太大的妥协。实际上,基于GPU的训练甚至lightGBM等都依赖于基于直方图的技术来进行更快的训练,以及随后的迭代/实验,这在时间上限制了kaggle类型的比赛。 hist可以将训练时间减少一半或更少,而在GPU上使用gpu_hist可以将训练时间缩短为几分钟。

PS:我建议通过删除相关/等级相关的功能来减少数据的维度(16k X 180k),这不仅会进一步缩短您的训练时间,而且会进一步改善模型性能。