Optimisation des courbes précision-rappel sous déséquilibre de classe

30

J'ai une tâche de classification où j'ai un certain nombre de prédicteurs (dont l'un est le plus informatif), et j'utilise le modèle MARS pour construire mon classificateur (je suis intéressé par n'importe quel modèle simple, et utiliser glms à des fins d'illustration serait bien aussi). Maintenant, j'ai un énorme déséquilibre de classe dans les données de formation (environ 2700 échantillons négatifs pour chaque échantillon positif). Semblable aux tâches de récupération d'informations, je suis plus préoccupé par la prévision des échantillons de test positifs de premier rang. Pour cette raison, les performances sur les courbes de rappel de précision sont importantes pour moi.

Tout d'abord, j'ai simplement formé le modèle sur mes données de formation en maintenant le déséquilibre de classe tel qu'il est. Je visualise mon modèle formé en rouge et l'entrée la plus importante en bleu.

Formation sur les données déséquilibrées, évaluation sur les données déséquilibrées :

PR pour une formation déséquilibrée ROC pour une formation déséquilibrée

Pensant que le déséquilibre de classe déstabilise le modèle, étant donné que l'apprentissage des échantillons positifs de premier rang est une infime partie de l'ensemble de données, j'ai suréchantillonné les points d'entraînement positifs pour obtenir un ensemble de données d'entraînement équilibré. Lorsque je trace la performance sur l' ensemble d'entraînement équilibré , j'obtiens de bonnes performances. Dans les courbes PR et ROC, mon modèle entraîné fait mieux que les entrées.

Formation sur les données équilibrées (suréchantillonnées), évaluation également sur les données équilibrées (suréchantillonnées):

PR pour une formation équilibrée, visualisée sur un ensemble de données équilibré ROC pour un entraînement équilibré, visualisé sur un ensemble de données équilibré

Cependant, si j'utilise ce modèle entraîné sur les données équilibrées, pour prédire sur l'ensemble d'entraînement original et déséquilibré, j'obtiens toujours de mauvaises performances sur la courbe PR.

Formation sur les données équilibrées (suréchantillonnées), évaluation sur les données originales non équilibrées:

PR pour une formation équilibrée, visualisée sur un ensemble de données original et déséquilibré ROC pour un entraînement équilibré, visualisé sur un jeu de données original et déséquilibré

Mes questions sont donc:

  1. Est-ce la raison pour laquelle la visualisation de la courbe PR montre une performance inférieure de mon modèle entraîné (rouge), tandis que la courbe ROC montre des améliorations en raison du déséquilibre de classe?
  2. Les approches de rééchantillonnage / suréchantillonnage / sous-échantillonnage peuvent-elles résoudre ce problème pour forcer la formation à se concentrer sur la région de haute précision / faible rappel?
  3. Existe-t-il un autre moyen de concentrer la formation sur la région de haute précision / faible rappel?
bande passante élevée
la source
Pourriez-vous modifier votre question pour clarifier quelles mesures sont calculées sur l'ensemble de formation et lesquelles sur les données retenues?
Jack Tanner le
@JackTanner, tout est calculé sur l'ensemble d'entraînement pour l'instant. Étant donné que le modèle n'a pas autant de paramètres et que le nombre d'échantillons dans l'ensemble d'entraînement est énorme, je ne m'inquiète pas trop du sur-ajustement. En outre, je veux être sûr d'obtenir de bonnes performances sur l'ensemble d'entraînement avant de pouvoir m'attendre à l'ensemble d'essai.
highBandWidth
Quel bouton contrôlez-vous dans votre algorithme d'apprentissage pour évaluer la précision à différents niveaux de rappel? Avez-vous essayé d'étendre votre ensemble de fonctionnalités, par exemple, avec des combinaisons et des transformations de fonctionnalités?
Jack Tanner
@JackTanner, Le modèle que j'ai (MARS avec fonction logit) donne des sorties dans la plage de 0 à 1, similaire à la régression logistique. C'est fondamentalement la même chose, mais inclut quelques fonctionnalités supplémentaires. Pour obtenir de la précision à différents rappels, je règle simplement les seuils à différents points. J'utilise simplement la méthode standard pour calculer PR ou ROC à partir d'une liste classée.
highBandWidth

Réponses:

15
  1. La courbe ROC est insensible aux changements de déséquilibre de classe; voir Fawcett (2004) «ROC Graphs: Notes and Practical Considerations for Researchers».
  2. Le suréchantillonnage de la classe des basses fréquences est une approche raisonnable.
  3. Il existe de nombreuses autres façons de traiter le déséquilibre de classe. Le boosting et l'ensachage sont deux techniques qui me viennent à l'esprit. Cela semble être une étude récente pertinente: comparaison des techniques de suralimentation et d'ensachage avec des données bruyantes et déséquilibrées

PS Problème soigné; J'adorerais savoir comment ça se passe.

Jack Tanner
la source
1

Je voulais attirer l'attention sur le fait que les 2 dernières expériences utilisent en fait le modèle SAME sur le jeu de données ALMOST THE SAME. La différence de performances n'est pas une différence de modèle, elle s'explique par différentes distributions de l'ensemble de données de validation et les propriétés de METRICS particuliers utilisés - précision et rappel, qui dépendent fortement de cette distribution. Pour développer ce point un peu plus, si vous avez pris X entrées distinctes de votre ensemble de données de validation initial et répliqué la classe minoritaire pour l'ensemble de données mis à l'échelle, votre modèle fera les mêmes prédictions pour ces entrées X, correctes ou incorrectes, à la fois à l'échelle et non équilibrées ensembles de données de validation. La seule différence est que pour chaque faux positif, il y aura moins de vrais positifs dans l'ensemble de données initial (donc une précision plus faible) et plus de vrais positifs dans l'ensemble de données équilibré (simplement parce qu'il y a plus d'exemples positifs dans l'ensemble de données en général) . C'est pourquoi Precision et Recall seraient sensibles à l'inclinaison. D'un autre côté, comme vos expériences l'illustrent également, le ROC ne change pas. Cela peut être observé en examinant également sa définition. C'est pourquoi ROC ne serait pas sensible à l'inclinaison.

Je n'ai pas encore de bonnes réponses pour les points 2 et 3 car je les recherche moi-même :)

Շուշան Առաքելյան
la source
0

En supposant que les échantillons positifs suréchantillonnés ont la "même distribution" que dans "l'ensemble d'origine". À mesure que le nombre d'échantillons positifs augmente, peu de changements se produisent

1) le nombre de TruePositives (TP) augmente pour "tous les seuils" et, par conséquent, les ratios TP / (TP + FP) et TP / (TP + FN) augmentent pour tous les seuils. Alors que la zone sous PRC augmente.

2) la précision attendue, également appelée précision du modèle "muet", passe de ~ 1/2700 (dans l'ensemble d'origine) à ~ 1/2 (en cas d'équilibre "idéal"). En supposant que votre modèle fonctionne mieux que le modèle "muet", l'aire sous la courbe sera supérieure à 0,00037 dans "l'ensemble d'origine" et à plus de 0,5 dans l'ensemble idéalement équilibré.

3) tout en entraînant le modèle sur un ensemble de données mis à l'échelle, certains modèles peuvent «sur-ajuster» les échantillons positifs.

En ce qui concerne les courbes ROC, les courbes ROC sont connues pour montrer peu d'effet des variations de distribution de classe (la mise à l'échelle a un effet très mineur sur FPR, tandis que vous pouvez voir un certain effet sur TPR).

En ce qui concerne la mise au point dans une région de haute précision / faible rappel, vous pouvez optimiser par rapport à une fonction de coût où les faux positifs sont plus pénalisés que les faux négatifs.

Danylo Zherebetskyy
la source