Hi XGBoost gurus,
I am currently experimenting with some customized training solutions based on xgboost. The primary focus is to tailor specific logic within the
_train_internal function, the native API for which is defined as follows:
def _train_internal(params, dtrain, num_boost_round=10, evals=(), obj=None, feval=None, xgb_model=None, callbacks=None, evals_result=None, maximize=None, verbose_eval=None, early_stopping_rounds=None)
My customized api adding some new parameters, and looks like
def _train_internal_customized(params, dtrain, num_boost_round=10, evals=(), obj=None, feval=None, xgb_model=None, callbacks=None, evals_result=None, maximize=None, verbose_eval=None, early_stopping_rounds=None, data_distribution_estimation:dict=None)
I have encountered a challenge, however. Modifying the
_train_internal function effectively breaks the xgboost module, rendering me unable to use the original xgboost training method. If I wish to utilize the original xgboost training method, perhaps to compare performance, I must reinstall xgboost to overwrite the modified
Is there a way to incorporate a function, such as
_train_internal_customized() , that would enable me to choose between using the native
_train_internal or my own defined
_train_internal_customized() ? This would eliminate the need for repeated installation and reinstallation.
Any architecture advice is apperciated!
Thank you so much for the help!