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!
Réponses:
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.
la source
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.
la source
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é "
la source