Quelle fonction de perte doit-on utiliser pour obtenir un classificateur binaire de haute précision ou à rappel élevé?


11

J'essaie de faire un détecteur d'objets qui se produisent très rarement (en images), en prévoyant d'utiliser un classificateur binaire CNN appliqué dans une fenêtre coulissante / redimensionnée. J'ai construit des ensembles d'entraînement et de test positifs / négatifs équilibrés 1: 1 (est-ce une bonne chose à faire dans un tel cas, entre autres?), Et le classificateur se porte bien sur un ensemble de tests en termes de précision. Maintenant, je veux contrôler le rappel / la précision de mon classificateur afin, par exemple, qu'il ne marque pas à tort trop d'occurrences de classe majoritaire.

La solution évidente (pour moi) consiste à utiliser la même perte logistique que celle utilisée actuellement, mais à pondérer différemment les erreurs de type I et de type II en multipliant la perte dans l'un des deux cas sur une constante, qui peut être réglée. Est ce bien?

PS Après réflexion, cela équivaut à pondérer certains échantillons d'entraînement plus que les autres. Ajouter simplement plus d'une classe permettra d'obtenir le même résultat, je pense.


avez-vous déjà résolu cela? J'ai un objectif similaire. Je voudrais optimiser la précision (type 1) et me soucier moins des erreurs de type 2, donc j'ai réfléchi à ce qui peut être fait en ce qui concerne la fonction de perte.
Jonathan Shore

Réponses:


6

Construire artificiellement un ensemble d'entraînement équilibré est discutable, assez controversé en fait. Si vous le faites, vous devez vérifier empiriquement que cela fonctionne vraiment mieux que de laisser l'ensemble d'entraînement déséquilibré. Équilibrer artificiellement l'ensemble de test n'est presque jamais une bonne idée. L'ensemble de tests doit représenter de nouveaux points de données lorsqu'ils arrivent sans étiquettes. Vous vous attendez à ce qu'ils soient déséquilibrés, vous devez donc savoir si votre modèle peut gérer un ensemble de tests déséquilibré. (Si vous ne vous attendez pas à ce que les nouveaux enregistrements soient déséquilibrés, pourquoi tous vos enregistrements existants sont-ils déséquilibrés?)

En ce qui concerne votre mesure de performance, vous obtiendrez toujours ce que vous demandez. Si la précision n'est pas ce dont vous avez besoin avant tout dans un ensemble déséquilibré, car non seulement les classes mais aussi les coûts de mauvaise classification sont déséquilibrés, alors ne l'utilisez pas. Si vous aviez utilisé la précision comme métrique et effectué toute votre sélection de modèle et réglage d'hyperparamètre en prenant toujours celui avec la meilleure précision, vous optimisez la précision.

Je prends la classe minoritaire comme classe positive, c'est la manière conventionnelle de les nommer. Ainsi, la précision et le rappel, comme discuté ci-dessous, sont la précision et le rappel de la classe minoritaire.

  • Si la seule chose importante est d'identifier tous les enregistrements de la classe minoritaire, vous pouvez vous en souvenir. Vous acceptez donc davantage de faux positifs.
  • Optimiser uniquement la précision serait une idée très étrange. Vous diriez à votre classificateur que ce n'est pas un problème de sous-détecter la classe minoritaire. Le moyen le plus simple d'avoir une grande précision est d'être trop prudent en déclarant la classe minoritaire.
  • Si vous avez besoin de précision et de rappel, vous pouvez prendre la mesure F. Il s'agit de la moyenne harmonique entre la précision et le rappel et pénalise ainsi les résultats lorsque les deux mesures divergent.
  • Si vous connaissez les coûts concrets de mauvaise classification dans les deux sens (et les bénéfices d'une classification correcte s'ils sont différents par classe), vous pouvez mettre tout cela dans une fonction de perte et l'optimiser.

3

Vous faites plusieurs hypothèses. Il est préférable de penser à l'objectif ultime en termes généraux, puis de formuler une stratégie qui atteint cet objectif. Par exemple, avez-vous vraiment besoin d'une classification à choix forcé et le rapport signal / bruit est-il suffisamment grand pour le supporter (bons exemples: reconnaissance du son et de l'image)? Ou le rapport signal / bruit est-il faible ou vous êtes intéressé par les tendances ? Pour ces derniers, l'estimation du risque est pour vous. Le choix est essentiel et dicte la métrique de précision prédictive que vous choisissez. Pour plus de réflexions sur tout cela, voir http://www.fharrell.com/2017/01/classification-vs-prediction.html et http://www.fharrell.com/2017/03/damage-caused-by-classification .html .

La majorité des problèmes concernent la prise de décision , et les décisions optimales proviennent d'une estimation des risques associée à une fonction perte / coût / utilité.

L'un des meilleurs aspects d'une approche d'estimation du risque (probabilité) est qu'elle gère les zones grises où ce serait une erreur de faire une classification ou une décision sans obtenir plus de données. Et puis il y a le fait que l'estimation de probabilité n'exige pas (même ne permet pas) de «balancer» les résultats en manipulant artificiellement l'échantillon.


1

En ce qui concerne votre question de savoir si la repondération des échantillons d'entraînement équivaut à multiplier la perte dans l'un des deux cas par une constante: oui, elle l'est. Une façon d'écrire la fonction de perte de régression logistique est où et désignent des instances positives et négatives respectives, et est le classificateur logistique construit à partir des fonctionnalités . Si vous voulez donner plus de poids à vos instances négatives, par exemple, vous souhaiterez peut-être modifier votre perte

j=1Jlog{1+exp[f(xj)]}+k=1Klog{1+exp[f(xk)]}
jkf()x
w>1ww=2
j=1Jlog{1+exp[f(xj)]}+k=1Kwlog{1+exp[f(xk)]}
pour certains . Cette fonction de perte est minimisée par les implémentations logicielles de régression logistique pondérée, mais vous pouvez également arriver à la même réponse en surpondérant vos instances négatives par un facteur et en ajustant une régression logistique standard (par exemple, si , alors vous créez 2 copies de chaque instance négative et ajustement). Quelques détails supplémentaires sur ce type d'approche ici . Et il y a un avertissement général sur ce qui arrive aux erreurs standard des paramètres ici , mais cela peut ne pas être un problème si vous faites uniquement des prédictions.w>1ww=2

Mais ce ne serait plus un estimateur du maximum de vraisemblance - un non-non statistique
Frank Harrell

1
D'accord, mais je ne suis pas convaincu que cela importe si l'inférence statistique sur les paramètres de la régression logistique n'est pas l'objectif souhaité (la mention par le PO d'utiliser CNN n'est pas non plus basée sur le ML). En effet, la plupart / tous les résultats inférentiels de cette approche pondérée seraient mieux ignorés, mais le modèle et les scores de risque résultants pourraient toujours être appliqués à un ensemble de validation avec des résultats souhaitables, par exemple une bonne discrimination / calibration.
Travis Gerke

1
Non, vous perturberez l'étalonnage du modèle et obtiendrez des estimations de paramètres plus bruyantes avec l'approche ci-dessus. MLE existe pour de très bonnes raisons.
Frank Harrell

Considérez le cas trivial d'être très préoccupé par une mauvaise classification dans un sens, mais pas dans l'autre - c'est-à-dire une perte nulle pour l'une des directions. Le meilleur modèle pour cette perte ne prédirait que la classe de préoccupation. Bien qu'il s'agisse d'un modèle horrible, l'objectif est atteint. Il est important de comprendre l'objectif et de ne pas mettre une foi aveugle dans un concept théorique (MLE) sans comprendre son but. Comme l'a noté TravisGerke, si l'accent est mis sur la prédiction plutôt que sur la modélisation, son approche est très utile. C'est certainement mieux que de sous-échantillonner la classe majoritaire.
Statseeker du
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.