Wie bestimme ich algorithmisch die Werte von T1 und T2 für das Canopy-Clustering?

8

Ich versuche, Canopy-Clustering zu verwenden, um erste Cluster für KMeans in Mahout bereitzustellen.

Gibt es eine Möglichkeit, die Werte der Abstandsschwellen T1 & T2 algorithmisch zu bestimmen / zu approximieren? Im Moment habe ich T1 = 100 und T2 = 1, was anscheinend nichts Gutes bringt.

Rohan Monga
quelle
Diese Referenz deutet vage an, dass T1 und T2 mit "Kreuzvalidierung" eingestellt werden können. Beachten Sie, dass diese Schwellenwerte stark von der Art der Metrik, der Dimension des Problems und sogar von der Verteilung der Daten abhängen.
whuber
Ich habe einen ziemlich großen Datensatz mit> 100K Dimensionen (ein paar Gigs). Gibt es eine Möglichkeit, die Verteilungs- / Stichprobenmethode abzuschätzen, die funktionieren würde?
Rohan Monga
Es hat also einige hundert k Dimensionen. Wie viele Zeilen? Ist es kontinuierlich oder kategorisch? Wie spärlich ist es? Warum gruppieren Sie sich darauf - was ist der Zweck? Haben Sie normale k-Mittel ausprobiert? Wenn Sie Ihre Dimensionalität nicht mögen - haben Sie sich mit Dimensionsreduktion oder variabler Wichtigkeit befasst?
EngrStudent

Antworten:

1

Wie Whuber bemerkt, schlagen die Autoren des Canopy-Clustering-Algorithmus vor, dass T1 und T2 mit Kreuzvalidierung eingestellt werden können. Diese Parameter können jedoch auf die gleiche Weise wie alle anderen Hyperparameter eingestellt werden. Eine der häufigsten Techniken ist die RastersucheHier wird für jeden Parameter ein Bereich angegeben sowie eine Schrittgröße für die Änderung der Parameter bei jeder Iteration. Angenommen, wir haben T1 mit einem Wertebereich von 25 bis 100 mit einer Schrittgröße von 25 angegeben. Dies würde bedeuten, dass die möglichen Werte für T1 (25, 50, 75, 100) wären. Ebenso könnten wir T2 so einstellen, dass mögliche Werte zwischen 1 und 4 mit einer Schrittgröße von 1 vorliegen, so dass die möglichen Werte (1,2,3,4) sind. Dies würde bedeuten, dass 16 mögliche Parametersätze ausprobiert werden müssen. Wie bei jedem anderen Klassifizierungs- oder Clustering-Algorithmus würden Sie seine Wirksamkeit bewerten, indem Sie den F1-Score, die Genauigkeit / den Fehler oder eine andere Leistungsmetrik berechnen, um den besten Satz der 16 Parametersätze zu ermitteln. Neben der Rastersuche umfassen andere Algorithmen zur Optimierung von Hyperparametern Nelder-Mead ,unter anderem genetische Algorithmen , simuliertes Tempern und Partikelschwarmoptimierung . Mithilfe dieser Algorithmen können Sie automatisiert geeignete Werte für T1 und T2 ermitteln.

Sie haben oben festgestellt, dass Sie einen 100K-dimensionalen Datensatz haben. Beziehen Sie sich auf die Anzahl der Zeilen oder die Anzahl der Spalten in Ihren Daten? Wenn Sie sich auf die Anzahl der Spalten beziehen, würde ich vorschlagen, eine Kombination aus Merkmalsauswahl basierend auf der Varianz einzelner Merkmale und Merkmalsextraktion über Hauptkomponentenanalyse (PCA) oder durchzuführen Kernel-PCA . Selbst wenn viele Ihrer Funktionen nützlich sind (dh einen Informationsgewinn für die Unterscheidung zwischen Clustern / Klassen / Ausgabevariablenwerten bieten), kann zu viele Funktionen dazu führen, dass Ihr Clustering-Algorithmus keine geeigneten Abstände zwischen Instanzen ermitteln kann.

Dirigo
quelle