2017-01-24 3 views
0

Ich teste die Maschinen lernen-Tools in Vertica. Ich verstehe, wie die KMEANS funktioniert, da es nur die Daten in Cluster teilt. Allerdings verstehe ich nicht, wie die APPLY_KMEANS auf neue Daten funktioniert. Es sieht für mich so aus, als ob es mehr wie eine Klassifizierungsmethode agiert. Da es neue Daten in den vorhandenen Clustern klassifiziert. Also welcher Algorithmus wird verwendet (K nächster Nachbar)? Es ist nicht sehr klar aus der Dokumentation.Wie funktioniert APPLY_KMEANS in Vertica

Antwort

1

k -Mittel ist ein clustering Algorithmus (nicht Einstufung!), Dass iteriert über 2 Stufen:

  • assignement Schritt: Assign jeder Punkt ein Zentroid
  • Aktualisierungsschritt: Aktualisiere Zentroide Koordinaten

Wenn du dein k-me baust ans Modell, initialisieren Sie zuerst Zentroide (andere Strategie, kann zufällige Initialisierung sein), dann iterieren Sie, bis Ihr Clustering in Ordnung ist (Ihr Fehler liegt unter einem bestimmten Schwellenwert).

Was ist Ihr Modell definiert ist eigentlich Ihr Zentroide.

Wenn APPLY_KMEANS verwenden Sie einen Auftrag Schritt unter Verwendung von Daten aus der Abfrage und Zentroide von Ihrem Modell führen. Die Punkte werden dann Clustern zugewiesen, abhängig von ihrer Entfernung in Bezug auf die Zentroide.

Hope it pltrdy


Hinweis über Clustering vs Klassifizierung hilft:
Wir versucht sein kann zu glauben, dass Clustering eine Art Klassifizierung ist. Dennoch muss sich die Klassifizierung nur auf supervised learning beziehen, während die Clusterbildung entspricht. So tun es nicht :)

+0

Die Art und Weise Sie es ausdrückte, scheint es, dass die APPLY_KMEANS eine Klassifizierung, da es nur die Zuordnung Schritt zu tun. Also ist K-means grundsätzlich das Training in Bezug auf APPLY_KMEANS. Wenn K-Means alleine verwendet wird, handelt es sich um einen unüberwachten Clustering-Algorithmus. Wenn APPLY_KMEANS mit neuen Daten verwendet wird, ändern sich die Koordinaten des Schwerpunkts nicht, ist das korrekt? Was würde es zu einem Klassifikationsalgorithmus machen, nein? – valenzio

+0

Es macht Sinn. k-means ist ein Clustering-Algorithmus, kein Klassifikations-Algorithmus. Dennoch ist "apply kmeans" ein anderer Algorithmus, der k-means Modellschwerpunkte verwendet, um Daten zu klassifizieren. Somit kann als ein multilabel Klassifikationsalgorithmus angesehen werden. Ich sage immer noch "kann gesehen werden", weil ich das mehrdeutig finde, so dass es nicht als "apply kmeans = classification" erscheinen sollte, da es irreführend wäre. Aber du hast verstanden. – pltrdy