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)?
classification
semi-supervised-learning
nassimhddd
źródło
źródło
Odpowiedzi:
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:
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.
źródło
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.
źródło
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).
źródło