def METHOD_NAME(df_example):
    ds = df_example
    # Train and test split
    train, test = ds.ml.train_test_split(verbose=False)
    # Define the training featuress
    features = ['vx', 'vy', 'vz', 'Lz', 'L']
    # history of the booster (evaluations of the train and validation sets)
    history = {}
    # instantiate the booster model
    booster = vaex.ml.xgboost.XGBoostModel(features=features, target='E', num_boost_round=10, params=params_reg)
    # fit the booster - including saving the history of the validation sets
    booster.fit(train, evals=[(train, 'train'), (test, 'test')],
                early_stopping_rounds=2, evals_result=history)
    assert booster.booster.best_ntree_limit == 10
    assert booster.booster.best_iteration == 9
    assert len(history['train']['rmse']) == 10
    assert len(history['test']['rmse']) == 10