title: make xgboost train the same way every time
body: <p>I am trying to decide which variables I will use for training my xgboost classifier.</p>
  <p>I fix the hyperparameters: n_estimators, max_depth, learning_rate, min_child_weight, reg_alpha. random_state in XGBClassifier, and sklearn.model_selection.train_test_split is also set to a fixed int every time. However, my model comes out quite different each time I train. The area under the ROC can go between 0.87 to 0.91. This makes it a little hard to compare if removing a variable actually made the model better/worse or if the difference in area was just due to the model training differently.</p>
  <p>Is there a way to make xgboost train the same every single time?</p>
  <p>If not, I also am thinking about training with the same variables 10 times and averaging ROC for each time then compare. But this also has a problem as sklearn.metrics.roc_curve returns a different length array every time, which makes it hard to compute an average roc_curve. If this is the way I need to go, I will make another thread about how to make sklearn.metric.roc_curve return a fixed length result.</p>