Gibt es nicht entfernungsbasierte Clustering-Algorithmen?

14

Es scheint, dass für K-means und andere verwandte Algorithmen das Clustering auf der Berechnung des Abstands zwischen Punkten basiert. Gibt es eine, die ohne funktioniert?

user154510
quelle
2
Was genau würden Sie unter "Clustering" verstehen, ohne die Ähnlichkeit oder "Nähe" von Punkten zu quantifizieren?
whuber
2
@ Tims Antwort unten ist sehr gut. Möglicherweise möchten Sie eine Abstimmung in Betracht ziehen und / oder diese annehmen , wenn dies Ihnen geholfen hat. Es ist eine schöne Art, sich zu bedanken. Als Erweiterung seiner Idee gibt es eine latente Klassenanalyse , die einen ähnlichen Ansatz für kategoriale Daten anwendet. Ein nicht parametrischer Ansatz für FMMs kann über die Höhen einer multivariaten Schätzung der Kerneldichte verwendet werden. Weitere Informationen finden Sie unter Clustering über nichtparametrische Dichteschätzung: Das R-Paket pdfCluster ( pdf ).
gung - Wiedereinsetzung von Monica

Antworten:

25

Ein Beispiel für eine solche Methode sind Finite-Mixture-Modelle (z. B. hier oder hier ), die zum Clustering verwendet werden. In FMM betrachten Sie die Verteilung ( f ) Ihren Variable X als eine Mischung aus K - Verteilungen ( f1,...,fk ):

f(x,ϑ)=k=1Kπkfk(x,ϑk)

wobei ein Vektor der Parameter θ = ( π ' , θ ' 1 , . . . , θ ' k ) ' und π k ist ein Anteil der k -ten Verteilung in der Mischung und θ k ein Parameter ist (oder Parameter) der f k Verteilung.ϑϑ=(π,ϑ1,...,ϑk)πkkϑkfk

Ein spezieller Fall für diskrete Daten ist die Latent Class Analysis (z. B. hier ), definiert als:

P(x,k)=P(k)P(x|k)

wobei die Wahrscheinlichkeit ist, die latente Klasse k (dh π k ) zu beobachten, P ( x ) die Wahrscheinlichkeit ist, einen x- Wert zu beobachten, und P ( x | k ) die Wahrscheinlichkeit ist, dass x in der Klasse k ist .P(k)kπkP(x)xP(x|k)xk

Normalerweise wird sowohl für FMM als auch für LCA ein EM-Algorithmus für die Schätzung verwendet, aber der Bayes'sche Ansatz ist auch möglich, jedoch aufgrund von Problemen wie Modellidentifizierung und Etikettenwechsel etwas anspruchsvoller (z. B. Xi'ans Blog ).

Es gibt also kein Entfernungsmaß, sondern ein statistisches Modell, das die Struktur (Verteilung) Ihrer Daten definiert. Aus diesem Grund lautet der andere Name dieser Methode "modellbasiertes Clustering".

Überprüfen Sie die beiden Bücher über FMM:

Eines der beliebtesten Clustering-Pakete, das FMM verwendet, ist mclust(überprüfen Sie hier oder hier ), das in R implementiert ist . Es sind jedoch auch kompliziertere FMMs möglich. Überprüfen Sie beispielsweise das flexmixPaket und dessen Dokumentation . Für die Ökobilanz gibt es ein R poLCA-Paket .

Tim
quelle
Haben Sie ein gutes Gespür für die verschiedenen Anwendungsfälle?
Shadowtalker
Wie in "Wann sollte ich dies verwenden, anstatt beispielsweise um Medoids zu partitionieren?" Sehr schöne Antwort sowieso
shadowtalker
1
@caveman stellt fest, dass es sich nur um eine Notationskonvention handelt. Es ist ein Vektor von Vektoren, das ist alles.
Tim
1
@caveman gibt es unterschiedliche Verteilungen f 1 , . . . , f k , die in der Mischung sind, jede mit ihren eigenen Parametern (deshalb haben wir Vektoren von Parametern). k f1,...,fk
Tim
1
@caveman der typischste fall ist, dass du zB normalverteilungen hast , mit verschiedenen mitteln und sd's. Sie können sich jedoch unterscheiden, siehe Beispiel 3.1 in cran.r-project.org/web/packages/flexmix/vignettes/… , das die Mischung zweier verschiedener Regressionsmodelle zeigt. k
Tim
7

K-means ist nicht "wirklich" entfernungsbasiert. Es minimiert die Varianz . (Aber Varianz euklidischen Abstände im Quadrat, so dass jeder Punkt wird auf die nächste Schwerpunkt von euklidischen Abstand zugeordnet, auch).

Es gibt viele gitterbasierte Clustering-Ansätze . Sie berechnen keine Entfernungen, da dies häufig zu einer quadratischen Laufzeit führt. Stattdessen partitionieren sie die Daten und aggregieren sie in Rasterzellen. Aber die Intuition hinter solchen Ansätzen hängt gewöhnlich sehr eng mit Entfernungen zusammen.

Es gibt eine Reihe von Clustering-Algorithmen für kategoriale Daten wie COOLCAT und STUCCO. Entfernungen sind mit solchen Daten nicht einfach zu verwenden (One-Hot-Codierung ist ein Hack und ergibt keine besonders aussagekräftigen Entfernungen). Aber ich habe noch nie von jemandem gehört, der diese Algorithmen verwendet ...

Es gibt Clustering-Ansätze für Diagramme. Aber entweder reduzieren sie sich auf klassische Diagrammprobleme wie Clique- oder Near-Clique-Finding und Diagrammfärbung, oder sie hängen eng mit entfernungsbasiertem Clustering zusammen (wenn Sie ein gewichtetes Diagramm haben).

Dichte-basiertes Clustering wie DBSCAN hat einen anderen Namen und konzentriert sich nicht auf die Minimierung von Entfernungen. "Dichte" wird jedoch normalerweise in Bezug auf eine Entfernung angegeben, so dass diese Algorithmen technisch entweder entfernungsbasiert oder gitterbasiert sind.

Der wesentliche Teil Ihrer Frage, den Sie ausgelassen haben, ist, wie lauten Ihre Daten ?

Hat aufgehört - Anony-Mousse
quelle
1
+1: Ich weiß zu schätzen, dass Sie zeigen, wie ein Clustering-Algorithmus einen impliziten (möglicherweise) verallgemeinerten Sinn für "Distanz" oder "Ähnlichkeit" verwendet, und dass Sie dies tun, während Sie eine Übersicht über viele solcher Algorithmen anbieten.
whuber
Ich denke mit "entfernungsbasiert" meinte er Ähnlichkeitsmetriken, die Varianz einschließen würden.
en1
1
Warum ist Varianz eine Ähnlichkeitsmetrik? Es hängt mit der quadratischen euklidischen Entfernung zusammen. aber nicht gleichbedeutend mit beliebigem Abstand s .
Hat aufgehört - Anony-Mousse
2

Ein rein diskriminativer Ansatz ist die "regularisierte Informationsmaximierung" von Gomes et al . Es gibt keinerlei Vorstellung von Ähnlichkeit / Distanz.

Die Idee ist, ein logistisches Regressionsmodell zu haben, das Punkte in Behälter legt. Aber anstatt es zu trainieren, um eine Art von Log-Wahrscheinlichkeit der Klassenbeschriftungen zu maximieren, ist die Zielfunktion eine, die Punkte in verschiedene Cluster einordnet.

λ

Die Erweiterung auf Kernel-Methoden oder neuronale Netze für nichtlineares Clustering ist unkompliziert.

bayerj
quelle