objectif
Créer une métrique personnalisée pour GridSearchCV.
code minimal
from sklearn.metrics import make_scorer, fbeta_score
from sklearn.model_selection import GridSearchCV
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_breast_cancer
X, y = load_breast_cancer(return_X_y=True)
fb = make_scorer(fbeta_score, beta=2)
grid = GridSearchCV(LogisticRegression(max_iter=1000), {"C":[0.1,1]}, scoring=fb, cv=3).fit(X, y)
print(grid.best_params_["C"] in [0.1,1])
utilisation
print(isinstance(grid.best_score_, float))
variante(s) utile(s)
from sklearn.metrics import make_scorer
from sklearn.metrics import balanced_accuracy_score
sc = make_scorer(balanced_accuracy_score)
print(callable(sc._score_func))
notes
- Vérifier la direction (greater_is_better).