Zbuduj binarny klasyfikator z danymi dodatnimi i nieznakowanymi

11

Mam 2 zestawy danych, jeden z pozytywnymi instancjami tego, co chciałbym wykryć, a drugi z nieznakowanymi instancjami. Jakich metod mogę użyć?

Przykładowo, załóżmy, że chcemy zrozumieć wykrywanie spamu na podstawie kilku ustrukturyzowanych właściwości wiadomości e-mail. Mamy jeden zestaw danych zawierający 10000 wiadomości e-mail ze spamem i jeden zestaw danych zawierający 100 000 wiadomości e-mail, dla których nie wiemy, czy są spamem, czy nie.

Jak poradzić sobie z tym problemem (bez ręcznego etykietowania żadnych nieoznaczonych danych)?

Co możemy zrobić, jeśli mamy dodatkowe informacje na temat odsetka spamu w nieoznaczonych danych (tj. Co jeśli szacujemy, że 20–40% z 100000 nieoznaczonych e-maili to spam)?

nassimhddd
źródło
1
Do postu należy dodać tagi częściowo nadzorowane i uczące się. Te tagi wciąż nie istnieją i obecnie nie mogę ich utworzyć.
DaL,
@DanLevin Tak, [tag: częściowo nadzorowane uczenie się] ma sens. Dodano :) Nie jestem pewien w części dotyczącej uczenia się pu (przynajmniej nie jestem tego świadomy), więc ktoś inny może to zrobić!
Dawny33
1
Uczenie się PU jest szczególnym przypadkiem uczenia się częściowo nadzorowanego. Rzadziej (wyniki 7K w Google) niż częściowo nadzorowane (298K wyników w Google), że pytanie to jest PU (oznaczony zestaw danych jest po prostu pozytywny). Podczas gdy temat jest omawiany w akademii (np. Cs.uic.edu/~liub/NSF/PSC-IIS-0307239.html ), możliwe jest, że to pytanie będzie przez dłuższy czas samo z tym znacznikiem.
DaL,

Odpowiedzi:

7

Moją sugestią byłaby próba zbudowania pewnego rodzaju grupowania na nieoznaczonych danych, które w przybliżeniu przybliżają oznaczony zestaw danych. Uzasadnienie jest mniej więcej takie:

  • Masz jakiś wektor funkcji do reprezentowania dokumentów
  • W oparciu o ten wektor cech, możesz wymyślić wiele różnych klastrów, z wykorzystaniem metod grupowania rozmytego, szorstkiego lub klasowego
  • Wiedząc, jak wygląda pozytywny przykład, możesz szybko ocenić ogólne podobieństwo klastra do klastra pozytywnego
  • Wiedząc, że tak naprawdę powinny istnieć tylko dwa klastry, możesz dostosować hiperparametry w swojej metodzie klastrowania, aby powyższe dwa wskaźniki były coraz bliżej satysfakcji
  • Dzięki dwóm klastrom masz zapewne przybliżone przybliżenie oznaczonego zestawu danych, który możesz następnie wykorzystać jako rodzaj srebrnego standardowego korpusu do treningu modelu

Mam nadzieję, że ma to sens, jeśli szczególnie szukasz algorytmów klastrowania, kilka, które osobiście lubię, które mogą być dobre w tym scenariuszu, to FLAME i tsne . Alternatywnie, patrząc na spektakularną bibliotekę gensim w pythonie, dostaniesz długą drogę do poszukiwania klastrów.

Mam nadzieję, że to pomaga i ma sens, zostaw komentarz, jeśli masz jakieś pytania.

indico
źródło
Dziękuję za odpowiedź. Czy dobrze rozumiem: Twoim punktem wyjścia jest połączenie 2 zestawów danych?
nassimhddd
@ cafe876 Jest to z pewnością jeden ze sposobów na rozpoczęcie, a następnie próby odtworzenia klastrów, które są zbliżone do oryginału.
indico
3

Twój problem należy do struktury uczenia się PU (tylko pozytywne, wiele nieoznakowanych).

Jest także zbliżony do bardziej powszechnych ram uczenia się częściowo nadzorowanego (kilka pozytywnych i negatywnych aspektów, wiele nieoznakowanych).

Istnieje wiele prac ankietowych, które można sprawdzić w terenie.

Klasyczną metodą w terenie, która została przetestowana pod kątem spamu, tak jak w twoim przypadku, jest wspólne szkolenie. Podczas szkolenia budujesz dwóch niezależnych uczniów (np. Jeden oparty na treści poczty i jeden oparty na schemacie wysyłania) i używasz wyniki jednego z nich trenować drugiego i odwrotnie.

DaL
źródło
2

Wytrenuj 2 modele generatywne, po jednym dla każdego zestawu danych (tylko spam, spam plus szynka), które zapewnią prawdopodobieństwo, że punkt danych zostanie wyciągnięty z tego samego rozkładu prawdopodobieństwa danych szkoleniowych. Przypisywanie wiadomości e-mail jako spamu lub szynki na podstawie modelu daje największe prawdopodobieństwo, że dokument powstanie na podstawie danych szkoleniowych użytych do jego szkolenia. Przykładowymi modelami generatywnymi są RBM, autokodery (w takim przypadku, który model ma najniższy błąd rekonstrukcji). Prawdopodobnie istnieją również bayesowskie modele generatywne, które przypiszą prawdopodobieństwo do punktu danych na podstawie niektórych danych treningowych.

Najlepszym rozwiązaniem byłoby poświęcenie czasu na opracowanie drugiego zestawu danych zawierającego tylko szynkę. To zapewni wyższą dokładność klasyfikacji. Zakładając niższy odsetek spamu do wiadomości e-mail z szynką, nie powinno to być zbyt trudne. Możesz nawet użyć Mechanical Turk, jeśli brakuje Ci czasu lub zasobów (lub stażystów / studentów lub innej taniej siły roboczej).

Szymon
źródło
Dziękuję za odpowiedź. To świetny przykład tego, co potrafią modele generatywne, czego nie potrafią modele dyskryminacyjne.
nassimhddd