Klasyfikacja warstwowa z losowymi lasami (lub innym klasyfikatorem)

12

Mam więc macierz o wymiarach około 60 x 1000. Patrzę na nią jako na 60 obiektów z 1000 cechami; 60 obiektów jest pogrupowanych w 3 klasy (a, b, c). 20 obiektów w każdej klasie i znamy prawdziwą klasyfikację. Chciałbym przeprowadzić nadzorowaną naukę na tym zestawie 60 przykładów szkoleniowych. Interesuję się zarówno dokładnością klasyfikatora (i powiązanymi wskaźnikami), jak i wyborem funkcji dla 1000 funkcji.

Po pierwsze, jak wygląda moja nomenklatura?

Teraz prawdziwe pytanie:

Mogłem rzucić na nią losowe lasy, jak podano, lub dowolną liczbę innych klasyfikatorów. Ale jest subtelność - naprawdę zależy mi tylko na odróżnieniu klasy c od klas a i b. Mógłbym połączyć klasy a i b, ale czy istnieje dobry sposób na wykorzystanie wiedzy a priori, że wszystkie obiekty inne niż c prawdopodobnie tworzą dwie odrębne klastry? Wolałbym używać losowych lasów lub ich wariantów, ponieważ wykazano, że są skuteczne w przypadku danych podobnych do moich. Ale mogę przekonać się do innych podejść.

użytkownik116293
źródło
Nie widzę żadnych problemów z twoją nomenklaturą. Czy to tylko 60 obiektów? Następnie, aby obliczyć dokładność klasyfikacji, musisz podzielić zestaw danych na zestawy pociągów, testów (a także walidacji). Są różne sposoby, aby to zrobić, ale myślę, że walidacja krzyżowa krotności jest najczęstsza. k
emrea
1
Tak, tylko te 60. Ale myślę, że w przypadku losowych lasów każde drzewo decyzyjne jest tworzone z podzestawem próbek, dzięki czemu można uzyskać szacunkowy błąd uogólnienia, stosując każdą z istniejących 60 próbek tylko do tych drzew w lesie, które nie nie zobaczy tej próbki podczas budowy. ( stat.berkeley.edu/~breiman/RandomForests/cc_home.htm#ooberr ) Więc może nie jest tu wymagana typowa walidacja krzyżowa.
użytkownik116293,
powinieneś bardzo martwić się o nadmierne dopasowanie. Masz 1000 zmiennych z 60 obiektami, czułbym się znacznie lepiej, gdyby to był drugi nabrzeże i nadal powiedziałbym, że powinieneś się martwić o przeregulowanie. Czy istnieje logiczny lub semantyczny sposób na zmniejszenie liczby zmiennych przed wykonaniem analizy?
jank

Odpowiedzi:

8

czy istnieje dobry sposób na wykorzystanie wiedzy a priori, że wszystkie obiekty inne niż c prawdopodobnie tworzą dwie odrębne klastry

Jeśli używasz metody opartej na drzewie, nie sądzę, żeby to miało znaczenie, ponieważ klasyfikatory dzielą przestrzeń cech, a następnie spójrz na proporcję próbek w każdej klasie. Liczy się więc względne wystąpienie klasy c w każdym węźle końcowym.

Jeśli jednak używasz czegoś w rodzaju mieszanki normalnych, LDA itp., Łączenie dwóch klastrów byłoby złym pomysłem (zakładając, że klasy aib tworzą unikalne klastry). Tutaj musisz zachować strukturę klas, aby dokładnie opisać przestrzeń cech odwzorowaną na a, b i c. Modele te zakładają, że funkcje dla każdej klasy mają inny rozkład normalny. Jeśli połączysz aib, wymusisz dopasowanie pojedynczego rozkładu normalnego do mieszaniny.

Podsumowując, drzewa nie powinny mieć większego znaczenia, jeśli:

I. Utwórz trzy klasyfikatory (1. a vs b, 2. a vs c i 3. b vs c), a następnie przewiduj metodę opartą na głosowaniu.

II. Scal klasy aib, aby utworzyć problem dwóch klas.

III. Przewiduj wszystkie trzy klasy, a następnie przypisz prognozę do wartości dwóch klas (np. F (c) = c, f (a) = not c, f (b) = not c).

Jeśli jednak zastosujesz metodę, która dopasowuje rozkład do każdej klasy, unikaj II. i sprawdź, który z I. lub III. działa lepiej dla twojego problemu

muratoa
źródło
III brzmi dobrze - choć myślę, że jeśli klasyfikator mówi, że próbka to 0,33 a, 0,33 b i 0,34 c, prawdopodobnie powinienem zsumować prawdopodobieństwa dla a i b, a zatem wybrać „nie c”.
user116293,
1
W przypadku (I), jaka jest dobra procedura w przypadku głosowania podzielonego (1: a, 2: c, 3: b), czy też jest to zbyt rzadkie, aby naprawdę miało znaczenie?
user116293,
Dla III. to co sugerujesz jest poprawne. W przypadku danych na 3 klasach nie sądzę, aby istniał jakikolwiek sposób podziału głosów (po 1 na każdy), ponieważ własność przechodnia musiałaby zostać naruszona. Jednak dla klas 4+ możesz mieć więzi u góry, w którym to przypadku możesz użyć liczby liczbowej zamiast wygranej / przegranej; tzn. suma ciężarów przyjmuje maksymalną klasę wagową.
muratoa,