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.
Réponses:
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.
la source
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.
la source
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
w>1ww=2
la source