Les données d'entraînement sont déséquilibrées - mais mon ensemble de validation devrait-il l'être également?

9

J'ai étiqueté des données composées de 10000 exemples positifs et 50000 exemples négatifs, ce qui donne un total de 60000 exemples. Évidemment, ces données sont déséquilibrées.

Disons maintenant que je veux créer mon ensemble de validation et que je souhaite utiliser 10% de mes données pour le faire. Ma question est la suivante:

Dois-je m'assurer que mon ensemble de validation est AUSSI déséquilibré (comme un clin d'œil à la véritable distribution de l'ensemble d'entraînement), ou dois-je m'assurer que mon ensemble de validation est équilibré? Ainsi, par exemple, mon ensemble de validation doit-il être composé de:

  • Exemple positif à 10% + négatif à 10%, donnant 1000+ et 5000 exemples. (Cet ensemble de validation reflète le déséquilibre des données d'origine).
  • Ou l'ensemble de validation doit-il être constitué de, disons, 10% positifs, donnant 1000+, et (10/5 = 2%) négatifs, donnant également 1000 exemples?

(Même question pour l'ensemble de test).

Il semble y avoir beaucoup de méthodes sur la façon de s'entraîner avec des données déséquilibrées, mais je ne vois pas où trouver les meilleures pratiques pour savoir si mon ensemble de validation doit également refléter le déséquilibre d'origine ou non. Enfin, je ne fais PAS de validation croisée, j'utiliserai un seul ensemble de validation et un réseau de neurones.

Merci!

Spacey
la source
Je n'ai pas de référence spécifique pour cela, mais je suppose qu'il y en a une parce que: a) J'ai publié des articles qui impliquaient des divisions de formation / validation et j'ai toujours construit la division de sorte que le taux positif global soit équivalent dans les deux ensembles ; b) Je me souviens des commentaires des évaluateurs indiquant que c'est ce que vous devez faire.
gammer
@gammer Désolé, vous voulez dire que vous avez choisi la méthode (1) dans mon message?
Spacey
Oui, le premier
gammer
@gammer Oui, voyez c'est ce que je pensais au début, mais cela semble un peu bizarre, plus j'y pense, car si nous faisons confiance à notre ensemble de formation, alors nous devons sûrement également respecter sa distribution, et essayer de reproduire cela dans l'ensemble de validation aussi ...
Spacey
Je suppose que cela dépend peut-être de la façon dont l'ensemble de données d'origine a été collecté. S'agit-il d'un échantillon aléatoire? Dans l'affirmative, la répartition équilibrée est logique car elle rend l'ensemble de validation plus représentatif de la population. Si c'est rétrospectif (par exemple cas-témoins), cela pourrait être différent. Je ne suis pas sûr. Je vous ai raconté mon expérience. J'espère que vous obtiendrez une réponse définitive. Si vous le comprenez, postez une réponse.
gammer

Réponses:

8

Le but de l'ensemble de validation est de sélectionner l'époque / itération où le réseau neuronal est le plus susceptible de fonctionner le mieux sur l'ensemble de test. Par la suite, il est préférable que la distribution des classes dans l'ensemble de validation reflète la distribution des classes dans l'ensemble de test, de sorte que les mesures de performances sur l'ensemble de validation soient une bonne approximation des mesures de performances sur l'ensemble de tests. En d'autres termes, l'ensemble de validation doit refléter le déséquilibre des données d'origine.

Franck Dernoncourt
la source
Je soupçonnais le même Franck. Cela dit, (cet ensemble de validation doit refléter la distribution de données asymétrique d'origine), seriez-vous d'accord que dans l'ensemble de formation, nous dé-biaisons les données?
Spacey
@Spacey Une façon de traiter ce problème est appelée "pondération d'importance", et cela signifie essentiellement: ne pas rééchantillonner ou créer des échantillons synthétiques, mais simplement pondérer les échantillons en fonction de leur importance relative pour la distribution des tests. Voir ma réponse ici pour plus de détails.
jhin
1

En utilisant une formation et des données de test naturellement déséquilibrées, je suis tombé sur un scénario dans lequel mon modèle semblait s'améliorer au fil du temps mais mémorisait simplement les échantillons de classe minoritaire dans l'ensemble de formation et apprenait à toujours prédire la classe majoritaire pour tout le reste.

J'ai diagnostiqué ce problème en équilibrant mes données de test et en observant que la précision et la perte des données de test ont empiré avec plus d'époques (ce qui n'était pas le cas avec les données de test déséquilibrées).

Une autre façon de diagnostiquer des problèmes comme celui-ci serait d'utiliser des métriques telles que la sensibilité, la spécificité ou la précision pour une seule classe au lieu de regarder la précision / perte globale. Ce billet de blog va plus en détail à ce sujet et donne un exemple d'implémentation de ces mesures dans Keras http://www.deepideas.net/unbalanced-classes-machine-learning/

Je pense que la bonne solution dépend de l'application réelle de votre modèle et de l'importance de la précision des classes minoritaires. Par exemple, si vous entraînez quelque chose comme imagenet et que vous remarquez qu'il a une faible précision pour sa classe de "limaces de mer", ce qui est probablement correct. Mais si vous entraîniez un modèle pour prédire si quelqu'un a un cancer, la précision de la classe minoritaire serait très importante.

Rob
la source
0

Cela dépend de ce que vous optimisez: quelle est votre distribution cible , sur laquelle vous souhaitez minimiser la perte attendue? Si elle est identique à la distribution de formation, les données de validation doivent suivre la même distribution. S'il s'agit d'une distribution différente (par exemple, si vous souhaitez que votre algorithme fonctionne bien sur des données équilibrées), vous voulez en fait minimiser la perte attendue sur cette distribution, et votre ensemble de validation devrait être échantillonné en conséquence en fonction de cette distribution. Cette situation est appelée "décalage covariable", et il existe toute une branche de la recherche sur ce que l'on appelle "l'adaptation du décalage covariable", c'est-à-dire la gestion de ce problème. Il existe un livre de Sugiyama / Kawanabe sur le sujet de 2012, intitulé "

jhin
la source