Grupowanie zestawu danych ze zmiennymi dyskretnymi i ciągłymi

33

Mam zestaw danych X, który ma 10 wymiarów, z których 4 to wartości dyskretne. W rzeczywistości te 4 zmienne dyskretne są porządkowe, tzn. Wyższa wartość implikuje wyższy / lepszy semantyczny.

2 z tych zmiennych dyskretnych są jakościowe w tym sensie, że dla każdej z tych zmiennych odległość np. Od 11 do 12 nie jest taka sama jak odległość od 5 do 6. Podczas gdy wyższa wartość zmiennej implikuje wyższą w rzeczywistości, skala jest niekoniecznie liniowy (w rzeczywistości nie jest tak naprawdę zdefiniowany).

Moje pytanie brzmi:

  • Czy dobrym pomysłem jest zastosowanie wspólnego algorytmu grupowania (np. K-średnich, a następnie mieszanki Gaussa (GMM)) do tego zestawu danych, który zawiera zarówno zmienne dyskretne, jak i ciągłe?

Jeśli nie:

  • Czy powinienem usunąć zmienne dyskretne i skupić się tylko na zmiennych ciągłych?
  • Czy powinienem lepiej dyskretyzować ciągłe i używać algorytmu klastrowania dla dyskretnych danych?
ptikobj
źródło
3
Musisz znaleźć dobrą miarę odległości (często najtrudniejsze zadanie w klastrowaniu): jeśli możesz znaleźć miarę odległości, która poprawnie i dokładnie opisuje, jak podobne (lub nie) są twoje elementy danych, nie powinieneś mieć żadnych problemów.
Andrew
Mówiąc o tych 2 zmiennych kategorycznych, które w efekcie opisałeś jako porządkowe. A co z pozostałymi 2 „porządkowymi” zmiennymi? Czym się różnią od nich?
ttnphns
Są również dyskretne, ale oba mają znaczącą funkcję odległości, tj. Są oparte na interwałach (jeśli nie mam wątpliwości co do definicji opartej na interwałach).
ptikobj

Odpowiedzi:

14

Powiedziano ci, że potrzebujesz odpowiedniej miary odległości. Oto kilka potencjalnych klientów:

i oczywiście: odległość Mahalanobisa .

Emre
źródło
7

W przeszłości miałem do czynienia z tego rodzaju problemem i myślę, że mogą istnieć 2 ciekawe podejścia:

  • Kontynuacja: przekształcaj atrybuty symboliczne za pomocą sekwencji liczb całkowitych. Można to zrobić na kilka sposobów, wszystkie opisane w tym artykule . Możesz wypróbować algorytmy NBF, VDM i MDV.

  • Dyskretyzacja: przekształcaj ciągłe atrybuty w wartości symboliczne. Ponownie wiele algorytmów i dobry wykład na ten temat to ten artykuł . Uważam, że najczęściej stosowaną metodą jest Holte's 1R, ale najlepszym sposobem, aby się upewnić, jest spojrzenie na krzywe ROC względem algorytmów takich jak EWD, EFD, ID, LD lub NDD.

Gdy wszystkie funkcje znajdują się w tej samej przestrzeni, staje się to zwykłym problemem klastrowym.

Wybór między kontynuacją lub dyskretyzacją zależy od zestawu danych i tego, jak wyglądają twoje funkcje, więc trudno powiedzieć, ale radzę przeczytać artykuły, które ci dałem na ten temat.

Charles Menguy
źródło
4

K-znaczy oczywiście nie ma żadnego sensu, ponieważ oblicza środki (które są nonsensowne). To samo dotyczy GMM.

Możesz wypróbować oparte na odległości algorytmy grupowania z odpowiednimi funkcjami odległości, na przykład DBSCAN.

Głównym wyzwaniem jest znalezienie funkcji odległości!

Chociaż możesz wprowadzić inną funkcję odległości do k-średnich, nadal będzie ona obliczać średnią, co prawdopodobnie nie ma większego sensu (i prawdopodobnie mierzy się z funkcją odległości dla wartości dyskretnych).

W każdym razie, najpierw skup się na określeniu, co jest „podobne” . Następnie klaster za pomocą tej definicji podobnego!

Anony-Mus
źródło
2

Jeśli czujesz się komfortowo pracując z matrycą odległości o rozmiarze num_of_samples x num_of_samples, możesz również użyć random forests.

Kliknij tutaj, aby zobaczyć dokument referencyjny zatytułowany Unsupervised learning with random forest predictors.

Pomysł polega na utworzeniu syntetycznego zestawu danych według shufflingwartości w oryginalnym zestawie danych i przeszkoleniu klasyfikatora w zakresie oddzielania obu. Podczas klasyfikacji otrzymasz inter-sample distance matrixtest, na którym możesz przetestować swój ulubiony algorytm grupowania.

srctaha
źródło
-2

Należy zastosować podejście mieszane: 1) Użyj techniki klasyfikacji (drzewo decyzyjne C4.5), aby sklasyfikować zestaw danych do 2 klas. 2) Po zakończeniu pozostaw zmienne jakościowe i kontynuuj ciągłe zmienne do grupowania.

Swapnil Soni
źródło
Nie mogłem zastosować się do twojej sugestii. Jakie dwie klasy i jak to pomoże?
KarthikS,
Myślę, że Swapnil Soni musi powiedzieć, że kiedy użyjemy techniki klasyfikacji, aby zaklasyfikować ją do dwóch klas. Następnie możemy użyć etykiety wyniku klasyfikacji jako zmiennej binarnej. Zamiast wszystkich zmiennych kategorycznych otrzymujesz orientacyjną zmienną binarną, a następnie algorytm grupowania może kontynuować przetwarzanie danych (składające się ze wszystkich zmiennych ciągłych plus 1 zmienna binarna). Moja interpretacja może się jednak mylić.
Tusharshar,
całkiem w porządku!
Swapnil Soni