Test de la classification sur des données de déséquilibre suréchantillonnées

18

Je travaille sur des données gravement déséquilibrées. Dans la littérature, plusieurs méthodes sont utilisées pour rééquilibrer les données en utilisant un rééchantillonnage (sur ou sous-échantillonnage). Deux bonnes approches sont:

  • SMOTE: TEchnique de suréchantillonnage des minorités synthétiques ( SMOTE )

  • ADASYN: Approche d'échantillonnage synthétique adaptative pour l'apprentissage déséquilibré ( ADASYN )

J'ai implémenté ADASYN parce que sa nature adaptative et sa facilité d'extension à des problèmes multi-classes.

Ma question est de savoir comment tester les données suréchantillonnées produites par ADASYN (ou toute autre méthode de suréchantillonnage). Il n'est pas clair dans les deux articles mentionnés comment ils ont effectué leurs expériences. Il existe deux scénarios:

1- Suréchantillonner l'ensemble de données, puis le diviser en ensembles d'apprentissage et de test (ou validation croisée).

2- Après avoir fractionné l'ensemble de données d'origine, effectuez un suréchantillonnage sur l'ensemble d'apprentissage uniquement et testez sur l'ensemble de test de données d'origine (peut être effectué avec validation croisée).

Dans le premier cas, les résultats sont bien meilleurs que sans suréchantillonnage, mais je m'inquiète s'il y a sur-ajustement. Alors que dans le deuxième cas, les résultats sont légèrement meilleurs que sans suréchantillonnage et bien pire que dans le premier cas. Mais le problème avec le deuxième cas est que si tous les échantillons de classe minoritaire sont envoyés à l'ensemble de test, alors aucun avantage ne sera obtenu avec un suréchantillonnage.

Je ne sais pas s'il existe d'autres paramètres pour tester ces données.

Tarifs
la source

Réponses:

18

Quelques commentaires:

L'option (1) est une très mauvaise idée. Des copies du même point peuvent se retrouver dans les ensembles de formation et de test. Cela permet au classificateur de tricher, car en essayant de faire des prédictions sur l'ensemble de test, le classificateur aura déjà vu des points identiques dans l'ensemble de trains. L'intérêt d'avoir un ensemble de test et un ensemble de trains est que l'ensemble de tests doit être indépendant de l'ensemble de trains.

k

Stefan Wager
la source
Merci Stefan pour la réponse. Mais je veux clarifier un point: les méthodes que j'ai mentionnées créent des instances "synthétiques" des données, pas exactement les mêmes que celles d'origine. Ce n'est donc pas exactement comme si je testais sur les mêmes données d'entraînement. Mais, je ne sais toujours pas si l'option 1 est une approche valide.
Tarifs
OK je vois! Le problème avec (1) persiste cependant, même si vous créez des données "synthétiques", car les données synthétiques sont généralement très similaires aux données d'origine qu'elles imitent.
Stefan Wager
@StefanWager qu'en est-il de la distribution de l'ensemble de test? Doit-il être le même que l'ensemble de données d'origine?
wannik
2
une référence d'articles pour soutenir cette affirmation?
girl101
L'approche de @ Stefan est correcte, vous n'augmentez ou ne synthétisez jamais votre ensemble de validation parce que c'est votre preuve (test) de la façon dont votre modèle apprend, vous avez besoin de données originales pour le faire
M090009
7

La deuxième (2) option est la bonne façon de procéder. Les échantillons synthétiques que vous créez avec les techniques de suréchantillonnage ne sont pas de vrais exemples mais plutôt synthétiques. Ceux-ci ne sont pas valables à des fins de test alors qu'ils sont toujours corrects pour la formation. Ils sont destinés à modifier le comportement du classifieur sans modifier l'algorithme.

user53909
la source