Wybór funkcji dla problemów związanych z klastrowaniem

9

Usiłuję grupować różne zestawy danych przy użyciu nienadzorowanych algorytmów (klastrowanie). Problem polega na tym, że mam wiele funkcji (~ 500) i niewielką liczbę skrzynek (200-300).

Do tej pory robiłem tylko problemy z klasyfikacją, dla których zawsze oznaczyłem dane jako zestawy szkoleniowe. Tam zastosowałem jakieś kryterium (tj. Losowy.lasy.importance lub information.gain) do wstępnego wyboru funkcji, a następnie zastosowałem sekwencyjny wybór do przodu dla różnych uczniów, aby znaleźć odpowiednie cechy.

Teraz widzę, że w przypadku uczenia się bez nadzoru nie mam żadnego kryterium wyboru wstępnego, ani nie mogę używać sekwencyjnego wybierania do przodu (przynajmniej nie w pakiecie mlr).

Zastanawiałem się, czy mógłbym wcześniej przeprowadzić analizę głównego składnika, aby znaleźć niewielką liczbę funkcji, które mogłyby zostać wykorzystane w algorytmie klastrowania. A może masz jakiś inny pomysł?

Dzięki

edytować:

Ok, więc po kilku badaniach online mogę trochę zaktualizować swoje pytanie: po pierwsze przeczytałem kilka artykułów, które zniechęcają do korzystania z PCA przed algorytmami klastrowania, z dwóch powodów:

  • Komputery są funkcjami wszystkich funkcji, dlatego trudno jest powiązać wynik z początkowym zestawem danych, dlatego trudniej jest je zinterpretować

  • Co więcej, jeśli masz problem z tym, że tak naprawdę tylko niewielka część twoich funkcji jest pomocna w tworzeniu klastrów, nie jest powiedziane, że te funkcje opisują również największą wariancję wśród próbek (co robią komputery PC)

Więc PCA nie wchodzi w grę ...

Teraz wracam do mojego początkowego pomysłu, aby dokonać sekwencyjnego wybierania do przodu dla grupowania.

Jaką miarę wydajności poleciłbyś? (Myślałem o indeksie Dunna) Który algorytm grupowania prowadziłby do klastrów mniej więcej tego samego rozmiaru? (w przypadku klastrowania hierarchicznego zwykle otrzymuję jeden klaster z jedną wartością odstającą, a drugi z całą resztą -> więc potrzebowałbym czegoś, co w jakiś sposób chroni przed wartościami odstającymi)

Mam nadzieję, że możecie mi pomóc ...

Nieznany z nazwiska
źródło
Losowe lasy mogą być stosowane w przypadku problemów bez nadzoru. I myślę, że nadal możesz wyodrębnić niektóre funkcje informacyjne w tym procesie.
amanita kiki,

Odpowiedzi:

11

Chciałbym podzielić się kilkoma przemyśleniami na temat zmniejszenia wymiarów w problemach związanych z uczeniem się bez nadzoru. Odpowiadając, założyłem, że interesuje Cię interpretacja klastrowa „w dotyku”, w przeciwieństwie do zautomatyzowanego, „pod klucz”, czarnej skrzynki i „uczenia się w maszynie dotykowej”, w której interpretacja jest celowo odrzucana . Gdyby to było to drugie, dlaczego miałbyś w ogóle zadawać pytanie? Zauważ też, że przez lata miałem mnóstwo doświadczenia w prowadzeniu rozwiązań klastrowych w szerokim zakresie środowisk biznesowych, w tym w strategicznym marketingu B2C, arenach technologicznych B2B i polityce edukacyjnej (grupowanie uczniów i szkół).

Najpierw jednak mam pytanie dotyczące twojego komentarza dotyczącego „grupowania różnych zestawów danych”. Nie wiedziałem, co masz na myśli, ani w jaki sposób może to wpłynąć na to podejście i miałem nadzieję, że możesz to rozwinąć.

Chciałbym zakwestionować twoje założenie w punkcie 1 powyżej, że rozwiązania oparte na PCA są „trudne do interpretacji”. Przyczyny nawet uruchomienia PCA jako wstępnego etapu klastrowania mają głównie związek z higieną powstałego rozwiązania, o ile wiele algorytmów klastrowania jest wrażliwych na nadmiarowość funkcji. PCA zamienia tę redundancję w poręczną garść komponentów, minimalizując w ten sposób wyzwania i trudności związane z wyborem funkcji. Chociaż prawdą jest, że komponenty wyprowadzane z PCA zacierają ziarnistość i specyficzność poszczególnych funkcji, jest to problem, na który polegasz wyłączniena tych elementach w analizie wyników. Innymi słowy, nie jesteś w żaden sposób zablokowany przy użyciu tylko komponentów do interpretacji klastrów. Co więcej, niekoniecznie musisz dbać o to, co oznaczają wymiary czynnika. Są tylko pośrednimi i (ostatecznie) jednorazowymi środkami do celu, ułatwiającymi rozwiązanie. Mówiąc jednak o tym, różnię się od wielu praktyków, ponieważ zespoły mogą, będą i spędzają tygodnie ostrożnie budując „znaczące” rozwiązanie czynnikowe. Dla mnie jest to nieefektywne marnowanie czasu i pieniędzy klienta.

W tym momencie będzie mnóstwo rozważań technicznych do rozwiązania. Po pierwsze, jeśli algorytm PCA nie jest niezmienny w skali (np. Jest OLS vs ML), wówczas każde powstałe rozwiązanie PCA zostanie zniekształcone, obciążając w większym stopniu funkcje o dużej wariancji. W takich przypadkach funkcje należy wstępnie przetworzyć lub w jakiś sposób przekształcić, aby spłaszczyć tę wariancję. Istnieje tutaj ogromna liczba możliwości, w tym średnia standaryzacja, standaryzacja zakresu lub IQR, skalowanie ipsatywne i tak dalej. Wykorzystaj tę transformację, aby uzyskać najlepsze, najbardziej zrozumiałe rozwiązanie.

Po wygenerowaniu rozwiązania klastrowego interpretacja jest najlepiej motywowana (z mojego doświadczenia) poprzez ignorowanie składników i składanie oryginalnych funkcji wraz z wszelkimi dodatkowymi informacjami opisowymi, które nie są bezpośrednio używane w rozwiązaniu. W tym momencie kilka heurystyk jest najlepszym przewodnikiem do wglądu jakościowego. Może to być tak proste, jak wygenerowanie arkusza kalkulacyjnego, który profiluje klastry na podstawie średnich lub median dla każdej cechy (wierszy arkusza), dla każdego klastra (kolumn), a także dodatkowej kolumny reprezentującej średnią średnią dla całej próbki . Następnie, indeksując średnie skupień dla każdej cechy względem wielkiej średniej (i mnożąc przez 100), tworzona jest heurystyka, która jest jak wynik IQ, o ile około „100” to „normalne” IQ lub średnie zachowanie, indeksy 120+ sugerują wysokie prawdopodobieństwo, że funkcja jest „prawdziwa” w odniesieniu do zachowania klastra, a indeksy o wartości 80 lub mniejszej wskazują na cechy, które „nie są prawdziwe” w klastrze. Te indeksy wynoszące 120+ i 80 lub mniej są jak testy t-proxy pod kątem znaczenia danej funkcji w sterowaniu rozwiązaniem. Oczywiście można przeprowadzać testy grupowe o znaczeniu i, w zależności od wielkości próby, uzyskać odpowiedzi, które różnią się w zależności od tych szybkich i brudnych zasad.

Ok ... po tym wszystkim, przypuśćmy, że nadal jesteś przeciwny używaniu PCA jako bezpośredniego wejścia do algorytmu klastrowania, problem pozostaje w związku z wyborem ograniczonego zestawu funkcji. PCA może być nadal przydatne tutaj, ponieważ PCA są jak regresja bez zmiennej zależnej. Najważniejsze funkcje ładowania dla każdego komponentu mogą stać się danymi wejściowymi do algorytmu klastra.

Jeśli chodzi o dużą liczbę cech i stosunkowo niewielką próbkę danych, typową zasadą w wielu analizach wielowymiarowych „pełnej informacji” jest minimum 10 obserwacji na obiekt. Istnieje kilka specjalistycznych metod, które można wykorzystać, aby obejść to wyzwanie. Na przykład częściowe najmniejsze kwadraty (PLS) został po raz pierwszy opracowany przez Hermana Wolda w jego książce z 1990 roku Theoretical Empiricism do zastosowania w takich dziedzinach, jak chemometria, które borykają się z tym właśnie problemem. Ma on charakter analityczno-czynnikowy, ale jest znacznie mniej rygorystyczny w wymaganiu dużej liczby n do wygenerowania wymiarów. Inne rozwiązania obejmują losowe, przypominające lasy metody „dziel i rządź”, wykorzystujące uczenie maszynowe z dużą ilością informacji. Metody te zostały przejrzane w tym pliku pdfhttp://www.wisdom.weizmann.ac.il/~harel/papers/Divide%20and%20Conquer.pdf

Przypuśćmy jednak, że zdecydowałeś, że nadal nie chcesz mieć nic wspólnego z analizą czynników, i że jesteś zdecydowany uruchomić jakiś nadzorowany, „sekwencyjny” proces selekcji. Moim zdaniem najważniejszą kwestią jest nie tyle znalezienie metryki wydajności post-hoc (Indeks Dunna), ale więcej informacji na temat identyfikacji odpowiedniego proxy - zmiennej zależnej - aby nawet to podejście było możliwe. Ta decyzja jest całkowicie zależna od twojego osądu i statusu MŚP zapisującego twoje dane. Nie ma na to „najlepszych praktyk”, o wiele mniej łatwych odpowiedzi, a biorąc pod uwagę, jak opisałeś swoje dane, nie jest to małe wyzwanie.

Po podjęciu tej decyzji istnieją dosłownie setki możliwych rozwiązań wyboru zmiennych do wyboru. Wybór zmiennych jest obszarem tematycznym, w którym każdy statystyk i ich brat opublikowali artykuł. Preferowane przez ciebie podejście to „sekwencyjny wybór do przodu” jest w porządku.

Warto zauważyć, że istnieją nadzorowane modele uczenia, które składają się w rozwiązanie klastrowe jako część algorytmu. Przykładami tego są duże i bardzo elastyczne podejścia znane jako modele klas ukrytych. Istotą modeli LC jest to, że są one dwustopniowe: w pierwszym etapie definiuje się DV i buduje model regresji. W drugim etapie wszelka niejednorodność w wyjściu resztkowym z modelu - pojedynczy wektor utajony - jest dzielona na utajone „klasy”. Tutaj jest omówienie modelowania LC w tej dyskusji CV ... Wątpliwości dotyczące wielomianowego modelu logitów klasy utajonej

Mam nadzieję że to pomoże.

Mike Hunter
źródło
Dziękuję za poświęcenie czasu na tak obszerną odpowiedź na moje pytanie. Po pierwsze zabawne jest to, że wspomniałeś o chemometrii, ponieważ nad tym dokładnie pracuję. Próbuję znaleźć klastry w pomiarach różnych próbek, a moje cechy to sygnały w widmie nmr. Jest to także główny powód, dla którego tak wcześnie pomyślałem o odrzuceniu PCA, ponieważ celem mojej analizy jest powiązanie klastrów z garstką faktycznych funkcji (sygnałów). Nie jestem zdeterminowany, aby korzystać z selekcji sekwencyjnej, to jest to, czego do tej pory użyłem. Spojrzę na linki, które podałeś.
JohnDoe,
To zabawne w chemometrii. Książka Wolda jest ogólnie dobrą lekturą. Jakie „podmioty” obejmują próbki? A jakie są obrazowania nmrs?
Mike Hunter
Próbki są wodnymi ekstraktami roślinnymi i pobierają widma 1H-nmr. Moje zadanie ma charakter wyłącznie eksploracyjny. Mam znaleźć każdy klaster, który chcemy odnieść do różnych genotypów lub różnych cech rośliny, takich jak odporność na suszę, stres itp. Nie jest łatwo znaleźć dobry punkt wyjścia do znalezienia odpowiedniego zestawu metabolitów / funkcje, które pomagają podzielić klastry, ponieważ będą różne klastry utworzone przez różne funkcje dla różnych pytań.
JohnDoe
Dlatego pomyślałem, że sekwencyjne podejście może najlepiej działać: - znajdź zestaw funkcji do klastrowania danych - następnie usuń te funkcje z całego zestawu i zacznij od nowa W ten sposób mam nadzieję znaleźć kilka zestawów klastrów, z którymi mogę się później odnosić różne pytania
JohnDoe
1
Coś do rozważenia to porównanie wszelkich prac eksploracyjnych ze z góry określonym lub zdefiniowanym zestawem klastrów zwanym również „analizą klastrową” potwierdzającą. Sugeruję to, ponieważ brzmi to tak, jakbyś ty i twój zespół mieli pewne silne hipotezy dotyczące tworzenia klastrów jako funkcji np. Rośliny „odporności na stres suszy”. Myślę, że przekonasz się, że prace poszukiwawcze zapewnią doskonały wgląd i wyniki. Klaster eksploracyjny wykorzystuje pełne informacje dostępne w twoich danych, podczas gdy reguły „potwierdzającego” przypisywania zwykle wykorzystują względną garść funkcji
Mike Hunter
1

Wszystko czego potrzebujesz to kryterium jakości klastrowania. Oto pomysł: dzielisz dane na pociąg i testujesz, budujesz klastrowanie na części pociągu; użyj tego klastrowania do grupowania każdego elementu zestawu testowego (według najbliższego klastra); zbuduj oddzielne grupowanie na zestawie testowym; znajdź podobieństwo klastrowania w teście z przewidywanym klastrowaniem. To podobieństwo jest kryterium jakości grupowania. Teraz, jak zmierzyć to podobieństwo, zależy od ciebie. Po uzyskaniu go wybierasz podzbiór funkcji, aby zmaksymalizować to podobieństwo.

przystań
źródło