Clustern durch Populationen

Clustern mit Neuro, Fuzzy, Statistik, .... Man kann es auch anders probieren: Stellen Sie sich vor, jeder Prototyp eines überwachten Clusterings ist ein Individuum einer Population. Und GA-mäßig wird die Population jetzt geändert bis befriedigende Ergebnisse herauskommen. Unterschied zu GAs ist, daß wir nicht an einem einzelnen Individuum interessiert sind, sondern die finale Population als ganze ein befriedigendes Clustering erzeugen soll.

Man muß also einzelnen Individuen eine geeignete Fitness zuordnen, die auch für die Gesamtklassifikation nützlich scheint. Außerdem muß sichergestellt werden, daß es keine wirklich doppelten Prototypen gibt und alle Daten und alle gewünschten Klassen auch vertreten sind.

Fitness/Selektion: Ein Prototyp ist gut, wenn er viele Daten im Einzugsbereich hat, die zur richtigen Klasse gehören, aber nur wenige falsche. Darf er sich bevorzugt reduplizieren, ohne daß zwei Prototypen an der Stelle besser als nur einer wären, dann muß er auch die Güte mit den anderen teilen. Verdrängt er andere Klassen, bekommt er deren falsche Daten angehängt. Das beschränkt ein unkontrolliertes Reduplizieren.

Mutation/Crossover: Wenn ein Prototyp mehr Daten von einer anderen Klasse in der Nähe hat, als er selbst vertritt, solte er seine Klasse mutieren. Man kann Prototypen ein Stück (zielgerichtet?) versetzen, in falschen Punkten neue ansiedeln, nahe Prototypen verschmelzen, ...

Es ist vielversprechender, das ganze als sog. evolutionären Algortihmus als als wirklichen GA zu implementieren. D.h. man schafft jeweils mehr Individuen und sucht daraus die besten aus. Die Selektion sollte evtl. auch globalen Kriterien unterliegen, z.B. kann man darauf achten, daß jede Klasse noch vertreten ist.

>>> Implementieren Sie einen Clusteringalgorithmus (überwacht ist da einfacher), der durch Populationsdynamiken zu einem schönen Clustering findet.


back