Frage

Ich versuche, einige Bilder in Abhängigkeit von den Winkeln zwischen Körperteilen clustern.

Die Funktionen von jedem Bild extrahiert sind:

angle1 : torso - torso
angle2 : torso - upper left arm
..
angle10: torso - lower right foot

Daher werden die Eingangsdaten ist eine Matrix der Größe 1057x10, wo 1057 steht für die Anzahl der Bilder, und 10 steht für Winkel von Körperteilen mit Torso. Ebenso ein testSet ist 821x10 Matrix.

Ich möchte alle Zeilen in den Eingabedaten mit 88 Clustern geclustert werden. Dann werde ich diese Cluster verwenden, um herauszufinden, welche Cluster nicht in Testdata fallen?

In einer früheren Arbeit, habe ich K-Means Clustern, die sehr einfach ist, . Wir bitten nur K-Means die Daten in 88 Cluster gruppieren. Und implementieren eine andere Methode, die die Distanz zwischen jeder Zeile in Testdaten und den Zentren jedes Clusters, dann wählen die kleinsten Werte berechnet. Dies ist der Cluster der entsprechenden Eingangsdatenzeile.

Ich habe zwei Fragen:

  1. Ist es möglich, dies mit SOM in MATLAB zu tun? AFAIK SOM die sind für die visuelle Clustering. Aber ich brauche die tatsächliche Klasse der einzelnen Cluster wissen, damit ich später meine Testdaten durch Berechnung Etikett, das Cluster sie gehört.

  2. Haben Sie eine bessere Lösung?

War es hilfreich?

Lösung

Selbstorganisierende Karte (SOM) ein Clustering-Verfahren als nicht überwachte Variation betrachtet ist der Artificial Neural Network (ANN) . Es nutzt Wettbewerb Lernen Techniken, um das Netzwerk zu trainieren (Knoten untereinander konkurrieren zu einem bestimmten Datum, die die stärkste Aktivierung anzuzeigen)

www.lohninger.com/helpcsuite/kohonen_network _-_ background_information.htm

Sie können von SOM denken, als ob es aus einem Gitter von miteinander verbundenen Knoten besteht (quadratische Form, hexagonal, ..), wobei jeder Knoten einen N-dim Vektor der Gewichte (gleiche Dimension Größe wie die Datenpunkte, die wir wollen Cluster).

Die Idee ist einfach; ein Vektor als Eingabe für SOM gegeben, so finden wir den Knoten Schrank , um es, dann seine Gewichte und die Gewichte der benachbarten Knoten aktualisieren, so dass sie, dass der Eingangsvektor (daher der Name selbstorganisierende nähern ). Dieser Prozess wird für alle Eingangsdaten wiederholt.

plotsompos

Die Cluster durch implizit definiert gebildet werden, wie die sich Knoten organisieren und eine Gruppe von Knoten mit ähnlichen Gewichten bilden. Sie lassen sich leicht visuell zu erkennen.

plotsomnd

SOM sind in ähnlicher Weise wie der K-Means-Algorithmus aber anders, wir erlegen keine feste Anzahl von Clustern, stattdessen haben wir die Anzahl und Form der Knoten im Netz angeben, dass wir es auf unsere Daten anpassen möchten.

Im Grunde genommen, wenn Sie einen trainierten SOM haben, und Sie wollen einen neuen Test Eingangsvektor klassifizieren, ordnen Sie sie einfach auf den nächsten (Abstand als Ähnlichkeitsmaß) Knoten auf dem Gitter ( Best Matching-Einheit BMU), und gibt, wie die Vorhersage [Mehrheit] Klasse der Vektoren zu diesem Knoten gehören BMU.

plotsomhits

Für MATLAB, können Sie eine Reihe von Werkzeugkästen finden, die SOM implementieren:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top