<p>If training time is concern then one can switch the tree growing policy <code>tree_method</code> to <code>hist</code> which is histogram based method. With GPU it should be set to <code>gpu_hist</code>. You can find more details about its xgboost implementation here <a href="http://arxiv.org/abs/1603.02754" rel="nofollow noreferrer">http://arxiv.org/abs/1603.02754</a></p>

<p>This is the secret sauce which leads to super fast training without much compromise in the solution quality. In fact GPU based training and even lightGBM etc relies on histogram based techniques for faster training and subsequently iterations/experiments which matters a lot in time constrained kaggle type competitions. <code>hist</code> may cut training time to half or less and <code>gpu_hist</code> on gpu may take it to minutes.</p>

<p>PS: I would suggest to reduce the dimensionality of your data (16k X 180k) by removing correlated/rank-correlated features which will further improve not only your training time but also model performance.</p>
XGBoost training time seems to be too long
<p>I am trying to train an XGBoost classifier in Python using the xgboost package. I am using the defaults on all the parameters for the classifier and my training set has around 16,000 elements and 180,000 features for each element. I am not using the gpu to train the model, but still, the training process has taken more than five hours and is still going. I have 32GB of RAM and a 6 core Intel I7. I am wondering if this is normal time for training this classifier with the amount of data I have because I have heard of people training the model in a couple of minutes.</p>