Je suis en train de former un modèle de XGBoost en utilisant les paramètres ci-dessous:Comment obtenir les params d'un modèle XGBoost sauvé
xgb_params = {
'objective': 'binary:logistic',
'eval_metric': 'auc',
'lambda': 0.8,
'alpha': 0.4,
'max_depth': 10,
'max_delta_step': 1,
'verbose': True
}
Depuis mes données d'entrée est trop grande pour être complètement chargé dans la mémoire, je adapter la formation progressive:
xgb_clf = xgb.train(xgb_params, input_data, num_boost_round=rounds_per_batch,
xgb_model=model_path)
le code pour la prédiction est
xgb_clf = xgb.XGBClassifier()
booster = xgb.Booster()
booster.load_model(model_path)
xgb_clf._Booster = booster
raw_probas = xgb_clf.predict_proba(x)
le résultat semblait bon. Mais quand j'ai essayé d'invoquer xgb_clf.get_xgb_params()
, j'ai obtenu un paramètre dans lequel tous les params étaient réglés sur les valeurs par défaut.
Je peux deviner que la cause première est lorsque j'ai initialisé le modèle, je n'ai transmis aucun paramètre. Donc le modèle a été initialisé en utilisant les valeurs par défaut mais quand il a prédit, il a utilisé un booster interne en utilisant des paramètres prédéfinis. Cependant, je me demande s'il existe un moyen, après avoir assigné un modèle de rappel pré-entraîné à un XGBClassifier, de voir les vrais paramètres utilisés pour former le booster, mais pas ceux qui sont utilisés pour initialiser le booster. classificateur.
Merci à tous.
Merci pour votre réponse. J'avais l'habitude d'utiliser joblib.dump de sklearn auparavant et cela a fonctionné. Mais je n'ai pas réussi à trouver un moyen d'ajuster le modèle de façon incrémentale en utilisant sklearn API. Par conséquent, pourriez-vous s'il vous plaît me faire savoir comment le faire? (Le besoin d'ajuster le modèle de façon incrémentale est beaucoup plus important) –