> Modules non standards > Scikit-Learn > Généralités
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