Mis a jour le 2025-04-14, 12:10

Généralités

Estimator interface dans scikit-learn : classe qui doit respecter :
  • avoir une méthode fit qui prend le dataset, en général une array 2d : myEstimator.fit(data)
  • avoir dans le constructor les paramètres de l'estimateur : myEstimator = Estimator(param1 = value1, param2 = value2, ...)
  • une fois le training fait, les paramètres estimés sont accessibles avec leur nom suivi d'un "_"
Grid search des hyperparamètres en prenant l'exemple de XGboost :
  • faire from sklearn.model_selection import GridSearchCV
  • il faut que le modèle implémente la fonction score.
  • on crée un modèle : clf = XGBClassifier(objective = 'binary:logistic').
  • puis construction de l'objet : gridSearch = GridSearchCV(clf, param_grid = {'n_estimators': [3, 6], 'max_depth': [4, 6], 'learning_rate': [0.1], 'gamma': [0]}, cv = 5, verbose = 2, n_jobs = 2) (par défaut, il y aura des 5 fold crossvalidations)
  • fitting pour la recherche des meilleurs hyperparamètres : gridSearch.fit(Xtrain, yTrain)
  • gridSearch.cv_results_ donne tous les résultats. On peut construire un dataframe en faisant : df = pandas.DataFrame(gridSearch.cv_results_) (la colonne params est un dictionnaire des hyperparamètres utilisés).
  • gridSearch.best_score_ : le meilleur score.
  • gridSearch.best_params_ : dictionnaire des meilleurs hyperparamètres.
  • gridSearch.best_estimator_ : le meilleur estimateur (qui a les hyperparamètres donnant le meilleur score).

Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert