In diesem Blog wird die Lernerfahrung beschrieben aus dem dem Online-Kurs „Machine Learning A-Z™: Hands-On Python & R In Data Science”. Ich gehe in diesem Blog der Frage nach, inwieweit sich dieser Kurs für IT Projektleiter und Product Owner eignet, um ein besseres Verständnis für Maschinenlernen / Künstliche Intelligenz zu bekommen – und zwar ohne tiefere Vorkenntnisse. Denn: Maschinenlernen bzw. Künstliche Intelligenz wird in der Softwareentwicklung eine wachsende Bedeutung einnehmen; in absehbarer Zeit dürfte es nur noch wenige Softwareprojekte geben, die gänzlich ohne Maschinenlernen auskommen. In den Worten von Google-Chef Sundar Pichai: „Wir werden uns von einer Mobile-first-Welt in eine KI-first-Welt bewegen“, wo der Computer ein mit Künstlicher Intelligenz (KI) ausgestatteter Sprachassistent sein wird.
In dieser Artikelserie zum udemy Academy-Kurs vermittele ich einige ausgewählte, wesentliche Knowledge Nuggets, die ein gutes Verständnis von der inhaltlichen Ausrichtung des Online-Kurses und gleichzeitig einige wesentliche Lerninhalte vermitteln. Dieser Überblick kann den Online-Kurs selbstverständlich nicht ersetzen – die Knowledge Nuggets sind als Appetizer für den Kurs zum Maschinenlernen gedacht.
Hier geht’s zum ersten und zweiten Teil der Serie:
- Maschinenlernen für Product Owner, IT Projektmanager (Teil 1) – Einführung und Datenaufbereitung
- Maschinenlernen für Product Owner, IT Projektmanager (Teil 2) – Regressionsverfahren
Maschinenlernen / Künstliche Intelligenz – Logistische Regression
Der dritte Teil des Online-Kurses zum Maschinenlernen widmet sich jenen (mathematischen) Methoden im Maschinenlernen, die eine Klassifizierung / Kategorisierung („classification“) ermöglichen. Bei den Verfahren der Regression (vgl. Teil 2) ging es darum, eine mathematische Funktion zu entwickeln, die die Voraussage eines numerischen Wertes ermöglicht – beispielsweise: Das Gehalt in Abhängigkeit von Alter und Qualifikation. In diesem Teil 3 zur Klassifikation soll eine Kategorie vorausgesagt werden, beispielsweise: „Käufer“ oder „Nicht-Käufer“. Die Ausgangssituation ist beispielsweise ein Datensatz von Besuchern eines eCommerce-Shops mit ozio-ökonomischen Eigenschaften; an diese Besucher wurde eine bestimmte Online-Werbung ausgespielt. Es ist bekannt, wer von diesen Zielpersonen das Produkt gekauft hat (Kategorie „Käufer“) und wer das Produkt nicht gekauft hat („Nicht-Käufer“). Zwei (2) Kategorien sind der einfachste Fall, aber auch mehr als zwei (2) Kategorien sind natürlich denkbar (z.B. Marktsegmente – aber nicht alle nachfolgend vorgestellten Verfahren eigenen sich für mehrere Kategorien).
Das erste vorgestellte Verfahren ist die Logistische Regression (auch: Logit-Modell) bzw. in Englisch Logistic Regression. Es ist ein Verfahren, das in der Praxis dann zur Anwendung komm, wenn ein lineares Problem vorliegt.
Exkurs: „Wann liegt ein lineares Problem vor, was heißt das eigentlich (mathematisch)?“ – Gehen wir einmal von einem zweidimensionalen Koordinatensystem mit zahlreichen Datenpunkten zweier unterschiedlicher Kategorien (blau, rot) aus. Wenn Sie eine LINIE so in das Koordinatensystem legen können, dass die roten von den blauen Punkten (nahezu vollständig) separiert werden, dann handelt es sich um ein lineares Problem. Verteilen sich Datenpunkte in einem dreidimensionalen Raum, dann müssen sich Bereiche mittels einer (nicht gekrümmten) Ebene voneinander separieren lassen, auch dann spricht von einem linearen Problem. Exkurs Ende
Zur Einführung der Logistischen Regression betrachten wir in dem Kurs eine einfache Ausgangssituation: Es liegen Beobachtungspunkte vor, die angeben, ob ein Produkt von einer Zielperson gekauft wurde oder nicht („Käufer“ vs. „Nicht-Käufer“), das Alter der Zielpersonen ist bekannt. Trägt man diese Information in ein Koordinatensystem ab (vgl. nachfolgende Abbildung), dann lässt sich erkennen, dass mit höherem Alter (X-Achse) die Wahrscheinlichkeit steigt, dass eine Zielperson das Produkt kauft (rote Kreuze auf gestrichelter Linie): Die obere gestrichelte Linie entspricht hier im Übrigen der Kaufwahrscheinlichkeit von 100% (100% = Produkt wird sicher gekauft)
Abbildung: Die Sigmoid Funktion als Basis der Logistischen Regression, Maschinenlernen
Eine S-förmige Kurze bildet diese Wahrscheinlichkeitsverteilung annähernd ab: Im Krümmungsbereich dieser Kurve nimmt die Wahrscheinlichkeit, dass das Produkt gekauft wird, stark zu. Diese Kurve lässt sich mathematisch mithilfe der sogenannten Sigmoidfunktion abbilden, wobei „p“ in der Abbildung für „probability“ steht (Wahrscheinlichkeit), „ln“ steht für die Logarithmusfunktion, außerdem gibt es zwei Koeffizienten (b0, b1). Kurzum: Wer mit der Logistischen Regression arbeitet, tut dies auf Basis der Sigmoidfunktion.
Für eine praktische Demonstration der Logistischen Regression gehen wir im Kurs von eben der Ausgangssituation aus, die ich eingangs kurz beschrieben habe:
Eine Produktwerbung wurde an Zielpersonen ausgespielt, es ist bekannt, ob eine Zielperson das Produkt gekauft hat („1“) oder nicht („0“). Für das Maschinenlernen werden hierbei zwei sozioökonomische Eigenschaften herangezogen: „Alter“ und „geschätztes Gehalt“. Damit die Kursteilnehmer ein besseres Verständnis der verschiedenen Klassifizierungsmethoden in Abgrenzung zueinander erhalten, wird in der praktischen Umsetzung der jeweiligen Methode immer der gleiche Business Case herangezogen, nämlich die Aufgabe: Bilde eine Klassifikationsregel, um das Kauf-Verhalten vorherzusagen.
Abbildung: Datenset für die beispielhafte Anwendung der Classification Methoden zum Maschinenlernen in Python
Wendet man das Verfahren der Logistischen Regression nun auf die Daten an (Import der einschlägigen Bibliothek von SciKit-Learn, Generierung eines Klassen-Objektes, Anwendung der „Fit“-Methode auf die Daten), dann ergibt sich folgende Visualisierung dieser Klassifizierungsmethode Logistische Regressions):
Abbildung: Geplottete Graphik zur Klassifizierung mithilfe der Logistischen Regression
In diesem geplotteten Graphen entspricht jeder Datenpunkt einer Kombination der beiden Eigenschaften (geschätztes) Gehalt (Y-Achse) und Alter (X-Achse). Zunächst einmal ist sehr deutlich erkennbar, dass es sich bei der Methode der Logistischen Regression um eine lineare Methode handelt: Die Bereiche, in denen die Kategorie „Käufer“ vorhergesagt wird („grün“), wird von dem Bereich für die Vorhersage „Nicht-Käufer“ („rot“) ganz klar durch eine Linie separiert. (Wir lernen weiter unten auch nicht-lineare Methoden kennen, wo der geplottete Graph eine ganz andere Gestalt annimmt). In diesem geplotteten Graphen (erstellt in Python) ist auch erkennbar, wo die tatsächlichen Beobachtungspunkte aus dem initialen Datenset liegen, mit denen der Maschinenlern-Algorithmus gefüttert wurde. Es lassen sich grüne Punkte („Käufer“) und rote Punkte („Nicht-Käufer“) erkennen. Die Vorhersagegenauigkeit („Accuracy Rate“) dieses Modells liegt für diese Methode bei etwas unter 90% – was im Übrigen ganz gut ist.
Maschinenlernen / Künstliche Intelligenz – K-Nearest Neighbour
Mit der Methode K-Nearest Neighbour (K-NN) lernen wir eine nicht-lineare Methode kennen. Das Grundprinzip ist verblüffend einfach. Gehen wir einmal von einem zweidimensionalen Koordinatensystem aus, in dem die Eigenschaften (also: unabhängigen Variablen) eines Datenpunktes abgetragen sind (vgl. nachfolgende Abbildung). Nun tragen wir einen neuen Datenpunkt ein (vgl. Pfeil), für den wir eine Voraussage treffen wollen („Kaufen“ oder „Nicht-Kaufen“ – das ist hier die Frage). Nun bestimmen wir einen Radius um diesen Punkt und … zählen ganz einfach diejenigen Nachbarn innerhalb des Radius vom Typ 1 („rot“) und jene vom Typ 2 („grün“). Ich muss sicherlich nicht ausformulieren, nach welchem Kriterium die Voraussage für diesen neuen Punkt getroffen wird …
Abbildung: Ausgangssituation für den Maschinenlernen-Algorithmus K-Nearest Neighbor
Interessant ist nun, wie der geplottete Graph für diesen Maschinenlernen-Algorithmus ausschaut, wenn man ihn auf den eingangs vorgestellten Datensatz anwendet:
Abbildung: Geplottete Graphik zur Klassifizierung mithilfe des Maschinenlernen-Algorithmus K-Nearest Neighbor
Hier wird klar erkennbar, dass die Trennung zwischen dem grünen Bereich (Voraussage: „Käufer“) und dem roten Bereich nicht-linear ausfällt.
Maschinenlernen / Künstliche Intelligenz – Support Vector Machine (SVM)
Kommen wir zu einem weiteren linearen Verfahren, nämlich der Support Vector Machine (SVM). Schauen wir uns in dem Fall zunächst das Ergebnis im geplotteten Graphen an:
Abbildung: Geplottete Graphik zur Klassifizierung mithilfe des Maschinenlernen-Algorithmus Support Vector Machine (SVM)
Auf den ersten Blick sieht das Ergebnis vergleichbar dem Ergebnis des linearen Verfahren der Logistischen Regression aus: Eine gerade Trennlinie zwischen dem grünen und dem roten Bereich. Vergleicht man die beiden Verläufe der Geraden, stellt man einen leicht abweichenden Verlauf fest. Die zugrunde liegenden mathematischen Verfahren für diese Methoden des Maschinenlernens sind unterschiedlich, es ergibt sich mithin ein unterschiedliches Ergebnis. Welcher Algorithmus zu einer vorliegenden Fragestellung am besten passt, wird man mit viel Erfahrung oder aber durch Error&Trial (sprich: Herumprobieren) herausfinden.
Um das Verfahren Support Vector Machine methodisch grob einordnen zu können, sei dies kurz erläutert (vgl. nachfolgende Abbildung): Zwischen zwei Punkten (genannt: „Support Vectors“) im Grenzbereich der jeweiligen „Datenpunktwolke“ wird eine Gerade (genannt: „Maximum Margin Hyperplane“) gelegt, dazu zwei parallele Geraden (hier: gestrichelte Linien), die die beiden Punkte („Support Vectors“) gerade berühren. Die Gerade wird nun so positioniert, dass der Abstand zwischen diesen gestrichelten Linien (genannt: „Maximum Margin“) maximiert wird.
Abbildung: Intuitive Erläuterung zur Methode Support Vector Machine (SVM)
Das Besondere an diesem Algorithmus besteht darin, dass sich die Position der Geraden mathematisch an den Punkten im Grenzbereich ausrichtet, und zwar NUR an diesen Punkten im Grenzbereich; die übrigen Punkte werden bei diesem Algorithmus nicht berücksichtigt. Übertragen wir dieses Vorgehen einmal aus der Welt der Mathematik in die Alltagswelt: Nehmen wir einmal an, ein Maschinenlernen-Algorithmus soll zwischen Tischen und Stühlen unterscheiden. Man könnte nun den archetypischen Tisch beschreiben, 4 Tischbeine, Tischplatte 100 cm x 200 cm, Tischhöhe 75 cm. In gleicher Weise wird der archetypische Stuhl in seinen Eigenschaften beschrieben. An diesen archetypischen Modellen eines Tischs und eines Stuhls wird nun ein Objekt zugeordnet.
Das Verfahren des Support Vector Machine geht eben NICHT vom archetypischen Modell eines Tischs oder Stuhls aus, sondern betrachtet einen Tisch bzw. einen Stuhl im Grenzbereich, dort wo beide Objekte eine hohe Ähnlichkeit aufweisen: Der Tisch etwa ist sehr niedrig und hat eine Tischplatte mit kleiner Fläche (z.B. ein Couchtisch), der Stuhl hat keine Lehne (z.B. ein Hocker). Man kann sich vorstellen, dass ein solches Vorgehen in manchen Fällen sehr gute Ergebnisse liefert (im Vergleich zu dem Vorgehen auf Basis eines archetypischen Modells). Eben darum spielt das Maschinenlernen-Verfahren SVM auch noch eine Rolle im Maschinenlernen.
Maschinenlernen / Künstliche Intelligenz – Kernel SVM
Wir kommen nun zu einem (nicht-linearen) Verfahren, das mich am meisten fasziniert hat: Kernel SVM. Die (mathematische) Idee hinter diesem Verfahren ist brillant, geradezu genial.
Ausgangssituation ist eine Verteilung von Datenpunkten, die sich mit einem linearen Verfahren nicht mehr voneinander separieren lassen (vgl. rechte Graphik in nachfolgender Abbildung): Es gibt keine Gerade, mit der man die „grünen“ von den „roten“ Punkten separieren könnte.
Abbildung: Herleitung des Maschinenlernverfahrens Kernel SMV – Schritt 1
Die brilliante (wenn nicht sogar: geniale) Idee besteht nun darin, aus diesem „nicht-linearen“ Problem ein „lineares“ Problem zu machen, indem man die die Datenpunkt in eine nächsthöhere Datendimension projiziert. Das klingt zunächst kompliziert, lässt sich aber einfach nachvollziehen. Gehen wir zur Illustration von folgender Ausgangssituation aus, nämlich Datenpunkten in einem eindimensionalen Raum (also: einer Linie). Ein Problem ist in diesem eindimensionalen Raum dann linear (vgl. die Definition von „linearem Problem“ im Exkurs weiter oben), wenn sich die „roten“ Punkte von den „grünen“ Punkten mit einem Punkt auf der Achse separieren lassen. Ein kurzer Blick genügt, um festzustellen, dass das nicht möglich ist:
Abbildung: Herleitung des Maschinenlernverfahrens Kernel SMV – Schritt 2
In einem nächsten Schritt werden eben diese Datenpunkt in die nächsthöhere Ebene projiziert, aus dem eindimensionalen Raum wird ein zwei-dimensionaler Raum. Fügt man die X-Werte auf der Achse in die hier dargestellte Parabelfunktion ein, dann liegen die Punkte in dem zwei-dimensionalen Raum auf einmal dergestalt auf einer Parabel, dass sich die „roten“ und die „grünen“ Punkte mithilfe einer Geraden voneinander separieren lassen. Wir haben nun ein „lineares“ Problem!!
Abbildung: Herleitung des Maschinenlernverfahrens Kernel SMV – Schritt 3
Das gleiche Vorgehen einer Projektion in den nächsthöheren Raum lässt sich auch ausgehend von einem zweidimensionalen Datenraum machen (vgl. nachfolgende Abbildung). Die „grünen“ Punkte liegen auf dem „Kegel-förmigen“ dreidimensionalen Gebilde dergestalt, dass man mit einer Ebene die „grünen“ von den „roten“ Punkten separieren kann.
Man nennt dies im Maschinenlernen übrigens auch den Kernel-Trick.
Abbildung: Herleitung des Maschinenlernverfahrens Kernel SMV – Schritt 4
Betrachtet man die mathematische Funktion (basierend auf einer e-Funktion), dann wird ein sogenannter „Landmark“ definiert (entspricht in der mathematischen Gleichung dem kleinen „l“), welcher den höchsten Punkt des Kegels markiert. Je weiter sich „x“ von diesem „Landmark“ entfernt, desto weiter unterhalb der Kegelspitze liegt der Punkt im dreidimensionalen Raum; über „Sigma“ (im Nenner des Bruches“ lässt sich der Durchmesser des Kegels beeinflussen.
Abbildung: Herleitung des Maschinenlernverfahrens Kernel SMV – Schritt 5
Selbstverständlich lassen sich auch mehrere „Kegelgebilde“ verschmelzen, um etwa Verteilungsmuster wie nachfolgende in ein lineares Problem zu überführen:
Abbildung: Herleitung des Maschinenlernverfahrens Kernel SMV – Schritt 6
Für die Konstruktion von Modellen im Maschinenlernen gibt es nun verschiedene Kernels, die sich auf Verteilungsmuster von Datenpunkten anwenden kann. Zur Auswahl stehen Kernels auf Basis der Gaussschen Verteilung, auf Basis der Sigmoidfunction oder polynomische Kernels.
Abbildung: Herleitung des Maschinenlernverfahrens Kernel SMV – Schritt 7
Wendet man diese Kernel SVM Verfahren auf unseren Datensatz an, ergibt sich folgende Graphik:
Abbildung: Der geplottete Graph zum Maschinenlernverfahren Kernel SMV
Maschinenlernen / Künstliche Intelligenz – Naive Bayes Theorem
Der Satz von Bayes ist ein mathematischer Satz aus der Statistik, der die Berechnung bedingter Wahrscheinlichkeiten beschreibt; es gehört zu den Grundlagen der Statistik, die Erinnerung an diese Formel stellt sich schnell wieder ein, wenn man die Erläuterung gehört hat.
Dazu eine kurze Erläuterung an einem Beispiel: Es gibt zwei Maschinen, die gleiche Teile produzieren. Nun möchte der Produktionsmanager wissen, wie hoch die Wahrscheinlichkeit ist, dass ein Teil defekt ist, wenn (also: unter der Vorbedingung, dass) es auf Maschine 2 produziert wurde. Es handelt sich damit um eine bedingte Wahrscheinlichkeit (nämlich: mit Vorbedingungen, hier: wenn das Teil von Maschine 2 kommt). Die mathematische Schreibweise für die Vorbedingungen ist die Pipe („|“).
Das Ergebnis lässt sich wie folgt ermitteln. Im Zähler stehen zwei mathematische Ausdrucke. P(Mach2|Defect), also: Die Wahrscheinlichkeit, dass ein Teil von Maschine 2 stammt, wenn ich NUR die defekten Teile betrachte (heißt: von allen aussortierten Teilen in der QA-Abteilung ermittele ich den Anteil, der von Maschine 2 stammt, etwa anhand einer Produktionsnummer). Im Zähler steht außerdem die Wahrscheinlichkeit, dass insgesamt ein Teil defekt ist: P(Defect). Im Nenner steht die Wahrscheinlichkeit, dass (bezogen auf die gesamte Produktion) ein Teil von Maschine 2 stammt: P(Mach2).
Abbildung: Herleitung des Maschinenlernverfahrens auf Grundlage des Bayes Theorem – Schritt 2
Wenn man diesen Satz von Bayes abstrakter fasst, dann erhält man:
Abbildung: Herleitung des Maschinenlernverfahrens auf Grundlage des Bayes Theorem – Schritt 1
Betrachten wir, wie sich dieser Ansatz im Bereich Maschinenlernen anwenden lässt. Wir haben eine Ausgangssituation wie folgt: Es gibt eine Reihe von Beobachtungspunkten, nämlich Mitarbeitern mit einem bestimmten Alter und Gehalt. Ein Teil der Mitarbeiter kommt zu Fuß zur Arbeit, der andere Teil fährt mit dem eigenen PKW. Nun fügen wir im Koordinatensystem einen neuen Datenpunkt hinzu.
Abbildung: Herleitung des Maschinenlernverfahrens auf Grundlage des Bayes Theorem – Schritt 3
Die Frage: Mit welcher Wahrscheinlichkeit wird dieser neue Mitarbeiter zu Fuß zur Arbeit kommen? Für die Anwendung des Satz von Bayes benötigen wir drei (3) Inputs, vgl. die obige Formel. Einige Wahrscheinlichkeiten sind hierbei einfach zu ermitteln: Etwa P(Walks), also die Wahrscheinlichkeit, dass ein Mitarbeiter zu Fuß zur Arbeit kommt. Interessant wird die Ermittlung der Wahrscheinlichkeit „P(X|Walks)“, nämlich die Wahrscheinlichkeit, dass unter denjenigen die laufen (Vorbedingung) jemand die gleichen Eigenschaften (Gehalt, Alter) aufweist wie die neue Person (der neue Datenpunkt). Dazu bedient man sich eines ähnlichen Vorgehens wie bei K-Nearest Neighbours. Es wird ein Radius um den neuen Datenpunkt gebildet:
Abbildung: Herleitung des Maschinenlernverfahrens auf Grundlage des Bayes Theorem – Schritt 4
Nun zählt man innerhalb dieses Kreises, der die homogenen Eigenschaften „X“ beschreibt (bestimmtes Alter, Gehalt), wie viele Mitarbeiter mit solchen Eigenschaften laufen. So ergibt sich P(X|Walks).
Abbildung: Herleitung des Maschinenlernverfahrens auf Grundlage des Bayes Theorem – Schritt 5
Im Vergleich zur Methode von K-Nearest Neighbor ergibt sich jedoch ein etwas anderes Bild im geplotteten Graphen für die Klassifizierung nach Naive Bayes (auch ein nicht-lineares Verfahren) – was nicht zuletzt mit dem Radius zusammenhängt, der für die Bildung von homogenen Eigenschaftsbereichen/-räumen zugrunde gelegt wird:
Abbildung: Der geplottete Graph zum Maschinenlernverfahren Naive Bayes
Maschinenlernen / Künstliche Intelligenz – Entscheidungsbaum (Decision Tree), Random Forest
Die Methodik zum Aufbau eines Entscheidungsbaums (Decision Tree) dürfte noch aus dem vorangegangen Artikel zu den Regresssionverfahren bekannt sein; die wesentlichen Eckpunkte seien hier nochmals in Erinnerung gebracht.
Es liegt eine Verteilung von Datenpunkten vor, die etwa wie folgt aussehen könnte (in einem zweidimensionalen Datenraum). X1 entspricht einer Eigenschaft, X2 einer weiteren Eigenschaft. „Rot“ entspricht einer Kategorie, „Grün“ einer weiteren.
Abbildung: Herleitung des Maschinenlernverfahrens auf Grundlage des Entscheidungsbaums – Schritt 1
In einem interativen Verfahren wird nun eine Segmentierung vorgenommen. Zunächst Segmentierung 1 (Split 1), dann Split 2 undsoweiter.
Abbildung: Herleitung des Maschinenlernverfahrens auf Grundlage des Entscheidungsbaums – Schritt 2
Diese iterative Unterteilung der Gesamtmenge an Datenpunkten lässt sich in einen Entscheidungsbaum übersetzen, der für das vorgenannte Beispiel wie folgt aussieht:
Abbildung: Herleitung des Maschinenlernverfahrens auf Grundlage des Entscheidungsbaums – Schritt 2
Die Segmentierung wird hierbei so vorgenommen, dass die Homogenität in den segmentierten Bereichen zunimmt. Das heißt – vereinfacht formuliert: War die Verteilung von „rot“/“grün“ vor der Segmentierung beispielsweise 45:55, nach der Segmentierung liegt diese bei 25:5 und 20:50, dann sind die beiden neuen Segment jeweils homogener als das Segment, aus denen diese gebildet wurden. Mathematisch wird die Informationelle Entropie minimiert – ein Gradmesser für Homogenität bzw. Heterogenität.
Die Methode bildet jeweils horizontal / vertikal abgegrenzte Segment, der geplottete Graph nach Anwendung dieser Methode des Maschinenlernen auf den Beispieldatensatz ergibt damit folgendes Bild:
Abbildung: Der geplottete Graph zum Maschinenlernverfahren Entscheidungsbaum (Decision Tree)
Dieser beispielhafte Graph ist im Übrigen illustriert gut den Effekt des Overfitting, erkennbar an teilweise sehr kleinteiligen Segmenten. Die Klassifizierung/Kategorisierung ist auf die Trainings-Daten übermäßig angepasst, die eigentliche Korrelation zwischen abhängigen und unabhängigen Variablen wird nicht bzw. ungenügend herausgearbeitet; es wird hingegen für (fast) jeden Datenpunkt der Trainingsdaten ein eigenes Segment geschaffen. Denn die Korrelation der Daten ergibt: Je weiter Datenpunkte „rechts oben“ liegen, desto wahrscheinlicher, dass diese in die Kategorie „grün“ fallen. Die beiden kleinen „roten“ Segmente im Bereich rechts oben ergeben sich aus dem Overfitting an zwei Ausreißer in den Trainingsdaten; dies schränkt die Vorhersagekraft des Modells in eben diesen Bereichen ein.
An dieser Stelle sei auch nochmals an die Methode des Random Forest erinnert, die ebenfalls bereits im Artikel zu den Regressionsverfahren beschrieben wurde. Hierbei werden in mehreren Iterationen aus dem vollständigen Set an Ausgangsdaten Untermengen gebildet (per Zufall); hierauf wird das Entscheidungsbaum-Verfahren angewandt. Es entstehen also zahlreiche Entscheidungsbäume. Aus diesen Entscheidungsbäumen wird schließlich ein Durchschnitt gebildet, was in der Regel die Qualität der Vorhersage verbessert.
Da das Verfahren des Random Forest auf der Methode des Entscheigundsbaums basiert, überrascht es nicht, dass der geplottete Graph eine ähnliche Grundstruktur aufweist:
Abbildung: Der geplottete Graph zum Maschinenlernverfahren Random Forest
Maschinenlernen / Künstliche Intelligenz – Evaluierung von Modellen im Maschinenlernen
Abschließend betrachtet der udemy Academy Kurs zum Maschinenlernen verschiedene Ansätze, die Qualität eines Modells zu bewerten. Ein einfaches Verfahren ist zunächst die Confusion Matrix, die sich etwas in Python mit einer Funktion ausgeben lässt:
Abbildung: Die Confusion Matrix zur Bewertung der Qualität eines Modells im Maschinenlernen
Die hellgrauen Felder zeigen an, wo eine Voraussage des Modells zutrifft: Per Voraussage trifft ein Event nicht ein („0“), und tatsächlich ist dieses Event nicht eingetroffen. Oder: Per Voraussage trifft ein Event ein („1“), und tatsächlich trifft das Event so ein.
Die falschen Voraussagen werden in zwei Typen unterteilt. Beim False Positive wird ein Event vorausgesagt, das in Realität nicht eintrifft. Beispiel: Eine Virensoftware identifiziert eine Datei als Schadsoftware, in Wirklichkeit ist die Datei unkritisch. Beim False Negative wird kein Event vorausgesagt (Beispiel: Keine Schadsoftware), aber in Realität tritt das Event ein (Beispiel: Die Schadsoftware richtet Schaden an). An dem gewählten Beispiel wird deutlich, dass der Fehler des False Negative im Maschinelernen als deutlich kritischer bewertet wird als ein False Positive.
Betrachten wir die sogenannte CAP Kurve, Cumulative Accuracy Profile Kurve:
Abbildung: Das Cumulative Accuracy Profile (CAP) zur Bewertung der Qualität eines Modells im Maschinenlernen – Schritt 1
Wie lässt sich diese Kurve verstehen? – Gehen wir von folgender Ausgangssituation aus. Sie verschicken einen Werbebrief an die Gesamtheit von bekannten Zielpersonen (dies entspricht den 100% auf der X-Achse). Es ist bekannt, dass hiervon 10% das Produkt kaufen werden (wenn alle 10% der Gesamtheit von Zielpersonen das Produkt gekauft haben, sind 100% des Verkaufspotentials erreicht). Das Koordinatensystem (und die darin abgebildeten Kurven) zeigt also den Zusammenhang zwischen „Anteil kontaktierter Zielpersonen“ und „Anteil realisierter Einkäufe der potentiell möglichen Einkäufe“.
Wenn Sie beim Mailing die Zielpersonen per Zufall auswählen, dann ist der Erwartungswert, dass von den kontaktierten Zielpersonen jeweils 10% das Produkt kaufen. Wenn Sie ein perfektes Modell zur Vorhersage der Kaufwahrscheinlichkeit haben (z.B. auf Basis von sozioökonomischen Daten), dann schreiben Sie nur jene (10% der) Zielpersonen an, die auch tatsächlich kaufen werden. Dies entspricht dem Graphen „Crystal Ball“ (Kristallkugel). Zwischen dem Kurvenverlauf für das „perfekte Vorhersagemodell“ und der Kurve für die „zufällige Auswahl“ der angeschriebenen Personen liegen die Modelle in der Praxis. Nämlich eine Kurve für ein gutes Modell, eine Kurve für ein schlechtes Modell.
Abbildung: Das Cumulative Accuracy Profile (CAP) zur Bewertung der Qualität eines Modells im Maschinenlernen – Schritt 2
Wenn Sie die Qualität eines Modells quantifizieren möchten, dann wird dies standardmäßig so berechnet, dass die Fläche zwischen dem zu bewertenden Modell und der Vorhersagekraft bei zufälliger Auswahl berechnet wird, und diese Fläche wird ins Verhältnis gesetzt zur Fläche zwischen der Kurve für das „perfekte Modell“ und dem zu bewertenden Modell. Dieser Wert lässt sich über statistische Programme ermitteln.
Mit Abschluss von Teil 3 sind ca. 43% des Kurses absolviert!
Hier geht’s zum Kursteil 4. Darin geht es um die Clusterbildung bzw. um die Identifikation von Strukturen bzw. Segmente in den Daten, die sich mithilfe von Verfahren wie K-Means Clustering und Hierarchical Clustering identifizieren lassen.