Le seuil de décision est-il un hyperparamètre dans la régression logistique?

13

Les classes prédites à partir de la régression logistique (binaire) sont déterminées en utilisant un seuil sur les probabilités d'appartenance aux classes générées par le modèle. Si je comprends bien, généralement 0,5 est utilisé par défaut.

Mais la variation du seuil changera les classifications prévues. Est-ce à dire que le seuil est un hyperparamètre? Dans l'affirmative, pourquoi est-il (par exemple) impossible de rechercher facilement sur une grille de seuils en utilisant la GridSearchCVméthode de scikit-learn (comme vous le feriez pour le paramètre de régularisation C).

pseudo
la source
1
"Si je comprends bien, généralement 0,5 est utilisé par défaut." Dépend de la signification du mot "typique". En pratique, personne ne devrait faire cela.
Matthew Drury
3
Très lié: Seuil de probabilité de classification
Stephan Kolassa
Strictement, vous ne voulez pas dire une régression logistique, vous voulez dire utiliser un régresseur logistique avec un seuil pour la classification binaire (vous pouvez également former un régresseur pour chacune des deux classes, avec un peu d'aléatoire ou de pondération pour éviter qu'ils ne soient linéairement dépendants).
smci

Réponses:

12

Le seuil de décision crée un compromis entre le nombre de positifs que vous prédisez et le nombre de négatifs que vous prédisez - car, tautologiquement, l'augmentation du seuil de décision diminuera le nombre de positifs que vous prédirez et augmentera le nombre de négatifs qui vous prédisez.

Le seuil de décision n'est pas un hyper-paramètre au sens de l'ajustement du modèle car il ne modifie pas la flexibilité du modèle.

La façon dont vous pensez du mot «régler» dans le contexte du seuil de décision est différente de la façon dont les hyper-paramètres sont réglés. La modification de C et d'autres hyper-paramètres du modèle modifie le modèle(par exemple, les coefficients de régression logistique seront différents), tout en ajustant le seuil ne peut que faire deux choses: compromis TP pour FN, et FP pour TN. Cependant, le modèle reste le même, car cela ne change pas les coefficients. (Il en va de même pour les modèles qui n'ont pas de coefficients, tels que les forêts aléatoires: la modification du seuil ne change rien aux arbres.) Donc, dans un sens étroit, vous avez raison de trouver le meilleur compromis entre les erreurs est un "réglage", mais vous avez tort de penser que la modification du seuil est liée à d'autres hyper-paramètres du modèle d'une manière optimisée par GridSearchCV.

Autrement dit, la modification du seuil de décision reflète un choix de votre part quant au nombre de faux positifs et de faux négatifs que vous souhaitez avoir. Considérez l'hypothèse selon laquelle vous définissez le seuil de décision sur une valeur totalement invraisemblable comme -1. Toutes les probabilités sont non négatives, donc avec ce seuil, vous prédirez "positif" pour chaque observation. D'un certain point de vue, c'est très bien, car votre taux de faux négatifs est de 0,0. Cependant, votre taux de faux positifs est également à l'extrême de 1,0, donc dans ce sens, votre choix de seuil à -1 est terrible.

L'idéal, bien sûr, est d'avoir un TPR de 1,0 et un FPR de 0,0 et un FNR de 0,0. Mais cela est généralement impossible dans les applications du monde réel, donc la question devient alors "combien de FPR suis-je prêt à accepter pour combien de TPR?" Et c'est la motivation des courbes .

Sycorax dit de réintégrer Monica
la source
Merci pour la réponse @Sycorax. Vous m'avez presque convaincu. Mais ne pouvons-nous pas formaliser l'idée de "combien de FPR suis-je prêt à accepter pour combien de TPR"? par exemple en utilisant une matrice de coûts. Si nous avons une matrice de coûts, ne serait-il pas souhaitable de trouver le seuil optimal via le réglage, comme vous régleriez un hyperparamètre? Ou existe-t-il une meilleure façon de trouver le seuil optimal?
Nick
1
La façon dont vous utilisez le mot "tune" ici est différente de la façon dont les hyper-paramètres sont réglés. La modification de et d'autres hyper-paramètres du modèle modifie le modèle (par exemple, les coefficients de régression logistique seront différents), tandis que l'ajustement du seuil ne peut que faire deux choses: compromis TP pour FN et FP pour TN (mais le modèle reste le même - mêmes coefficients, etc.). Vous avez raison, vous voulez trouver le meilleur compromis entre les erreurs, mais vous avez tort qu'un tel réglage se fasse à l'intérieur . CGridSearchCV
Sycorax dit Réintégrer Monica le
@Sycorax Le seuil et l'interception (terme de biais) ne font-ils pas essentiellement la même chose? C'est-à-dire que vous pouvez maintenir le seuil fixé à 0,5 mais modifier l'interception en conséquence; cela "changera le modèle" (selon votre dernier commentaire) mais aura le même effet en termes de prédictions binaires. Est-ce correct? Si tel est le cas, je ne suis pas sûr que la distinction stricte entre "changer le modèle" et "changer la règle de décision" soit si significative dans ce cas.
Amoeba dit Reinstate Monica
@amoeba C'est une remarque qui provoque bien. Je vais devoir y réfléchir. Je suppose que votre suggestion revient à «maintenir le seuil à 0,5 et à traiter l'interception comme un hyperparamètre que vous réglez». Il n'y a rien mathématiquement pour vous empêcher de faire cela, sauf l'observation que le modèle ne maximise plus sa probabilité. Mais la réalisation du MLE peut ne pas être une priorité dans un contexte spécifique.
Sycorax dit Réintégrer Monica le
10

Mais la variation du seuil changera les classifications prévues. Est-ce à dire que le seuil est un hyperparamètre?

Oui, c'est le cas, sorta. C'est un hyperparamètre de votre règle de décision , mais pas la régression sous-jacente.

Si c'est le cas, pourquoi (par exemple) n'est-il pas possible de rechercher facilement sur une grille de seuils en utilisant la méthode GridSearchCV de scikit-learn (comme vous le feriez pour le paramètre de régularisation C).

Il s'agit d'une erreur de conception dans sklearn. La meilleure pratique pour la plupart des scénarios de classification consiste à ajuster le modèle sous-jacent (qui prédit les probabilités) en utilisant une certaine mesure de la qualité de ces probabilités (comme le log-loss dans une régression logistique). Par la suite, un seuil de décision sur ces probabilités devrait être réglé pour optimiser certains objectifs commerciaux de votre règle de classification. La bibliothèque devrait faciliter l'optimisation du seuil de décision sur la base d'une certaine mesure de la qualité, mais je ne pense pas qu'elle le fasse bien.

Je pense que c'est l'un des endroits où sklearn s'est trompé. La bibliothèque inclut une méthode,, predictsur tous les modèles de classification, à laquelle les seuils sont fixés 0.5. Cette méthode est inutile et je recommande fortement de ne jamais l'invoquer. Il est regrettable que sklearn n'encourage pas un meilleur flux de travail.

Matthew Drury
la source
Je partage également votre scepticisme quant au predictchoix par défaut de la méthode de 0,5 comme seuil, mais GridSearchCVaccepte les scorerobjets qui peuvent régler les modèles par rapport à la perte d'entropie croisée hors échantillon. Suis-je en train de manquer votre point?
Sycorax dit Réintégrer Monica le
D'accord, c'est la meilleure pratique, mais cela n'encourage pas les utilisateurs à régler les seuils de décision.
Matthew Drury
Je t'ai eu. Je comprends ce que tu veux dire!
Sycorax dit Réintégrer Monica le
1
@Sycorax a essayé de modifier pour clarifier!
Matthew Drury