Klasyfikator niepewnych etykiet klas


11

Załóżmy, że mam zestaw instancji z przypisanymi etykietami klas. Nie ma znaczenia, jak te instancje zostały oznaczone, ale jak pewne jest ich członkostwo w klasie. Każde wystąpienie należy do dokładnie jednej klasy. Powiedzmy, że potrafię oszacować pewność przynależności do każdej klasy za pomocą nominalnego atrybutu, który wynosi od 1 do 3 (odpowiednio bardzo niepewne).

Czy istnieje jakiś rodzaj klasyfikatora, który bierze pod uwagę taką miarę pewności, a jeśli tak, to czy jest on dostępny w zestawie narzędzi WEKA?

Wyobrażam sobie, że taka sytuacja zdarza się dość często, na przykład gdy przypadki są klasyfikowane przez ludzi, co nie zawsze jest całkowicie pewne. W moim przypadku muszę klasyfikować obrazy, a czasem obraz może należeć do więcej niż jednej klasy. Jeśli tak się stanie, daję klasie dużą niepewność, ale nadal klasyfikuję ją za pomocą tylko jednej klasy.

A może istnieją inne podejścia do tego problemu bez specjalistycznego klasyfikatora? Np. Biorąc tylko „określone” klasyfikacje na szkolenie? Obawiam się, że w tym przypadku będzie więcej błędnych klasyfikacji, ponieważ przypadki „graniczne” nie są objęte.


1
Czy każdy wpis należy do dokładnie jednej klasy? Czy jest możliwe, że jakaś pozycja należy do klasy 12 z pewnością 1 i klasy 34 z pewnością 2?
user31264,

W tym przypadku każdy wpis należy do dokładnie jednej klasy.
wnstnsmth,

Odpowiedzi:


8

Przede wszystkim, jak już wyjaśnił @Marc Claesen, półnadzorowana klasyfikacja jest jedną z technik, które pozwalają zająć się sytuacją, w której wiadomo, że klasy są naprawdę odrębne, ale nie masz pewności, do której klasy faktycznie należy sprawa.

Istnieją jednak również powiązane sytuacje, w których „rzeczywistość” nie jest tak jasna, a założenie posiadania naprawdę odrębnych klas nie jest spełnione: przypadki graniczne mogą być rzeczywistością „fizyczną” (patrz poniżej artykuły na temat aplikacji gdzie spełniliśmy taki warunek).

Jest jedno kluczowe założenie dla półnadzorowanych klasyfikatorów , które musisz upewnić się, że jest spełnione: założenie, że w przestrzeni cech granice klas towarzyszą niskiej gęstości próbki . Jest to określane jako założenie klastra.
Nawet jeśli rzeczywistość leżąca u podstaw twoich danych ma odrębne klasy, twój zestaw danych może mieć nieproporcjonalnie więcej przypadków granicznych: np. Jeśli twoja technika klasyfikacji ma na celu klasyfikację trudnych przypadków, podczas gdy jasne i łatwe przypadki nie są interesujące i już twoje dane treningowe odzwierciedlają to sytuacja.

biorąc tylko „pewne” klasyfikacje na szkolenie? Obawiam się, że w tym przypadku będzie więcej błędnych klasyfikacji, ponieważ przypadki „graniczne” nie są objęte.

W pełni się z tobą zgadzam, że wykluczenie przypadków granicznych jest często złym pomysłem: usunięcie wszystkich trudnych przypadków kończy się sztucznie łatwym problemem. IMHO jest nawet gorsze, że wykluczenie przypadków granicznych zwykle nie kończy się na szkoleniu modeli, ale przypadki graniczne są również wykluczone z testowania, dlatego testowanie modelu odbywa się tylko w przypadkach łatwych. Dzięki temu nawet nie zdajesz sobie sprawy, że model nie działa dobrze w przypadkach granicznych.

Oto dwa artykuły, które napisaliśmy o problemie różniącym się od twojego tym, że w naszej aplikacji również rzeczywistość może mieć „mieszane” klasy (bardziej ogólna wersja twojego problemu: obejmuje to również niepewność w etykietach referencyjnych).

Łącza prowadzą do strony projektu pakietu R, który opracowałem w celu wykonania obliczeń wydajności. Istnieją dalsze linki zarówno do oficjalnej strony internetowej, jak i do moich manuskryptów artykułów. A ja nie był używany dotychczas WEKA, rozumiem, że interfejs do R jest dostępny .


względy praktyczne:

  • Chociaż podejście „kopiuj i etykietuj” jest proste, nie działa dobrze ze wszystkimi klasyfikatorami i implementacjami w praktyce. Np. AFAIK nie ma sposobu, aby powiedzieć libSVMtuningowi przez walidację krzyżową, że wszystkie kopie każdego punktu danych muszą być przechowywane w tej samej krotnie walidacji krzyżowej. W ten sposób libSVMstrojenie prawdopodobnie spowodowałoby masywne dopasowanie modelu.
  • Również w przypadku regresji logistycznej zauważyłem, że wiele implementacji nie pozwoliło na częściowe etykiety członkostwa, których potrzebowałem.
  • Implementacja, której użyłem w powyższych dokumentach, jest w rzeczywistości ANN bez ukrytej warstwy, używając logistyki jako sigmoidalnej funkcji link ( nnet::multinom).

Twoje pierwsze praktyczne rozważenie, choć prawdziwe, nie dotyczy libsvmw szczególności. W libsvmautorzy dostarczenie alternatywnej wersji każdej uwalniania, w których klasyfikację przykład ważonego jest możliwe, aby uniknąć tego problemu w ogóle. To właśnie takie rzeczy powodują, że ogólnie używam bibliotek algorytmów bezpośrednio, zamiast opakowań takich jak Weka / scipy / ... csie.ntu.edu.tw/~cjlin/libsvmtools/#weights_for_data_instances
Marc Claesen

@MarcClaesen: dzięki - nie widziałem tego. Ale czy nie trzeba dostarczać dwóch przypadków tego samego przypadku, jeden ważony powiedzmy z 1/3 klasy A, a drugi z 2/3 klasy B? W każdym razie brak konieczności dostarczania wielu kopii czystych przypadków sprawi, że strojenie będzie mniej problematyczne (w przypadku moich danych i tak muszę dokonywać podziałów strojenia zewnętrznie, ponieważ mam „hierarchiczną” strukturę danych z wieloma pomiarami rzeczywistych przypadków )
cbeleites niezadowoleni z SX

@cbeiteles, gdy instancja może należeć do wielu klas, rzeczywiście trzeba będzie podać ją wiele razy, nawet przy takim ważeniu instancji. Nie rozważałem tej możliwości.
Marc Claesen,

6

Jest to jedno z uogólnień klasyfikacji, którym zajmuje się nauczanie częściowo nadzorowane. Jeśli masz pomiar pewności, możesz zastosować metody, które pozwalają na ważenie instancji treningowych. Im wyższa pewność, tym większa odpowiednia waga wystąpienia. Przykłady takich podejść obejmują SVM ważoną instancją i regresję logistyczną.

Jestem pewien, że weka ma implementacje tych algorytmów. Jeśli wszystko inne zawiedzie, próbkuj wiele wystąpień z wystąpień z dużą pewnością. Możesz zastosować to podejście do tradycyjnego SVM lub LR.

Przykład: SVM

Jeśli się nie mylę, weka ma interfejsy do LIBSVM . LIBSVM pozwala na rozwiązanie SVM ważonego klasą we wszystkich jego wydaniach oraz SVM ważonego instancją w specjalnych wersjach każdego wydania. Zakładam, że weka nie obsługuje tego drugiego (czego potrzebujesz).

SVM ważony klasą minimalizuje następującą funkcję celu:

minw,ξw2+CposiPξi+CnegiNξi,
wξPNCposCneg

×

C


(+1) to jest to! Poprzez powielanie instancji z różnymi etykietami i wagami instancji (zwanych też pewnikami etykiet), można również zastosować algorytmy takie jak Losowe lasy, Naive Bayes itp. Wagi instancji są tak powszechne, że weka musi mieć uczniów, którzy je obsługują. Rapidminer (konkurent weka) robi. Ustawiając pewność na 1, można nawet modelować „wyraźne” problemy z wieloma etykietami.
steffen,

Masz rację, WEKA obsługuje LIBSVM, ale nie obsługuje ważenia instancji, afaik. Myślę, że pomysł powielania instancji jest bardzo dobry, zwłaszcza że każdy „tradycyjny” uczeń może sobie z tym poradzić.
wnstnsmth

2

Trudność problemu zależy w dużej mierze od tego, jak błędne mogą być niepewne etykiety. Jeśli niepewne etykiety są prawidłowe, powiedzmy, w 90% przypadków, prawdopodobnie można uniknąć regresji logistycznej. Z drugiej strony, jeśli etykiety są prawie w połowie błędne, być może trzeba będzie zastosować specjalne techniki. Oto jeden dźgnięcie, które podjąłem przy bardzo podobnym problemie. (Mieliśmy wiele obserwacji na etykietę, ale poza tym konfiguracja jest dość podobna).


-5

Miałem krótki bieg z rozpoznawaniem i klasyfikacją obrazów.

Losowe lasy to łatwa w użyciu technika. Wdrożyłem go na R, powinien być również dostępny na Weka. Jednak łatwość użycia przewyższa precyzję przewidywania. Jeśli masz wystarczająco duży zestaw treningowy, możesz sklasyfikować wiele etykiet.

Udało się całkiem dobrze rozpoznać odręczne cyfry, ale jeśli twoje zdjęcia są bardziej złożone, tylko próba powie ci, czy dobrze sobie radzi.


4
Co to ma wspólnego z niepewnymi etykietami klas?
wnstnsmth
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.