Supposons que je veuille apprendre un classificateur qui prédit si un courrier électronique est un spam. Et supposons que seulement 1% des emails sont du spam.
La chose la plus simple à faire serait d'apprendre le classificateur trivial qui dit qu'aucun des courriels n'est du spam. Ce classificateur nous donnerait une précision de 99%, mais n'apprendrait rien d'intéressant et aurait un taux de faux négatifs de 100%.
Pour résoudre ce problème, les gens m'ont dit de "sous-échantillonner" ou d'apprendre sur un sous-ensemble de données où 50% des exemples sont du spam et 50% ne sont pas du spam.
Mais je suis inquiet à propos de cette approche, puisqu’une fois que nous aurons construit ce classificateur et commencé à l’utiliser sur un véritable corpus d’e-mails (par opposition à un ensemble de tests 50/50), il se peut qu’ils prédisent que de nombreux e-mails sont du spam quand ils " re vraiment pas. Juste parce qu'il est habitué à voir beaucoup plus de spam qu'il n'y en a réellement dans l'ensemble de données.
Alors, comment pouvons-nous résoudre ce problème?
("Upsampling" ou répétition répétée des exemples positifs d’entraînement pour que 50% des données soient des exemples positifs d’entraînement, semble souffrir de problèmes similaires.)