Lösungen für die kontinuierliche Online-Clusteridentifikation?


11

Lassen Sie mich Ihnen ein Beispiel für eine hypothetische Online-Clustering-Anwendung zeigen:

Geben Sie hier die Bildbeschreibung ein

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:

Geben Sie hier die Bildbeschreibung ein

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:

  1. Hat dieses "Problem" einen Namen, auf den verwiesen werden kann?
  2. Gibt es "Standard" -Lösungen dafür und ...
  3. ... gibt es dafür vielleicht sogar ein R-Paket?

Angemessene Vererbung von Clusteridentitäten beim repetitiven Clustering



Ist das Problem, dass Sie versuchen, die Identität der Cluster bei jedem Zeitschritt so weit wie möglich aufrechtzuerhalten? Damit Sie bei N + 1 sagen können, wie sich ein Cluster verändert hat, weil es eine Beziehung zwischen Clustern bei N und denen bei N + 1 gibt? Und das Knifflige ist, was passiert, wenn Cluster geteilt und zusammengeführt werden?
Spacedman

@Spacedman: BINGO :) joyofdata.de/blog/…
Raffael

Ich lade Sie ein, sich dies und das
anzuschauen

Antworten:


1

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.

  1. Hat dieses "Problem" einen Namen, auf den verwiesen werden kann?

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.

  1. Gibt es "Standard" -Lösungen dafür und ...

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 dilemmabei 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 Theorywurde erstellt, um zu versuchen, das zu lösen stability-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-meansAlgorithmus, mit dem Sie die Lernrate in seinem stochastischen Gradientenabstiegsalgorithmus steuern können.

Ich hoffe das hilft!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.