Mam pewne punkty danych, każdy zawierający 5 wektorów aglomerowanych wyników dyskretnych, wyniki każdego wektora generowane przez inny rozkład (konkretny rodzaj, którego nie jestem pewien, najlepiej zgaduję, że Weibull, z parametrem kształtu zmieniającym się gdzieś w pobliżu wykładniczej mocy prawo (od 1 do 0, z grubsza).)
Chcę użyć algorytmu klastrowania, takiego jak K-Means, aby umieścić każdy punkt danych w grupach na podstawie atrybutów jego 5 rozkładów komponentów. Zastanawiałem się, czy istnieją jakieś ustalone wskaźniki odległości, które byłyby eleganckie do tych celów. Do tej pory miałem trzy pomysły, ale nie jestem doświadczonym statystykiem (bardziej początkującym informatykiem), więc nie mam pojęcia, jak daleko się posunąłem.
Ponieważ nie wiem dokładnie, z jakimi dystrybucjami mam do czynienia, moje brutalne podejście do problemu polegało na pokrojeniu każdego z rozkładów (mam 5 na punkt) na każdą z odpowiednich dyskretnych wartości danych (padam każdy odpowiadający tej samej długości z zerami na końcu) i użyj każdej z tych wartości jako osobnego atrybutu dla samego punktu danych. Próbowałem użyć zarówno odległości Manhattanu, jak i odległości euklidesowej jako wskaźników opartych na tych atrybutach, zarówno w formacie PDF, jak i CDF.
Ponownie, ponieważ nie wiem, jakie rodzaje rozkładów posiadam, pomyślałem, że jeśli zamierzam zmierzyć odległość między ogólnymi rozkładami, mógłbym zastosować jakiś test nieparametryczny parami między rozkładami, taki jak test KS , aby znaleźć prawdopodobieństwo wygenerowania danych dystrybucji przez różne pliki PDF. Pomyślałem, że moją pierwszą opcją (powyżej) użycie odległości na Manhattanie byłoby swego rodzaju górną granicą tego, co mogę uzyskać stosując to podejście (ponieważ statystyki KS to maksymalna wartość bezwzględna różnicy CDF, gdzie odległość na Manhattanie to suma wartości bezwzględnych różnic w plikach PDF). Następnie rozważyłem połączenie różnych statystyk KS lub wartości P w każdym punkcie danych, prawdopodobnie używając odległości euklidesowej, ale być może po prostu biorąc maksimum wszystkich tych wartości.
Wreszcie, starając się wykorzystać to, co niewiele mogę zinterpretować na temat kształtu rozkładów, pomyślałem, że mogę spróbować oszacować parametry rozkładów jako pasujące do krzywej Weibulla. Mógłbym następnie grupować rozkłady na podstawie różnic w dwóch parametrach rozkładu Weibulla, lambda i k (skala i kształt), prawdopodobnie znormalizowanych zgodnie z wariancją tych parametrów lub coś w tym rodzaju. To jedyny przypadek, w którym pomyślałem, że mogę mieć pomysł na znormalizowanie parametrów.
Moje pytanie brzmi: jaki środek / metody poleciłbyś do grupowania dystrybucji? Czy z którymkolwiek z nich jestem na dobrej drodze? Czy K-Means jest nawet dobrym algorytmem?
Edycja: Wyjaśnienie danych.
Każdy punkt danych (każdy obiekt, Obj
który chcę klastrować) faktycznie dosłownie zawiera 5 vectors
dane. Wiem, że mogą istnieć dokładnie 5 faz. W celu uproszczenia powiemy (dla uproszczenia), że każdy wektor jest length N
.
Każdy z tych wektorów (nazwać vector i
) jest rozkład prawdopodobieństwa z całkowitą x-values
od 1 do N, przy czym każdy odpowiada wartość y oznacza prawdopodobieństwo pomiaru value x
w phase i
obiektu Obj
. N jest wtedy maksymalną wartością x, której spodziewam się zmierzyć w dowolnej fazie obiektu (w rzeczywistości nie jest to stała liczba).
Te prawdopodobieństwa określam w następujący sposób:
Biorę jeden
Obj
i umieścić go wphase i
zak trials
, biorąc pomiar przy każdej próbie. Każdy pomiar jest pojedynczą liczbą całkowitą. Robię to dla każdej z 5 faz jednego obiektu, a z kolei dla każdego obiektu. Moje surowe dane pomiarowe dla pojedynczego obiektu mogą wyglądać następująco:Wektor 1. [90, 42, 30, 9, 3, 4, 0, 1, 0, 0, 1]
Wektor 2. [150, 16, 5, 0, 1, 0, 0, 0, 0, 0, 0]
...
Wektor 5. [16, ... ..., 0]
Następnie normalizuję każdy z wektorów w odniesieniu do całkowitej liczby pomiarów w danym wektorze. To daje mi rozkład prawdopodobieństwa w tym wektorze, gdzie każdy odpowiada y-wartość reprezentuje prawdopodobieństwo pomiaru
value x
wphase i
.