title: can the train_auc be influenced by the valuation data in fitting xgboost-model?
body: <p>I am fitting an XGBoost model with this code on a grid of hyperparameters:</p>
  <pre><code>  set.seed(20)
    model_n &lt;- xgb.train(data = xgb_trainval,
                         tree_method = &quot;gpu_hist&quot;,
                         booster = &quot;gbtree&quot;,
                         objective = &quot;binary:logistic&quot;,
                         max_depth = parameters_df$max_depth[row],
                         eta = parameters_df$eta[row],
                         subsample = parameters_df$subsample[row],
                         colsample_bytree = parameters_df$colsample_bytree[row],
                         min_child_weight = parameters_df$min_child_weight[row],
                         nrounds = 1000,
                         eval_metric = &quot;auc&quot;,
                         early_stopping_rounds = 30,
                         print_every_n = 1000,
                         watchlist = list(train = xgb_trainval, val = xgb_val)
    )
  </code></pre>
  <p><code>xgb_trainval</code> is the training data
  <code>xgb_val</code> is the validation data</p>
  <p>Next I have run the fitting again on the same traindata with the same hyperparameter-grid, although with different validation data (<code>xgb_test</code>):</p>
  <pre><code>  set.seed(20)
    model_n &lt;- xgb.train(data = xgb_trainval,
                         tree_method = &quot;gpu_hist&quot;,
                         booster = &quot;gbtree&quot;,
                         objective = &quot;binary:logistic&quot;,
                         max_depth = parameters_df$max_depth[row],
                         eta = parameters_df$eta[row],
                         subsample = parameters_df$subsample[row],
                         colsample_bytree = parameters_df$colsample_bytree[row],
                         min_child_weight = parameters_df$min_child_weight[row],
                         nrounds = 1000,
                         eval_metric = &quot;auc&quot;,
                         early_stopping_rounds = 30,
                         print_every_n = 1000,
                         watchlist = list(train = xgb_trainval, val = xgb_test)
    )
  </code></pre>
  <p>I notice this results in different auc values on the train data. I was expecting the same auc values on the train data since only my valuation data is different.
  I also notice that the number of iterations is different for every hypertuning fit.
  Does the different valuation data result in different number of iterations, resulting in different models, resulting in different auc values on the train data?</p>
  <p>Thanks a lot!</p>