Aus zwei mach' viel (binäre Methoden für mehr als zwei Klassen)

Angenommen, Sie kennen ein Verfahren, daß gut zwei Klassen voneinander unterscheiden kann, z.B. ein Strich in der Ebene (gegeben durch ein Perzeptron, LVQ mit zwei Prototypen, eine SVM, oder was Ihnen sonst so einfällt), und Sie möchten den Algorithmus, weil er so gut funktioniert, auch für die Klassifikation für mehr als zwei Klassen verwenden. Was tun Sie dann?

Eine übliche Möglichkeit ist, bei k Klassen k Klassifikatoren zu trainieren, wobei jeder je eine Klasse vom Rest unterscheidet. Sind die alle korrekt, kann man leicht den interessanten Klassifikator daraus bekommen.

Aber: häufig sind sie eben nicht korrekt - was dann? Zudem kann das Problem, eine Klasse vom Rest zu trennen, extrem schwierig sein, weil die Daten so komisch liegen. Nun, es besteht keine Notwendigkeit, immer eine Klasse vom Rest zu trennen. Man könnte z.B. bei 4 Klassen jede 4 beliebigen unterschiedlichen Zusammenlegungen der 4 Klassen in nur 2 trainieren und aus den Ergebnissen die Originalklassen restaurieren. Alternativ kann man auch die Klassifikation in 4 Klassen durch nur zwei binäre Zahlen codieren! Benötigt also nur zwei binäre Klassifikatoren. Man kann auch mehr als 4 Versuche spendieren, um größere Fehlertoleranz zu erhalten.

>>> Implementieren Sie einen einfachen Klassifikator für binäre Klassifikationen. Testen Sie verschiedene Codes für mehr als 2 Klassen, die Ihnen sinnvoll erscheinen. Sie können dabei einen für das Problem optimalen und fehlertoleranten Code z.B. mit GAs lernen lassen. Populationen bestünden aus möglichen Codes, die Evaluation der Individuen wäre je etwas aufwendiger: Ein Training des binären Klassifikators auf diesen Code und Evaluation der Anzahl richtig klassifizierter Daten.


back