Jak poradzić sobie z różnicą między rozkładem zestawu testowego i zestawu treningowego?

23

Myślę, że jednym z podstawowych założeń uczenia maszynowego lub szacowania parametrów jest to, że niewidoczne dane pochodzą z tego samego rozkładu, co zestaw szkoleniowy. Jednak w niektórych praktycznych przypadkach rozkład zestawu testowego będzie prawie różny od zestawu szkoleniowego.

Powiedz o wielkoskalowym problemie wielu klasyfikacji, który próbuje sklasyfikować opisy produktów do około 17 000 klas. Zestaw treningowy będzie miał mocno wypaczone priorytety klas, tak że niektóre klasy mogą mieć wiele przykładów treningu, ale niektóre mogą mieć tylko kilka. Załóżmy, że otrzymaliśmy od klienta zestaw testowy z nieznanymi etykietami klas. Staramy się klasyfikować każdy produkt w zestawie testowym do jednej z 17 000 klas, używając klasyfikatora wyszkolonego na zestawie szkoleniowym. Zestaw testowy prawdopodobnie miałby wypaczone rozkłady klas, ale prawdopodobnie bardzo różni się od zestawu szkoleniowego, ponieważ mogą być one powiązane z różnymi obszarami biznesowymi. Jeśli dwie rozkłady klas są bardzo różne, wyszkolony klasyfikator może nie działać dobrze w zestawie testowym. Wydaje się to szczególnie oczywiste w przypadku klasyfikatora Naive Bayes.

Czy istnieje jakiś zasadny sposób radzenia sobie z różnicą między zestawem szkoleniowym a konkretnym danym zestawem testowym dla klasyfikatorów probabilistycznych? Słyszałem o tym, że „transdukcyjny SVM” działa podobnie w SVM. Czy istnieją podobne techniki uczenia się klasyfikatora, który najlepiej sprawdza się w danym zestawie testów? Następnie możemy ponownie przeszkolić klasyfikator dla różnych danych zestawów testowych, co jest dozwolone w tym praktycznym scenariuszu.

Fashandge
źródło

Odpowiedzi:

17

Jeśli różnica polega tylko na względnych częstotliwościach klas w zestawach szkoleniowych i testowych, poleciłbym procedurę EM wprowadzoną w tym artykule:

Marco Saerens, Patrice Latinne, Christine Decaestecker: Dostosowywanie wyników klasyfikatora do nowych prawdopodobieństw Priori: prosta procedura. Neural Computation 14 (1): 21-41 (2002) ( www )

Użyłem go sam i stwierdziłem, że działał bardzo dobrze (potrzebujesz klasyfikatora, który wyświetla prawdopodobieństwo członkostwa w klasie).

Jeśli rozkład wzorców w obrębie każdej klasy zmienia się, wówczas problem znany jest jako „przesunięcie współzmienne” i istnieje doskonała książka Sugiyamy i Kawanabe . Wiele artykułów tej grupy jest dostępnych on-line, ale zdecydowanie polecam przeczytanie książki, jeśli możesz zdobyć kopię. Podstawową ideą jest ważenie danych treningowych zgodnie z różnicą gęstości między zestawem treningowym a zestawem testowym (dla których etykiety nie są wymagane). Prostym sposobem na uzyskanie wagi jest użycie regresji logistycznej do przewidzenia, czy wzór jest pobierany z zestawu treningowego czy zestawu testowego. Trudność polega na tym, aby wybrać, jaką wagę zastosować.

Zobacz także miły wpis na blogu Alexa Smoli tutaj .

Dikran Torbacz
źródło
Dziękuję bardzo za dostarczenie tylu pomocnych wskazówek!
Fashandge
nie ma problemu, tego rodzaju „niestandardowe” sytuacje są naprawdę interesujące, a przesunięcie współzmienne jest szczególnie użytecznym obszarem badań.
Dikran Torbacz
1
Dobrze wiedzieć. Choć „niestandardowy”, w praktyce jest realistyczny.
Fashandge,
1

Znalazłem doskonały samouczek na temat adaptacji domeny, który może pomóc wyjaśnić to bardziej szczegółowo: http://sifaka.cs.uiuc.edu/jiang4/domain_adaptation/survey/da_survey.html Jedno rozwiązanie, o którym nie wspomniano tutaj, jest oparte na ADABOOST. Oto link do oryginalnego artykułu: http://ftp.cse.ust.hk/~qyang/Docs/2007/tradaboost.pdf Podstawowym pomysłem jest wykorzystanie niektórych nowych danych testowych do aktualizacji uczenia się z danych pociągu Ten artykuł jest wskazówką od iceburga na temat uczenia się przez przeniesienie - gdzie bierzesz to, co wiesz z jednego zadania, i stosuje je do innego.

rentreg
źródło
1
Czy możesz podać kilka kluczowych punktów podsumowujących z pierwszego samouczka, w szczególności w przypadku, gdy łącze znika lub jego lokalizacja się zmienia? Mamy tutaj problem z „zgnilizowaniem linków”, w którym wartość niektórych naszych starszych odpowiedzi uległa pogorszeniu ze względu na to, że linki przestały działać, więc fajnie jest, jeśli odpowiedzi mogą być tak samodzielne, jak to możliwe
Silverfish