Lassen Sie mich Ihnen ein Beispiel für eine hypothetische Online-Clustering-Anwendung zeigen:
Zum Zeitpunkt n sind die Punkte 1,2,3,4 dem blauen Cluster A und die Punkte b, 5,6,7 dem roten Cluster B zugeordnet.
Zum Zeitpunkt n + 1 wird ein neuer Punkt a eingeführt, der dem blauen Cluster A zugewiesen wird, aber auch bewirkt, dass der Punkt b auch dem blauen Cluster A zugewiesen wird.
In den Endpunkten 1,2,3,4 gehören a, b zu A und die Punkte 5,6,7 zu B. Dies erscheint mir vernünftig.
Was auf den ersten Blick einfach erscheint, ist tatsächlich etwas schwierig - Bezeichner über Zeitschritte hinweg zu pflegen. Lassen Sie mich versuchen, diesen Punkt anhand eines grenzwertigeren Beispiels zu verdeutlichen:
Der grüne Punkt führt dazu, dass zwei blaue und zwei rote Punkte zu einem Cluster zusammengeführt werden, für den ich mich willkürlich entschieden habe, blau zu färben - das ist bereits mein menschliches heuristisches Denken bei der Arbeit!
Ein Computer, der diese Entscheidung trifft, muss Regeln verwenden. Wenn beispielsweise Punkte zu einem Cluster zusammengeführt werden, wird die Identität des Clusters von der Mehrheit bestimmt. In diesem Fall würden wir vor einem Unentschieden stehen - sowohl Blau als auch Rot könnten gültige Optionen für den neuen (hier blau gefärbten) Cluster sein.
Stellen Sie sich einen fünften roten Punkt in der Nähe des grünen vor. Dann wäre die Mehrheit rot (3 rot gegen 2 blau), also wäre Rot eine gute Wahl für den neuen Cluster - aber dies würde der noch klareren Wahl von Rot für den Cluster ganz rechts widersprechen, da diese rot waren und wahrscheinlich so bleiben sollten .
Ich finde es faul, darüber nachzudenken. Letztendlich gibt es wohl keine perfekten Regeln dafür - eher Heuristiken, die einige Stabilitätskriterien optimieren.
Dies führt schließlich zu meinen Fragen:
- Hat dieses "Problem" einen Namen, auf den verwiesen werden kann?
- Gibt es "Standard" -Lösungen dafür und ...
- ... gibt es dafür vielleicht sogar ein R-Paket?
Angemessene Vererbung von Clusteridentitäten beim repetitiven Clustering
quelle
Antworten:
Stabilitäts-Plastizitäts-Dilemma, Lernraten und Vergessensalgorithmen:
Lassen Sie mich zunächst sagen, dass dies eine wirklich gute Frage ist und die Art von zum Nachdenken anregendem Material ist, das das Verständnis der ML-Algorithmen wirklich verbessert.
Dies wird allgemein als "Stabilität" bezeichnet. Was lustig ist, ist, dass Stabilität tatsächlich ein nützliches Konzept beim regulären Clustering ist, dh nicht online. Die "Stabilität" des Algorithmus wird häufig als Auswahlkriterium dafür gewählt, ob die richtige Anzahl von Clustern ausgewählt wurde. Insbesondere wird das von Ihnen beschriebene Problem der Online-Clusterstabilität als das bezeichnet
stability-plasticity dilemma
.Erstens lautet die Antwort auf das Gesamtbild, dass viele Online-Clustering-Algorithmen überraschend stabil sind, wenn sie mit einer großen Kohorte von Anfangsdaten gut trainiert wurden. Es ist jedoch immer noch ein Problem, wenn Sie die Clusteridentitäten von Punkten wirklich festnageln möchten, während der Algorithmus auf neue Daten reagieren kann. Die Schwierigkeit Ihres Punktes wird in der Einführung in das maschinelle Lernen von Ethem Alpaydin kurz angesprochen . Auf Seite 319 leitet er den Online-k-means-Algorithmus durch Anwendung des stochastischen Gradientenabfalls ab, erwähnt jedoch, dass dies
stability-plasticity dilemma
bei der Auswahl eines Werts für die Lernrate auftritt. Eine kleine Lernrate führt zu Stabilität, aber das System verliert die Anpassungsfähigkeit, während eine größere Lernrate die Anpassungsfähigkeit gewinnt, aber die Clusterstabilität verliert.Ich glaube, der beste Weg nach vorne besteht darin, eine Implementierung von Online-Clustering zu wählen, mit der Sie den stochastischen Gradientenabstiegsalgorithmus steuern und dann die Lernrate auswählen können, um die Stabilität und Anpassungsfähigkeit so gut wie möglich mithilfe eines soliden Kreuzvalidierungsverfahrens zu maximieren.
Eine andere Methode, die ich angewendet habe, ist eine Art Vergessensalgorithmus, z. B. das Vergessen älterer Punkte, wenn der Datenstrom reift. Dies ermöglicht ein ziemlich stabiles System auf schnellen Zeitskalen und eine Evolution auf langsameren Zeitskalen.
Adaptive Resonance Theory
wurde erstellt, um zu versuchen, das zu lösenstability-plasticity dilemma
. Vielleicht finden Sie diesen Artikel interessant.Ich bin mit R nicht gut genug vertraut, um einen Algorithmus vorzuschlagen, aber ich schlage vor, Sie suchen nach einem
mini-batch k-means
Algorithmus, mit dem Sie die Lernrate in seinem stochastischen Gradientenabstiegsalgorithmus steuern können.Ich hoffe das hilft!
quelle