I run xgboost and elastic-net on the same dataset for a classification problem, say we have
y_train, y_test y_train_xgboost_prediction, y_test_xgboost_prediction y_train_elastic_net_prediction, y_test_elastic_net_prediction
I find xgboost gives prediction with mean a lot higher than actual label, which is
average(y_train_xgboost_prediction) > average(y_train) average(y_test_xgboost_prediction) > average(y_test)
While elastic-net gives prediction with average similar to average of actual label, which is
average(y_train_elastic_net_prediction) ~= average(y_train) average(y_test_elastic_net_prediction) ~= average(y_test)
Actually xgboost has AUC higher than elastic-net, which model should we prefer in this case? How do we fix the bias in xgboost prediction?