Machine Learningverfahren zur Klassifizierung von Daten

Klassifizierungsverfahren teilen Objekten nach ihren Merkmalen mit Hilfe eines Klassifikators in vordefinierte Kategorien ein. Ein Klassifikator ist eine Funktion, die einen Input auf eine Klasse abbildet. Das Ziel besteht darin passende Regeln zu finden, wonach sich die Daten in die jeweiligen Klassen zuordnen lassen. Normalerweise geschieht dies im Machine Learning durch einen Supervised Learning Ansatz. In diesem Artikel stellen wir die gängigsten Machine Learning Verfahren zur Lösung von Klassifizierungsproblemen kurz vor.

 

Decision Trees

Decission Trees sind in ihrer einfachsten Form schlichte Entscheidungsbäume. Bei diesen geht man vom Wurzelknoten aus abwärts. Jeder Knoten fragt dabei ein Attribut ab. Anhand dieser Abfrage fällt die Entscheidung über den nachfolgenden Knoten, bis schließlich ein Blatt erreicht wird. Das erreichte Blatt ergibt den Klassifizierungsfall. Aus der Zusammensetzung mehrerer Decision Trees sind komplizierte Modelle wie die Boosted Trees, Gradient Boosting oder Random Forest entstanden.

 

Beispiel Decision Tree
Beispiel für einen Decision Tree

 

Bayes-Klassifikation

Der Bayes-Klassifikator ordnet Objekte der Klasse zu, zu der sie am wahrscheinlichsten gehört. Grundlage für die Berechnung der Wahrscheinlichkeit ist dabei eine Kostenfunktion. Diese stellt die Objekte als Vektoren dar, bei denen jede Eigenschaft auf eine Dimension abgebildet wird. Dabei ermittelt die Kostenfunktion die Wahrscheinlichkeit, dass eine einzelne Eigenschaft des Objekts zu einer Klasse gehört. Die einzelnen Eigenschaften werden dabei unabhängig voneinander betrachtet. Zuletzt wird das Objekt der Klasse zugeordnet, deren einzelnen Wahrscheinlichkeiten am ehesten einer Klasse entsprechen.

 

k-Nearest-Neighbors

 

Beispiel für eine kNN Klassifizierung
Beispiel für eine kNN Klassifizierung

Die k-Nearest-Neighbors Methode bestimmt die Zugehörigkeit eines Objekts zu einer Klasse unter der Berücksichtigung der k nächsten Nachbarn nach dem Mehrheitsprinzip. Das heißt, dass ein Objekt zu der Klasse hinzugefügt wird, welche in der Nachbarschaft am stärksten Vertreten ist. Um die Abstände zweier Objekte zu ermitteln verwendet man häufig den Euklidischen Abstand. Es gibt aber auch Alternativen, wie z.B. die Manhatten-Metrik, die unter Umständen besser funktionieren. Eine häufig verwendete Methode, um ein geeignetes k zu finden, ist, den Algorithmus mit verschiedenen Werten für k auszuführen und dann den geeignetsten Wert zu verwenden. Allgemein zu erwähnen ist, dass im Gegensatz zur Darstellung für dieses Verfahrens anstelle eines zwei-dimensionalen Raums auch ein multi-dimensionaler Raum verwendet werden kann.

 

Support Vector Machine

 

Beispiel Funktionsweise einer Support Vector Machine
Beispiel der Funktionsweise einer Support Vector Machine

Die Support Vector Machine stellt jedes Objekt als Vektor in einem n-dimensionalen Vektorraum dar. Dies ist wichtig, damit sich die Vektoren auch für nicht lineare Trainingsdaten durch eine Ebene trennen lassen. Um die verschiedenen Vektoren voneinander linear zu trennen, wählt man eine Hyperebene so, dass die Vektoren möglichst weit von dieser entfernt sind. Weitere Objekte werden dann in Abhängigkeit zu ihrer Position im Hyperraum klassifiziert. Im oben gezeigten Beispiel, werden die ursprünglichen zwei dimensionalen Vektoren in einen drei dimensionalen Raum abgebildet. Sofort ersichtlich lassen sich die Vektoren im zwei-dimensionalen Raum nicht linear trennen. Im Gegensatz dazu ist es im drei-dimensionalen Raum möglich, eine Ebene „e“ so zu legen, dass die beiden Mengen linear trennenbar sind.

 

Neuronale Netze

 

Beispiel neuronales Netz
Beispiel neuronales Netz

Mit neuronalen Netzen ist es möglich Objekte zu klassifizieren. Wenn genügend Trainingsdaten vorhanden sind, erreichen diese in der Regel zum Teil sehr gute Ergebnisse im Vergleich zu anderen Verfahren. Ein gutes Beispiel dafür ist die Objekterkennung in Bildern. Eben diese guten Ergebnisse sorgten für einen großen Hype um neuronale Netze. Der Blogeintrag zu neuronalen Netzen geht ausführlich auf dieses Verfahren ein.

 

Herausforderungen der Klassifizierung

Bei der Wahl des passenden Klassifikators muss man folgende Eigenschaften berücksichtigen:

 

Genauigkeit

Die Genauigkeit der Klassifizierung hängt von den verwendeten Regeln ab. Dabei muss man bedenken, dass die Genauigkeit auf den Trainingsdaten und auf den nicht trainierten Daten meist unterschiedlich ausfällt. So kann es durchaus sein, dass ein Machine Learning Modell, perfekte Ergebnisse für die Trainingsdaten erzeugt. Es kann aber sein, bei der Klassifizierung von neuen Daten nur eine schlechte Genauigkeit erzielt wird. Dabei bestimmt das Verhältnis der richtig klassifizierten Objekte die Genauigkeit des Modells.

 

Geschwindigkeit

Unter Umständen ist die Geschwindigkeit eines Klassifikators ein wichtiges Verwendungskriterium. So kann es sein, dass ein Klassifikator eine 90%ige Genauigkeit in einem hundertstel der Zeit erreicht, im Vergleich zu einem Klassifikator, der eine 95%ige Genauigkeit erreicht. So kann es sinnvoll sein auf Genauigkeit zu verzichten, wenn man dafür eine Verbesserung der Geschwindigkeit erreicht.

 

Erklärbarkeit

Es könnte wichtig sein, dass leicht nachzuvollziehen ist, wie ein Klassifikator zu seinem Ergebnis kommt. Vor allem, damit Menschen die mit dem Modell arbeiten, Vertrauen in dieses haben wie zum Beispiel bei wichtigen Unternehmensentscheidungen.

 

Anwendung

Die Klassifikation bietet viele spannende Anwendungsfelder wie z.B. in der Computer Vision, bei der es darum geht, einem Computer ein visuelles Verständnis der Welt zu vermitteln, was wiederum Verwendung in verschiedenen Bereichen wie beispielsweise bei selbstfahrenden Autos findet. Ebenfalls ermöglicht Machine Learning die Klassifikation von Spam E-Mails oder auch den Einsatz in der Medizin wie bei der frühzeitigen Erkennung von Krankheiten.

Titlefoto von Mike auf Pexels