Ich versuche, den Canopy-Clustering-Algorithmus zusammen mit K-Means zu implementieren. Ich habe online einige Suchen durchgeführt, die sagen, Canopy-Clustering zu verwenden, um Ihre anfänglichen Startpunkte in K-means zu erhalten, das Problem ist, in Canopy-Clustering müssen Sie 2 Schwellenwerte für den Baldachin angeben: T1 und T2, wo Punkte in der inneren Schwelle sind stark mit dieser Überdachung verbunden und die Punkte in der breiteren Schwelle sind weniger mit dieser Überdachung verbunden. Wie werden diese Schwellenwerte oder Entfernungen von der Kronenmitte bestimmt?
Problemkontext:
Das Problem, das ich zu lösen versuche, ist, ich habe eine Reihe von Zahlen wie [1,30] oder [1,250] mit einer Satzgröße von etwa 50. Es kann doppelte Elemente geben und sie können Fließkommazahlen sein Nun, wie 8, 17.5, 17.5, 23, 66, ... Ich möchte die optimalen Cluster oder Teilmengen der Menge von Zahlen finden.
Wenn also Canopy-Clustering mit K-means eine gute Wahl ist, dann bleiben meine Fragen: Wie finden Sie die T1-, T2-Werte ?. Wenn das keine gute Wahl ist, gibt es einen besseren, einfacheren aber effektiven Algorithmus?
Vielleicht naiv, ich sehe das Problem in Form einer Art Spektralschätzung. Angenommen, ich habe 10 Vektoren. Ich kann die Abstände zwischen allen Paaren berechnen. In diesem Fall würde ich 45 solche Entfernungen bekommen. Zeichnen Sie sie als Histogramm in verschiedenen Entfernungsbereichen auf. Z.B. 10 Abstände sind zwischen 0,1 und 0,2, 5 zwischen 0,2 und 0,3 usw. und Sie erhalten eine Vorstellung davon, wie die Abstände zwischen den Vektoren verteilt sind. Aus diesen Informationen können Sie T1 und T2 auswählen (z. B. wählen Sie sie, so dass Sie den am dichtesten besetzten Entfernungsbereich abdecken).
Natürlich ist das für einen großen Datensatz nicht praktikabel - aber Sie könnten einfach eine zufällige Stichprobe oder etwas so nehmen, dass Sie wenigstens den Ballpark von T1 und T2 kennen. Mit etwas wie Hadoop können Sie eine vorhergehende Spektralschätzung an einer großen Anzahl von Punkten vornehmen. Wenn alle eingehenden Daten, die Sie zu clustern versuchen, auf die gleiche Weise verteilt werden, müssen Sie T1 und T2 nur einmal erhalten und sie dann als Konstanten für alle zukünftigen Läufe fixieren.
Tatsächlich ist das das große Problem mit Canopy Clustering. Die Auswahl der Schwellenwerte ist ziemlich genau so schwierig wie der tatsächliche Algorithmus. Insbesondere in hohen Dimensionen. Für einen geografischen 2D-Datensatz kann ein Domänenexperte die Entfernungsschwellenwerte leicht definieren. Aber in hochdimensionalen Daten ist es wahrscheinlich das Beste, wenn Sie zuerst k-means für eine Stichprobe Ihrer Daten ausführen und dann die Abstände auf der Grundlage dieses Stichprobenlaufs auswählen.
Tags und Links cluster-analysis subset k-means