Załóżmy, że chcę nauczyć się klasyfikatora, który przewiduje, czy wiadomość e-mail jest spamem. Załóżmy, że tylko 1% wiadomości e-mail to spam.
Najłatwiej jest nauczyć się trywialnego klasyfikatora, który mówi, że żaden z e-maili nie jest spamem. Ten klasyfikator dałby nam 99% dokładności, ale nie nauczyłby się niczego ciekawego i miałby 100% odsetek fałszywych negatywów.
Aby rozwiązać ten problem, ludzie kazali mi „próbkować” lub uczyć się na podzbiorze danych, w którym 50% przykładów to spam, a 50% to nie spam.
Ale martwię się o to podejście, ponieważ kiedy zbudujemy ten klasyfikator i zaczniemy go używać na prawdziwym zbiorze wiadomości e-mail (w przeciwieństwie do zestawu testowego 50/50), może przewidywać, że wiele e-maili jest spamem, gdy „ naprawdę nie. Tylko dlatego, że jest przyzwyczajony do zobaczenia znacznie większej ilości spamu niż faktycznie w zestawie danych.
Jak więc rozwiązać ten problem?
(„Upsampling” lub wielokrotne powtarzanie pozytywnych przykładów treningowych, więc 50% danych to pozytywne przykłady treningowe, wydaje się mieć podobne problemy).