La réponse attendue n’est pas une métrique, c’est une question en retour : quelle erreur coûte le plus cher ? Les deux métriques mesurent les deux façons de se tromper, et le métier tranche, pas le modèle.
Le rappel d’abord, quand manquer un cas positif est grave et qu’une vérification supplémentaire est peu coûteuse :
La précision d’abord, quand la fausse alerte a un coût direct et que le volume de positifs à trouver est grand :
Les deux métriques s’opposent parce qu’elles dépendent du même seuil. Baisser le seuil signale davantage de cas : le rappel monte, la précision descend. Le modèle n’a pas changé.
D’où la façon correcte de présenter ce travail : on n’optimise pas « la précision » ou « le rappel », on choisit un point sur la courbe précision-rappel, en fonction d’une contrainte énoncée par le métier.
from sklearn.metrics import precision_recall_curve
precisions, rappels, seuils = precision_recall_curve(y_val, probabilites)
# La contrainte vient du metier : « au moins 90 % de rappel »,
# et on prend alors le seuil qui maximise la precision sous cette contrainte.
admissibles = rappels[:-1] >= 0.90
seuil = seuils[admissibles][precisions[:-1][admissibles].argmax()]Les deux résumés à connaître, avec leur limite :
Et le point qui vaut d’être posé en fin de réponse, parce qu’il sort du cadre technique : quand un intervieweur demande « précision ou rappel », il vérifie souvent si le candidat pense en coûts. Chiffrer les deux erreurs en euros, en heures ou en risque, puis choisir le seuil qui minimise le coût total, est une meilleure réponse que n’importe quelle métrique citée seule.