Machine Learning Classifier in MATLABs Classfication Learner

E-Mail: friedrich.dang@mail.de   LinkedIn: https://www.linkedin.com/in/friedrich-dang-0758971b2

Zur Lösung von Klassifizierungsproblemen stellt MATLAB die App Classfication Learner zur Verfügung. [1] Diese App bietet einen schnellen, lösungsorientierten Einstieg durch die unkomplizierte Benutzeroberfläche. Somit können die verschiedensten Methoden des Machine Learnings ohne tieferes, technisches Verständnis verwendet werden, um Daten anahand ihrer Features zu klassifizieren.

In diesem Blogpost werden alle aktuell verfügbaren Klassifizierungsmethoden grundlegend erläutert, um eine Vorstellung zur prinzipiellen Funktionsweise zu vermitteln. Ein erster Vergleich aller Methoden lässt sich in der folgenden Tabelle wiederfinden:

Tabelle 1: MATLABs Methoden zur Lösung von Klassifizierungsproblemen [2]

Methode

Interpretierbarkeit

Flexibilität

Decision Trees

Einfach

Gering bis

Hoch

Discriminant Analysis

Einfach

Gering

Logistic Regression

Einfach

Gering

Naive Bayes Classifiers

Einfach

Gering bis

Medium

Support Vector Machines

Einfach für Linear SVM
Schwer für alle weiteren

Gering bis

Hoch

Nearest Neighbor Classifiers

Schwer

Gering bis

Hoch

Kernel Approximation Classifiers

Schwer

Medium

Ensemble Classifiers

Schwer

Medium,

Hoch

Neural Network Classifiers

Schwer

Medium,

Hoch

Die von MathWorks angegebene Flexibilität (Gering, Medium, Hoch) steht für das Maß der Anpassungsmöglichkeit, die in der App an den Modellen möglich ist. Bei einem geringen Maß können wenige bis keine Anpassungen vorgenommen werden. Jeodch kann der Code eines Models exportiert und die Architektur dann ggf. optimiert werden. Die Einstufung der Interpretierbarkeit spiegelt das Maß für die Nachvollziehbarkeit der Entscheidung der Klassifizierungen wider.

  1. Decision Trees (Entscheidungsbäume)

 
Ein Decision Tree besteht aus Knoten und Ästen, wobei es zwei besondere Arten von Knoten gibt: Wurzel- und Blattknoten. Während die Blattknoten die Enden des Baumes widerspiegeln, stellt der Wurzelknoten den Anfang des Baumes dar. Die Äste eines Desicion Tree sind Verbindungen zu weiteren Subknoten. Die Klassifizierungen eines Descision Tree lassen sich von der Wurzel (dem obersten Knoten), über seine Äste bis hin zu den Blättern nachvollziehen. Bis auf die Blattknoten besitzen alle Knoten eine Bedingung für die Features der Daten.
Das Ziel bei der Erstellung eines Descision Tree ist es, für jeden Knoten, angefangen mit dem Wurzelknoten, die Bedingungen zu finden, die die höchste Klassifizierungsgüte besitzen. Somit kann die Gesamtdatenmenge optimal in Teilmengen aufgeteilt bzw. klassifiziert werden

Abbildung 1: Decision Tree für das Kaufentscheiden von Fahrrädern mit den Features: Preis, Gewicht und # Gänge sowie Blattknoten: Kauf, NichtKauf

Kriterien für eine hohe Klassifizierungsgüte können je nach Algorithmus zur Erstellung des Decision Tree unterschiedlich festgelegt werden. Im beschriebenen Fall des ID3-Algorithmuses (Iterative Dichotomiser 3) ist dies die Minimierung der Entropie (Maß der Unsicherheit). Hierbei handelt es sich um einen Greedy-Algorithmus. Dieser entscheidet sich immer für die aktuell beste Bedingung. Die Entropie wird für jeden Knoten wie folgt berechnet:


(1-1)

mit C als Anzahl der Klassen zur Klassifizierung und p_i als Anteil einer Klasse i zum Anteil aller Klassen im Knoten. [3] Angenommen für einen Knoten_x gibt es 100 Datenpunkte mit 60 der Klasse 1 sowie 40 der Klasse 2. Dann folgt: 
 

           (1-2)

Die angestrebte Entropie von Null wird mit der Erzeugung von Blattknoten angestrebt, die die Lösung des Klassifizierungsproblems darstellen. Während sich der Algorithmus und die Entscheidungen eines Models vom Typ Descision Tree leichter nachvollziehen lassen, kann jedoch die Genauigkeit bei komplexeren Problemen gering sein. Dies liegt daran, dass kleine Änderungen im Datenset große Auswirkungen auf die Struktur des Descision Tree haben und somit zu anderen Ergebnissen führen können. [4]

 

  1. Logistic Regression


Die Logistic Regression nutzt die Eigenschaften der Sigmoidfunktion, um ein binäres Klassifizierungsproblem zu lösen. Diese kann dem Input einem Wert im Bereich von 0 bis 1 zu ordnen.

 

(2-1)

Sigmoid_function

Abbildung 2: Darstellung der Sigmoidfunktion [5] 
 
Mittels eines optimal bestimmten Schwellenwertes kann der Output der Sigmoidfunktion klassifiziert werden. Zum Beispiel könnten bei einem Schwellenwert von 0,7 alle Werte kleiner als 0,7 der Klasse A statt B zugeordnet werden. Der optimale Schwellenwert lässt sich hierbei durch die Minimierung der Klassifizierungsfehler bestimmen. Die Klassifizierungsfehler werden durch eine Kostenfunktion festgehalten, welche auf die Berechnung der Entropie zurückgeführt werden kann. Die Minimierung der Klassifizierungsfehler kann mittels des Gradientenverfahrens realisiert werden, um den optimalen Schwellenwert zu bestimmen. [5]

  1. Naive Bayes Classifiers

     

Der Naive Bayers Classifier beruht auf Bayers Theorem, welches die folgende Aussage hat:


 

(3-1)

mit P(A|B) als Wahrscheinlichkeit für Ereignis A, falls B eingetroffen ist.
 
Für mehrere zuvor eingetroffene Ereignisse folgt:
 


(3-2)

Hierbei wird beim Naive Bayers Classifier angenommen, dass die Ereignisse unabhängig voneinander sind:
 
      

(3-3)

Diese Annahme kann bei realen Problemen falsch sein und deshalb zu einer geringeren Genauigkeit führen. Die Genauigkeit kann mit der Bestimmung eines optimalen Grenzwertes für die notwendige Wahrscheinlichkeit für die Klassifizierung verbessert werden. [6]

 

  1. Discriminant Analysis


In MATLABs Classfication Learner finden sich die Klassifizierungstypen Linear und Quadratic Discriminant. Diese leiten sich aus der Verteilungsfunktion der Gaußschen Normalverteilung und dem Bayes‘ Theorem her. Die Linear Discriminant Analysis (LDA) einer Klasse k lässt sich für den Input x wie folgt berechnen:



 

(4-1)

mit m(x) als arithmetischem Mittelwert und P_x als prozentualem Auftreten von x sowie s(x) für die Standardabweichung aller Klassen.
Bei der Quadratic Discriminant Analysis wird anstatt der Standardabweichung für alle Klassen, die Varianz für jede Klasse k verwendet. Dies bietet eine Alternative zur LDA, da nicht angenommen wird, dass die Varianz für alle Klassen gleich ist. Die Einschränkung der Annahme, dass die Features normalverteilt sind, bleibt jedoch bestehen. [7]
 
  1. Nearest Neighbor Classifier

 
Angenommen der Wertebereich aller Features ist numerisch und normiert, dann lassen sich diese in Mengen von Vektoren zusammenfassen, deren Minkowski-Abstand d_minkowski berechnen und miteinander vergleichen.



(5-1)

für die Vektoren x und y, n als Anzahl der Features und Abstandsordnungswert p, wobei p = 1 den Manhattan und p = 2 den euklidischen Abstand ergibt.
 
Zur Veranschaulichung werden in der folgenden Abbildung 3 zwei Cluster von Datenpunkten für zwei Klassen A, B und die Features X_1, X_2 gezeigt.
 

Chart, bubble chart

Description automatically generated

Abbildung 3:Klassifizierungsproblem für die Klassen A, B und Features X1, X2; nachgebildet [8]
 
Nearest Neighbor-Methoden werden in MATLAB für Cluster Analysis angeboten, aber auch als Klassifizierungsmethode für neue Datenpunkte genutzt. Dafür werden die Abstände zu den K nächst gelegenen Punkten berechnet. Der Datenpunkt kann in Folge der Klasse zugeordnet werden, welche die meisten Datenpunkte unter den K Punkten besitzt, weshalb das Verfahren auch K-Nearest-Neighbor (KNN) genannt wird.
Um eine höchstmögliche Genauigkeit zu erreichen, müssen per Trainings- und Optimierungsverfahren der beste K-Wert und p Abstandsordnungswert bestimmt werden. Ein zu hoher Wert von K führt zu einer Unteranpassung bzw. ein zu geringer Wert zu einer Überanpassung des Models. [8]

 

  1. Support Vector Machines


Eine Support Vector Machine separiert und klassifiziert Datenpunkte mittels erstellter Hyperebenen. Diese lassen sich mit der folgenden Formel beschreiben:

W * X + b = 0

(6-1)

 
mit den Vektoren X für die Features und W als deren Gewichte sowie b als Bias.Dabei wird ein maximaler Abstand von der Hyperebene zu den Datenpunkten unterschiedlicher Klasse angestrebt, weshalb sie auch maximum marginal hyperplane genannt werden. [9]

Chart, bubble chart

Description automatically generatedChart, bubble chart

Description automatically generated

Abbildung 4: Vergleich von verschiedenen Ebenen zur Separation der Klassen A, B und Features X, Y; größerer Abstand (rechts) sollte in höherer Genauigkeit resultieren; [9] nachgebildet

Die Vektoren für die Datenpunkte, die den maximalen Abstand zur Hyperebene bestimmen, werden Support Vektoren genannt. Der zur Veranschaulichung in Abbildung 4 dargestellte Ansatz lässt sich jedoch in Realität nicht immer so linear trennen – siehe Abbildung 5. Für solche Fälle bietet MATLAB eine quadratische und kubische SVM-Variante an. [10]
 

Chart, bubble chart

Description automatically generated

Abbildung 5: Klassifizierungsproblem ohne lineare Separierbarkeit für die Klassen A, B und Features X1, X2; [9] nachgebildet

Führen diese ebenfalls nicht zu einem guten Ergebnis besteht die Alternative, für die SVM sogenannte Kernel-Funktionen zu verwenden, wie z.B. die Gaussian-Kernel-Funktion. Diese können genutzt werden, um zu den Vektoren einen Wert für eine höhere Dimension hinzuzufügen, um somit eine Hyperebene für die Separation in einer höheren Dimension zu finden. Bezogen auf den Rechenaufwand gibt es den Vorteil, dass Berechnungen in der niedrigeren Dimension der Supportvektoren möglich sind. Die Bestimmung der optimalen Hyperebene für alle Daten ist Ziel des ML-Trainingsverfahrens. [11]


  1. Kernel Approximation Classifiers


MATLABs Classfication Learner bietet zwei weitere Kernel Modelle für die Klassifizierung an: SVM Kernel und Logistic Regression Kernel. Diese sollen insbesondere für nicht-lineare Klassifizierungsprobleme geeignet sein. Im Vergleich zu den Kernel SVMs unter der Support Vektor Machines soll ein schnelleres Training und Testen möglich sein. Darüber hinaus sind fortgeschrittene Einstellungsmöglichkeiten für die Kernel Funktionen verfügbar. [2]
Für den Typ Logistic Regression ergeben sich mit dieser Variante überhaupt erst Einstellungsmöglichkeiten. Denn die Logistic Regression Kernel bindet im Vergleich zur einfachen Logistic Regression die Inputvektoren in eine Kernel-Funktion ein. Dabei hat die Logistic Regression im Vergleich zur SVM immer noch den Vorteil, dass sie die Klassifizierung in Form von Wahrscheinlichkeiten statt einer klaren Separation ausführt. Dafür wird jedoch deutlich mehr Rechenaufwand benötigt, da SVMs statt aller Vektoren nur die Support Vektoren betrachten. [2]

 
  1. Ensemble Classifiers


Mit der steigenden Verfügbarkeit von höheren Rechenkapazitäten steigt die Verfügbarkeit anspruchsvollerer und komplexerer Modelle. Der Ansatz der Ensemble Classifiers ist es, traditionelle ML-Methoden zu kombinieren oder zu erweitern, um deren Schwächen auszubessern und ihre Genauigkeit zu erhöhen. In Classfication Learner werden die zwei Ansätze der Randomisierung mittels Random Subspace und Optimierung mittels Gradient Boosting mit den Methoden Decision Tree, Nearest Neighbour und Discriminant Analysis kombiniert. Somit sollte die Robustheit des Models erhöht sein bzw. es ein stabileres Ergebnis für Inputs hoher Varianz ausgeben. Die beiden Ansätze werden in Folge an der Methode Decision Tree erläutert, da diese im Classfication Learner für beide Ansätze vertreten ist. [2]

Abbildung 6: Randomforest  für das Kaufentscheiden von Fahrrädern mit den Features: Farbe, Preis, Gewicht und # Gänge sowie Blattknoten: Kauf, NichtKauf [12] 
 
Random Subspace Decision Trees, auch bekannt als Random Forest, beruht auf der Anwendung der Decision Tree Methode auf unterschiedliche, zufällige Varianten des Inputs. Dies kann zum Beispiel realisiert werden, indem die Häufigkeit eines Vektors im Input erhöht oder gesenkt wird, was zu einem anderen Decision Tree und dessen Klassifizierungen führen kann. Das endgültige Ergebnis zur Klassifizierung kann abschließend an dem mehrheitlichen Ergebnis aller Decision Trees bestimmt werden Abbildung 6. [4]

A picture containing diagram

Description automatically generated

Abbildung 7: Nachbildung für die Methode Gradient Boosted [13] 
 
Gradient Boosted Trees suchen dagegen gezielt nach anderen Decision Trees, um den Fall eines Klassifizierungsfehler eines Decision Trees korrekt zu klassifizieren. Besteht daraufhin die Möglichkeit, die Decision Trees miteinander zu einem größeren Decision Tree zu verbinden, der die Summe aller Klassifizierungsfehler bzw. die Entropie des Models senkt wie in Abbildung 7, kann ein Decsion Tree mit einer besseren Performance generiert werden. [14]

 

  1. Neural Network Classifiers

     

Ein Bild, das Schere, Projektor enthält.

Automatisch generierte Beschreibung

Abbildung 8: Schichtstruktur der Neuronen eines Neuronales Netzes der Studie [15] 
 
Als letzte Methode wird aktuell im Classification aktuell Neural Network Classifiers aufgeführt. Dieser benötigt ähnlich wie die Ensemble Classifiers eine hohe Rechenkapazität und Datenmenge und haben einen schwer nachvollziehbaren Klassifizierungsweg. Das Funktionsprinzip beruht auf dem der Neuronalen Netze. Diese existieren in einer Vielzahl von verschiedenen Arten mit anderen Schichtstrukturen (z.B. Convolutional Neural Network oder Long Short-Term Memory). Im Folgenden wird jedoch nur das Funktionsprinzips eines gewöhnlichen Feed Forward bzw. Fully Connected Neural Network allgmein erläutert. Weiterführend ist die YouTube Videoreihe von 3Blue1Brown empfehlenswert. [16] [17]
Ein neuronales Netz besteht aus einer Vielzahl von Schichten, die wiederum aus einer Vielzahl von sogenannten Neuronen bestehen. Bis auf die erste Schicht nehmen alle Schichten den Output der Neuronen der vorherigen Schicht als Input entgegen. Die erste Schicht ist die sogenannte Inputschicht, welche den generellen Dateninput entgegennimmt. Die letzte Schicht spiegelt das Outputlayer und Klassifizierungsergebnis wider.
Neuronen können außerdem als Aktivierungsfunktionen (z.B. Sigmoidfunktion) betrachtet werden, die die gewichtete Summe des Inputs und einen Schwellenwert (Bias) beinhaltet. Mit Hilfe des Schwellenwerts kann der Output reguliert bzw. die Aktivierungsstärke des Neurons festgelegt werden. Während des Trainings werden anhand einer Kostenfunktion (z.B. dem Maß der Entropie) die Gewichte und Schwellenwerte der Neuronen optimiert. Somit können schlussendlich Muster im Input erkannt und zu einem gewissen Wahrscheinlichkeitsgrad korrekt klassifiziert werden. [15]
Abbildung 9: Neuron mit den Feature X1 und X2, den Gewichten w1 und w2 sowie dem Bias b und dem Output Y [18]
 

Quellen 

[1]    MathWorks: Classification Learner App. URL https://www.mathworks.com/help/stats/classificationlearner-app.html

[2]    MathWorks: Choose Classifier Options. URL https://www.mathworks.com/help/stats/choose-a-classifier.html#mw_02826ac1-62eb-4937-b8bd-6c7cdbbd89a4

[3]    KDnuggets: Decision Tree Algorithm, Explained. URL https://www.kdnuggets.com/2020/01/decision-tree-algorithm-explained.html

[4]    Knuth, Tobias: Lernende Entscheidungsbäume. In: Informatik Spektrum 44 (2021), Nr. 5, S. 364–369. URL https://link.springer.com/article/10.1007/s00287-021-01398-0#ref-CR16

[5]    KDnuggets: Logistic Regression for Classification. URL https://www.kdnuggets.com/2022/04/logistic-regression-classification.html

[6]    Scikit-Learn: Naiver Bayes-Klassifikator. URL https://ichi.pro/de/naiver-bayes-klassifikator-erklart-89032293183981

[7]    Brownlee, Jason: Linear Discriminant Analysis for Machine Learning. URL https://machinelearningmastery.com/linear-discriminant-analysis-for-machine-learning

[8]    Yadnesh: k-Nearest Neighbors in Machine Learning (k-NN). URL https://medium.com/analytics-vidhya/k-nearest-neighbors-in-machine-learning-k-nn-e84a70b79b3c

[9]    Han, Jiawei: Support Vector Machines. In: Han, Jiawei (Hrsg.): Data mining : Concepts and techniques. 3rd ed. Amsterdam, Boston : Elsevier/Morgan Kaufmann, 2012 (The Morgan Kaufmann series in data management systems), S. 408–413

[10]  Ray, Sunil: Understanding Support Vector Machine(SVM) algorithm from examples (along with code). URL https://www.analyticsvidhya.com/blog/2017/09/understaing-support-vector-machine-example-code

[11]  Ng, Annalyn ; Soo, Kenneth: Support-Vektor-Maschine. In: Ng, Annalyn; Soo, Kenneth (Hrsg.): Data Science – was ist das eigentlich?! : Algorithmen des maschinellen Lernens verständlich erklärt. 1. Aufl. 2018. Berlin, Heidelberg : Springer Berlin Heidelberg, 2018, S. 97–105

[12]  TIBCO Software: What is a Random Forest? URL https://www.tibco.com/reference-center/what-is-a-random-forest

[13]  Pal, Aratrika: Gradient Boosting Trees for Classification: A Beginner’s Guide. URL https://medium.com/swlh/gradient-boosting-trees-for-classification-a-beginners-guide-596b594a14ea

[14]  Brownlee, Jason: A Gentle Introduction to the Gradient Boosting Algorithm for Machine Learning. In: Machine Learning Mastery (2016-08-09)

[15]  IBM: Neural Networks. URL https://www.ibm.com/cloud/learn/neural-networks

[16] 3Blue1Brown. URL https://youtube.com/playlist?list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi

[17]  Ng, Annalyn ; Soo, Kenneth: Neuronale Netze. In: Ng, Annalyn; Soo, Kenneth (Hrsg.): Data Science – was ist das eigentlich?! : Algorithmen des maschinellen Lernens verständlich erklärt. 1. Aufl. 2018. Berlin, Heidelberg : Springer Berlin Heidelberg, 2018, S. 129–144

[18]  KDnuggets: A Quick Introduction to Neural Networks. URL https://www.kdnuggets.com/2016/11/quick-introduction-neural-networks.html

Kommentare