Ich habe einige Datenpunkte, die jeweils 5 Vektoren agglomerierter diskreter Ergebnisse enthalten, wobei die Ergebnisse jedes Vektors durch eine andere Verteilung generiert werden (die spezifische Art, von der ich nicht sicher bin, ist Weibull, wobei der Formparameter etwa exponentiell zur Potenz variiert) Gesetz (1 bis 0, ungefähr).)
Ich versuche, einen Clustering-Algorithmus wie K-Means zu verwenden, um jeden Datenpunkt anhand der Attribute seiner 5-Komponenten-Verteilungen in Gruppen einzuteilen. Ich habe mich gefragt, ob es etablierte Entfernungsmetriken gibt, die für diese Zwecke elegant sind. Bisher hatte ich drei Ideen, aber ich bin kein erfahrener Statistiker (eher ein beginnender Data-Mining-Informatiker), daher habe ich keine Ahnung, wie weit ich von der Strecke abweiche.
Da ich nicht genau weiß, mit welcher Art von Verteilungen ich es zu tun habe, bestand mein brachialer Ansatz für das Problem darin, jede der Verteilungen (ich habe 5 pro Punkt) in ihre jeweiligen diskreten Datenwerte zu zerlegen (I pad) jeweils gleich lang und mit Nullen am Ende) und verwenden Sie jeden dieser Werte als separates Attribut für den Datenpunkt selbst. Ich habe versucht, sowohl die Manhattan-Entfernung als auch die euklidische Entfernung als Metriken basierend auf diesen Attributen für PDF und CDF zu verwenden.
Da ich nicht weiß, welche Arten von Verteilungen ich habe, habe ich mir gedacht, dass ich, wenn ich den Abstand zwischen den Gesamtverteilungen messen würde, einen nicht-parametrischen Test paarweise zwischen Verteilungen verwenden könnte, wie z. B. den KS-Test , um die Wahrscheinlichkeit zu ermitteln, dass die angegebenen Distributionen von verschiedenen PDFs generiert wurden. Ich dachte, dass meine erste Option (oben), die Manhattan-Entfernung zu verwenden, eine Art Obergrenze für das wäre, was ich mit diesem Ansatz erhalten könnte (da die KS-Statistik der maximale Absolutwert der Differenz der CDFs ist, wobei Manhattan-Entfernung die ist Summe der absoluten Werte der Differenzen in den PDFs). Ich überlegte dann, die verschiedenen KS-Statistik- oder P-Werte innerhalb jedes Datenpunkts zu kombinieren, wobei wahrscheinlich der euklidische Abstand verwendet wurde, aber möglicherweise nur das Maximum aller dieser Werte genommen wurde.
Um zu versuchen, das Wenige zu verwenden, das ich über die Form der Verteilungen interpretieren kann, dachte ich, ich könnte versuchen, die Parameter der Verteilungen als in eine Weibull-Kurve einpassend zu schätzen. Ich könnte dann die Verteilungen auf der Grundlage von Unterschieden in den beiden Parametern der Weibull-Verteilung, Lambda und k (Skala und Form), gruppieren, die wahrscheinlich gemäß der Varianz dieser Parameter oder einer Art normalisiert sind. Dies ist der einzige Fall, in dem ich dachte, ich könnte eine Idee haben, wie man die Parameter normalisiert.
Meine Frage ist also, welche Maßnahme / Methoden würden Sie für das Clustering von Verteilungen empfehlen? Bin ich überhaupt auf dem richtigen Weg? Ist K-Means überhaupt ein guter Algorithmus?
Edit: Klärung von Daten.
Jeder Datenpunkt (jedes Objekt Obj
, das ich gruppieren möchte) enthält tatsächlich buchstäblich 5 vectors
Daten. Ich weiß, dass es genau 5 Phasen gibt, in denen sich diese Objekte befinden können. Wir werden (zur Vereinfachung) sagen, dass jeder Vektor von ist length N
.
Jeder dieser Vektoren (es nennt vector i
) eine Wahrscheinlichkeitsverteilung mit ganzer Zahl x-values
von 1 bis N, wobei jeder entsprechenden y-Wert , der die Wahrscheinlichkeit der Messung darstellt , value x
in phase i
der das Objekts Obj
. N ist dann der maximale x-Wert, den ich in einer beliebigen Phase des Objekts zu messen erwarte (dies ist in meiner Analyse eigentlich keine feste Zahl).
Ich bestimme diese Wahrscheinlichkeiten auf folgende Weise:
Ich nehme einen einzigen
Obj
und steckte es inphase i
fürk trials
eine Messung bei jedem Versuch nehmen. Jede Messung ist eine ganze Zahl. Ich mache dies für jede von 5 Phasen eines einzelnen Objekts und wiederum für jedes Objekt. Meine Rohmessdaten für ein einzelnes Objekt könnten folgendermaßen aussehen:Vektor 1. [90, 42, 30, 9, 3, 4, 0, 1, 0, 0, 1]
Vektor 2. [150, 16, 5, 0, 1, 0, 0, 0, 0, 0, 0]
...
Vektor 5. [16, ... ..., 0]
Dann normalisiere ich jeden der Vektoren für sich in Bezug auf die Gesamtzahl der Messungen in diesem gegebenen Vektor. Dies gibt mir eine Wahrscheinlichkeitsverteilung in diesem Vektor, wobei jeder entsprechende y-Wert die Wahrscheinlichkeit des Messens
value x
in darstelltphase i
.
quelle
Antworten:
(Computer-) Informationsgeometrie ist ein Feld, das genau diese Art von Problemen behandelt. K-means hat eine Erweiterung namens Bregman k-means, die Divergenzen verwendet (deren euklidisches Quadrat vom Standard-K-means ein besonderer Fall ist, aber auch Kullback-Leibler). Eine gegebene Divergenz ist mit einer Verteilung verbunden, z. B. euklidisch nach Gauß.
Sie können auch einen Blick auf die Arbeit von haben Frank Nielsen , zum Beispiel
Sie können auch einen Blick darauf werfen Wasserstein-Entfernungen (optimaler Transport) , die in einem früheren Beitrag als Erdbewegungsentfernung bezeichnet wurden.
quelle
In ihrem Aufsatz über den EP-Means-Algorithmus setzen sich Henderson et al. Mit diesem Problem auseinander und geben ihre eigenen Ansätze an. Sie erwägen:
Eine andere Technik, die ich mit Erfolg angewendet habe, besteht darin, alle beobachteten Punkte aus allen Verteilungen einzeln zu gruppieren und dann der Verteilung i die weiche Wahrscheinlichkeit zuzuweisen, die dem Anteil ihrer Punkte entspricht, die in jedem Cluster enden. Auf der anderen Seite ist es viel schwieriger, Distributionen auf diese Weise zu trennen. Positiv ist zu vermerken, dass alle Distributionen gleich sind. Ich würde es jedoch nur verwenden, wenn diese Regularisierungseigenschaft gewünscht wird.
quelle
$i$
$l_2$
Sie sollten in zwei Schritten fortfahren. (1) Datenreduktion und (2) Clustering.
Für Schritt (1) sollten Sie Ihre Daten sorgfältig untersuchen und eine angemessene Wahrscheinlichkeitsverteilung für Ihre Daten ermitteln. Sie scheinen bereits über diesen Schritt nachgedacht zu haben. Der nächste Schritt besteht darin, die Parameter dieser Verteilungen abzuschätzen. Sie können ein Modell für jede zu gruppierende Einheit separat anpassen oder ein komplexeres Modell verwenden, z. B. ein verallgemeinertes lineares Mischmodell.
Für Schritt (2) können Sie dann Cluster basierend auf diesen Parameterschätzungen erstellen. Zu diesem Zeitpunkt sollten Sie eine kleine Anzahl von Parameterschätzungen pro Einheit haben. Wie in der Antwort auf diesen Beitrag beschrieben , können Sie diese Parameterschätzungen in Gruppen zusammenfassen.
Diese Antwort ist notwendigerweise etwas vage - es gibt hier keine "vorgefertigte" Lösung, und für jeden Schritt ist eine Menge statistischer Erkenntnisse erforderlich, um aus einer nahezu unendlichen Anzahl von Methoden auszuwählen, die je nach Ihrem spezifischen Problem relevant sein können. Die Aussage Ihrer Frage zeigt, dass Sie sich selbst eine Menge statistisches Wissen angeeignet haben, was zu loben ist, aber Sie immer noch einige grundlegende Missverständnisse der statistischen Kernkonzepte haben, wie die Unterscheidung zwischen einer Wahrscheinlichkeitsverteilung und Beobachtungen aus einer Wahrscheinlichkeitsverteilung . Erwägen Sie, ein oder zwei Kurse zur mathematischen Statistik zu belegen.
quelle