Jak dokonać jednoklasowej klasyfikacji tekstu?

14

Mam do czynienia z problemem klasyfikacji tekstu. Przeszukiwacz sieciowy indeksuje strony określonej domeny i dla każdej strony chcę dowiedzieć się, czy należy ona do jednej konkretnej klasy, czy nie. Oznacza to, że jeśli nazwiebym tę klasę jako Pozytywna , każda zaindeksowana strona internetowa należy albo do klasy Pozytywnej, albo do klasy Nie-dodatniej .

Mam już duży zestaw stron szkoleniowych dla klasy Positive . Ale jak stworzyć zestaw szkoleniowy dla klasy Nie-Pozytywny, który jest tak reprezentatywny, jak to możliwe? Mam na myśli, że mógłbym zasadniczo użyć każdego z nich do tej klasy. Czy mogę po prostu zebrać dowolne strony, które zdecydowanie nie należą do klasy Positive ? Jestem pewien, że wydajność algorytmu klasyfikacji tekstu (wolę korzystać z algorytmu Naive Bayes) w dużym stopniu zależy od tego, które strony wybiorę dla klasy Nie-Pozytywne .

Co mam więc zrobić? Czy ktoś może mi doradzić? Dziękuję Ci bardzo!

pemistahl
źródło
W rzeczywistości jest to grupowanie dwóch klas, ponieważ masz dwie klasy. Dla jednej klasy miałbyś tylko jedną klasę i byłbyś zainteresowany oceną, jak dobrze twoje obserwacje pasują do danych (tj. Wykrywanie wartości odstających).
Tim
Ten problem uczenia się ma nazwę - uczenie się PU. Jest to naturalnie stosowane, jeśli pozytywne przykłady są łatwe lub naturalne, ale negatywne są w zasadzie wszystkim, co spoczywa (trudne do zdobycia). Zasadniczo chcesz nauczyć się standardowego klasyfikatora dwóch klas, ale z innymi kryteriami - zoptymalizuj obszar pod krzywą PR. Ten pakiet oprogramowania pozwala trenować taki klasyfikator code.google.com/p/sofia-ml
Vladislavs Dovgalecs

Odpowiedzi:

5

EM algorytm Spy rozwiązuje ten problem dokładnie.

S-EM to system do nauki lub klasyfikacji tekstu, który uczy się na podstawie pozytywnych i nieznakowanych przykładów (bez przykładów negatywnych). Opiera się na technice „szpiegowskiej”, naiwnym algorytmie Bayesa i EM.

Podstawową ideą jest połączenie pozytywnego zestawu z całą masą losowo przeszukanych dokumentów. Początkowo traktujesz wszystkie zindeksowane dokumenty jako klasę negatywną i uczysz się naiwnego klasyfikatora Bayesa na tym zestawie. Teraz niektóre z tych zindeksowanych dokumentów będą faktycznie pozytywne, a Ty możesz zachowawczo ponownie etykietować wszystkie dokumenty, które uzyskały ocenę wyższą niż dokument prawdziwie pozytywny o najniższej ocenie Następnie powtarzaj ten proces, aż się ustabilizuje.

rrenaud
źródło
Wielkie dzięki, to brzmi całkiem obiecująco. Zajmę się tym.
pemistahl
6

Oto dobra teza o klasyfikacji jednoklasowej:

  • Podatek, DM: Klasyfikacja jednej klasy - Uczenie się koncepcji przy braku kontrprzykładów , praca doktorska, Technische Universiteit Delft, 2001. ( pdf )

Teza ta wprowadza metodę SVDD (ang. Support Vector Data Description), jednoklasową maszynę wektorów wsparcia, która znajduje wokół minimalnych hipersferę wokół danych zamiast hiperpłaszczyzny, która oddziela dane.

Teza ocenia także inne klasyfikatory jednoklasowe.

bryłka
źródło
Witamy na stronie, @nub. Mamy nadzieję zbudować stałe repozytorium informacji statystycznych, dlatego martwimy się o możliwość linkrotu. Czy mógłbyś podać podsumowanie informacji w tej pracy na wypadek, gdyby link utracił ważność?
gung - Przywróć Monikę
Dziękuję za podsumowanie. Zarejestruj się i połącz swoje konta (możesz dowiedzieć się, jak to zrobić w sekcji Moje konto w naszym centrum pomocy ), wtedy będziesz mógł edytować i komentować własne posty.
gung - Przywróć Monikę
@gung Dzięki za powitanie. Cieszę się, że otrzymałem znaczek „Yearling” na samym StackOverflow, więc teraz mogę komentować wszędzie.
Josiah Yoder-deactive, z wyjątkiem ..
@JosiahYoder, jeśli jesteś tutaj OP, połącz swoje konta. Możesz dowiedzieć się, jak to zrobić w sekcji Moje konto w naszym centrum pomocy .
Gung - Przywróć Monikę
Nie jestem OP. Po prostu przypadkowy użytkownik SO, który spotkał się z tym pytaniem.
JosiahYoder-deactive, z wyjątkiem ..
1

Dobre szkolenie wymaga danych, które zapewniają dobre oszacowania prawdopodobieństwa poszczególnych klas. Każdy problem z klasyfikacją obejmuje co najmniej dwie klasy. W twoim przypadku drugą klasą jest każdy, kto nie należy do klasy pozytywnej. Aby stworzyć dobrą granicę decyzyjną za pomocą Bayesa lub innej dobrej metody, najlepiej wykonać tyle danych treningowych losowo wybranych z klasy. Jeśli wybierzesz nieprzypadkowy, możesz uzyskać próbkę, która tak naprawdę nie odzwierciedla kształtu klasowych gęstości / rozkładów warunkowych i może prowadzić do złego wyboru granicy decyzji.

Michael R. Chernick
źródło
1
Masz rację, właśnie to mnie martwi. Jak wybrać próbkę próbek dodatnich, które prowadzą do granicy dobrej decyzji? Czy wybranie losowe jest najlepsze, co mogę zrobić?
pemistahl
0

Zgadzam się z Michaelem.

Jeśli chodzi o twoje pytanie dotyczące losowego wyboru; tak: musisz wybierać losowo z komplementarnego zestawu swoich „pozytywów”. Jeśli istnieje jakieś zamieszanie, że możliwe jest, że twoje „pozytywy” nie są w pełni zdefiniowane jako „czysto pozytywne”, jeśli mogę użyć tego wyrażenia, możesz także spróbować przynajmniej jakiejś dopasowanej definicji pozytywów, abyś mógł kontrola nad tymi zmiennymi, które potencjalnie powodują pewne zanieczyszczenie definicji „dodatniej”. W takim przypadku musisz odpowiednio dopasować te same zmienne po stronie „nie dodatniej”.

crmportals
źródło
0

Artykuł, który może być interesujący to:

„Rozszerzona klasyfikacja najbliższych skurczonych centroidów: Nowa metoda przypisywania autorstwu tekstów o różnych rozmiarach w otwartym zestawie”, Schaalje, Fields, Roper i Snow. Informatyka literacka i językowa, vol. 26, nr 1, 2011.

Który przyjmuje metodę przypisywania tekstu do zbioru autorów i rozszerza go, aby wykorzystać możliwość, że prawdziwego autora nie ma w zestawie kandydackim. Nawet jeśli nie użyjesz metody NSC, pomysły zawarte w artykule mogą być przydatne w zastanowieniu się, jak postępować.

Greg Snow
źródło