Kurs:Maschinelles Lernen/k-Means Algorithmus

Aus testwiki
Zur Navigation springen Zur Suche springen

Vorherige Seite: K4 - Neuronale Netze trainieren
Nächste Seite: K5 - DBSCAN

Intuition

Wenn die Eingabedaten xd in Clustern vorliegen, dann kann man sich dies in Form von "Datenwolken" vorstellen, die in einem d-Dimensionalen Raum vorliegen. Eine solche Datenwolke/Cluster verfügt über einen Mittelpunkt. Ein Datenpunkt kann dann der Datenwolke zugeordnet werden, deren Mittelpunkt er am nächsten liegt.

Mathematische Formulierung

Das Risiko, das in diesem Fall zu minimieren ist, muss mit dem Abstand der Datenpunkten zu den Sphärenmittelpunkten zusammenhängen.

Clusteranzahl

Es wird davon ausgegangen, dass es k Cluster gibt. Diese Anzahl wird nicht vom Algorithmus bestimmt, sondern muss zuvor gewählt werden, es handelt sich hierbei also um einen Hyperparameter.

Fehlerfunktion

Die Entfernung von Datenpunkten zu den Clustermittelpunkten kann man dabei als Fehler auffassen. Werden die Cluster mit Ca und ihre Mittelpunkte durch ca mit a{1,,k} beschrieben, so kann für das Risiko der Ansatz

R^=a=1kxiCaxica2

gemacht werden.

Suche nach einem minimalen Fehler

Wird hierfür das Minimum bzgl. der ca gesucht, also gefordert, dass der Gradient von R^ verschwindet, so kann die Bedingung

ca=1|Ca|xiCaxi

gefunden werden. Das bedeutet, dass die Mittelpunkte eines Clusters bei bekannter Clusterzugehörigkeit durch diese Formel bestimmt werden müssen. Dabei soll |Ca| die Anzahl der Datenpunkte im Cluster beschreiben.

Der Algorithmus

Im Jahr 1957 erarbeitete Stuart Lloyd den folgenden Algorithmus, der 1982 veröffentlicht wurde:

  1. Die Mittelpunkte ca der Cluster k werden initialister. (Zum Beispiel zufällig oder durch geschicktes Schätzen)
  2. Für jedes xi des vorliegenden Datensatzes D wird der nächstgelegene Mittelpunkt ca gefunden und der Datenpunkt dem entsprechenden Cluster Ca hinzugefügt
  3. Es werden nach der obigen Formel die neuen Mittelpunkte der Cluster bestimmt.
  4. Wenn sich das Risiko (oder die ca nicht mehr "maßgeblich" verändern, wird der ALgorithmus beendet, ansonsten wird zurück zu Punkt 2 gesprungen.

Da der Algorithmus die Mittelwerte (engl. means) von k Clustern findet, wird er als k-Means-Algorithmus bezeichnet.

Diskussion

Der Algorithmus wird zwar auf ein lokales Minimum führen, hat aber verschiedene Probleme

  • Die Cluster die gefunden werden, sind abhängig von der Wahl von k. Dieses Problem kann umgangen werden, wenn der Algorithmus mit verschiedenen Werten von k initialisiert wird und jenes Cluster verwendet wird, dass das geringste Risiko aufweist.
  • Die gefundenen Cluster sind davon abhängig, welche Startwerte für die ca gewählt wurden. Dieses Problem kann ebenfalls durch eine mehrfache Initialisierung umgangen werden. Es wird auch hier jene Konfiguration mit dem geringsten Risiko bevorzugt.
  • Eine der Grundannahmen für den Algorithmus sind kugelförmige Cluster. Diese Annahme ist aber nicht immer gerechtfertigt, weshalb sich für das menschliche Auge offensichtliche Fehlklassifikationen ergeben können. Dementsprechend ist die Rechtfertigung dieser Annahme zu rechtfertigen, oder die Klassenzugeörigkeit aufzuweichen, wie es im folgenden Abschnitt erklärt wird.

Fuzzy-k-Means

Statt einer festen Zugehörigkeit zu einem Cluster können stattdessen Wahrscheinlichkeiten gesucht werden, dass der Datenpunkt xi zum Cluster Ca gehört. Diese Wahrscheinlichkeit wird mit wai bezeichnet. Da der Datenpunkt im Datensatz vorkommt, müssen sich die Wahrscheinlichkeiten für einen Datenpunkt über alle Cluster zu Eins summieren, so dass

a=1kwai=1

gilt. Falls ein Datenpunkt nun zu mehr als zu einem Cluster zugeordnet wird, wird der Ausdruck

a=1kwaib

mit einem b>1 einen Wert kleiner als Eins annehmen. Damit wird die neue Risikofunktion

R^=a=1ki=1Nwaib|xica|2

eingeführt. Die Größe b ist dabei ein neuer Hyperparameter. Für b=1 reduiziert sich dieses Riskio auf das im Fall des k-Means-Algorithmus. Für b geht das Risiko unabhängig der Wahl der Wahrscheinlichkeiten und Mittelpunkte gegen Null, und es werden keine Unterscheidungen der Cluster mehr möglich sein. Das bedeutet, je größer b ist, desto verschwommener (engl. fuzzy) werden die Grenzen zwischen den Clustern. Daher wird b als Fuzziness und der Algorithmus als Fuzzy-k-Means-Algorithmus bezeichnet. Eine typische Wahl für b ist b=2.

Es lässt sich zeigen, dass in diesem Fall die Mittelpunkte der Cluster durch

ca=i=1Nwaibxii=1Nwaib

bestimmt werden können.

Um die Wahrscheinlichkeiten zu finden, muss das Risiko unter der Nebenbedingung

a=1kwai=1

minimiert werden. Zu diesem Zweck kann die Lagrange-Funktion

L(wai,αi)=a=1ki=1Nwaib|xica|2i=1Nαi(a=1kwai1)

mit den Lagrange-Multiplikatoren αi betrachtet werden. Aus einer Minimierung und dem Ausnutzen der Nebenbedingungen kann für die Lagrange-Multiplikatoren der Zusammenhang

(αib)1b1=1a=1k1|xica|2/(b1)

gefunden werden. Und damit zeigt sich, dass sich die Gewichte durch

wai=(1|xica|)2b1a=1k(1|xica|)2b1=1a=1k(|xica||xica|)2b1

bestimmen lassen.