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?
Odpowiedzi:
Powiedziano ci, że potrzebujesz odpowiedniej miary odległości. Oto kilka potencjalnych klientów:
i oczywiście: odległość Mahalanobisa .
źródło
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.
źródło
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!
źródło
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
shuffling
wartości w oryginalnym zestawie danych i przeszkoleniu klasyfikatora w zakresie oddzielania obu. Podczas klasyfikacji otrzymaszinter-sample distance matrix
test, na którym możesz przetestować swój ulubiony algorytm grupowania.źródło
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.
źródło