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 Teil der Serie, wo die Datenaufbereitung (Data Preprocessing) für das Maschinenlernen behandelt wird: Maschinenlernen (KI) für IT Projektmanager, Project Owner: Einführung und Datenaufbereitung

Maschinenlernen / Künstliche Intelligenz – Regresssionsverfahren

Der zweite Teil des Online-Kurses stellt eine Vielzahl von mathematischen Methoden vor, um mittels linearer und nicht-linearer Regressionsverfahren Korrelationen zwischen einer Datenmatrix von Eigenschaften, hier: „Matrix of features“ (Set unabhängiger Variablen), und abhängiger Variablen herauszuarbeiten. Die Mathematik hinter den Algorithmen lässt sich etwa für die einfache, lineare Regression (Stichwort: Summe der kleinsten Quadrate) einfach nachvollziehen; für ein Verfahren wie den Entscheidungsbaum / Regressionsbaum ist die zugrunde liegende Mathematik so anspruchsvoll (Stichwort: Information entropy), dass der Kurs ausschließlich ein intuitives Verständnis vermitteln kann; wer dies vertiefen möchte, kann das selbstverständlich tun. Dieses intuitive Verständnis reicht wiederum aus, um diese Verfahren praktisch anzuwenden, im Kurs wird die Nutzung der diversen Verfahren anhand einfacher Beispiele sehr gut vermittelt.

Hinweis: Alle nachfolgenden Abbildungen sind dem Kurs selbst entnommen. Ich habe im Übrigen die (auto-generierte) deutschen Untertitel ausprobiert. Diese sind NICHT zu empfehlen – allerdings auch nicht erforderlich, da das Englisch sehr verständlich ist!

Der zweite Teil beginnt mit dem einfachsten Regressionsverfahren, nämlich der einfachen linearen Regression (Simple Linear Regression). Hier gibt es nur eine unabhängige Variable und eine abhängige Variable; diese Beobachtungspunkte lassen sich folglich einfach in einem zweidimensionalen Koordinatensystem abtragen. Die Korrelation zwischen den Daten wird über eine Gerade abgebildet (nämlich: y = Konstante + x*Koeffizient). Die Gerade wird so gelegt, dass der Abstand zu den Beobachtungspunkten minimal wird. Hierzu wendet man die Methode der kleinsten Quadrate an: Man nehme den Abstand zwischen jedem Beobachtungspunkt zur Geraden, dieser Betrag wird quadriert, dann ebendieser Wert für alle Beobachtungspunkte summiert. Es ist jene Gerade optimal, wo diese Summe minimal ist.

Maschinenlernen Regression Kleinste Quadrate MethodeAbbildung: Kleinste Quadrate Methode

Die Umsetzung in Python folgt einem für alle Regressionsmethoden vergleichbaren Schema: (a) Die erforderliche Bibliothek und Klasse wird geladen, (b) es wird ein Objekt generiert, (c) mit der Methode Fit and Transform wird der Datensatz auf das Objekt angepasst bzw. wird der mathematische Algorithmus auf den Datensatz angewandt. Bereits bei der Methode der Mehrfachen Regression (Multiple Regression, lineare Regression) ergibt sich eine Fragestellung, die eine generelle Relevanz für den Aufbau von Modellen für das Maschinenlernen besitzt. Gehen Sie etwa davon aus, dass ein Datensatz mit dem sozioökonomischen Profil für Käufer eines Produkts vorliegt, das aus 80 Eigenschaften besteht: Gehalt, Geschlecht, Wohnort, Alter, etc. Ein Datenwissenschaftler könnte nun ein Modell für das Maschinenlernen aufsetzen, in dem ALLE Eigenschaften in einem Funktion nach folgendem Schema eingebracht werden:

Maschinenlernen Mehrfache RegressionAbbildung: Mathematische Funktion für Mehrfache Regression

Wenn ich ALLE Eigenschaften in dem Modell für das Maschinelernen abbilde, dann gehe ich davon aus, dass ALLE Eigenschaften auch einen statistisch relevanten Beitrag zur Erklärung für das tatsächliche Verhalten leisten. Aber ist das der Fall? Eben dies ist eine Kernfrage für den Aufbau von guten Modellen: Welche unabhängigen Variablen sollen hierbei berücksichtigt werden?

Der Datenwissenschaftler bestimmt hierbei die statistische Relevanz jeder einzelnen Eigenschaft (jeder unabhängigen Variablen); dazu wird der sogenannte P-Wert (Englisch: P Value) herangezogen. Dieser Wert liefert die Wahrscheinlichkeit dafür, dass ein eben jene Beobachtungswerte auftreten, wenn die sogenannte Null-Hypothese gilt. Die Null-Hypothese für Modelle im Kontext des Maschinenlernens lautet: „Die unabhängige Variable hat KEINEN statistisch signifikanten Einfluss auf das Ergebnis.“ Als Entscheidungskriterium wird ein Signifikanzniveau definiert (0,05 wird standardmäßig verwendet). Wenn der P-Wert (also: die Wahrscheinlichkeit, dass bei Gültigkeit der Null-Hypothese die beobachteten Werte auftreten) ÜBER dem Signifikanzniveau liegt, dann wird die Null-Hypothese (noch) als zutreffend gewertet; wenn der P-Wert UNTER dem Signifikanzniveau liegt, dann wird die Null-Hypothese verworfen, das heißt: Es wird davon ausgegangen, dass die unabhängige Variable einen statistische relevanten Einfluss auf das Ergebnis hat (also: es besteht eine statistisch signifikante Korrelation zwischen der unabhängigen Variable und der abhängigen Variable).

Ein gängiges Verfahren für den Aufbau von Modellen für das Maschinenlernen bzw. für die Eliminierung von statistisch insignifikanten Variablen wird als Backward Elimination bezeichnet: Man startet mit einem Modell, das ALLE Variablen enthält und eliminiert Schritt-für-Schritt jene Variablen, deren P-Wert ÜBER dem Signifikanzniveau liegt (also häufig: über 0,05). Wir lernen in dem Kurs eine Bibliothek für das Maschinenlernen kennen (von SciKit), in der diese statistischen Informationen mitgeliefert werden – im nachfolgenden Screenshot in der Entwicklungsumgebung für Python, und zwar für die Mehrfache Regression; vergleiche die statistischen Angaben im Konsolenfenster (rechte Bildschirmhälfte, unten):

Maschinenlernen Modellaufbau mittels Backward EliminationScreenshot: Anzeige der statistischen Werte je unabhängiger Variablen für den Modellaufbau beim Maschinenlernen

Ebenfalls ein Regressionsverfahren, das sich hinsichtlich der mathematischen Voraussetzungen auf dem Niveau von „High School Mathematik“ bewegt, ist die Polynomische Regression (nicht-lineare Regression). Mathematisch ausgedrückt wie folgt (es handelt sich um jene Funktion, die Parabeln hervorbringt):

Maschinenlernen Polynomische RegressionAbbildung: Polynomische Formel

In dem Online-Kurs der udemy Academy lernen wir ja auch, wie sich die Ergebnisse graphisch darstellen lassen; wir generieren mit wenigen Codezeilen jene Funktionsgraphen, die eine polynomische Funktion zweiten Grades, dritten Grades, vierten Grades, undsoweiter abbilden. Es lässt sich visuell ganz einfach nachvollziehen, wie sich der Funktionsverlauf der polynomischen Funktionen immer mehr den tatsächlichen Beobachtungspunkten annähert, je mehr Grade die polynomischen Funktionen aufweisen:

Maschinenlernen Graph zu einer Polynomischen Funktion zweiten Grades Abbildung: Graph der Polynomischen Funktion zweiten Grades

Maschinenlernen Graph zu einer Polynomischen Funktion dritten Grades Abbildung: Graph der Polynomischen Funktion dritten Grades

Maschinenlernen Graph zu einer Polynomischen Funktion vierten GradesAbbildung: Graph der Polynomischen Funktion vierten Grades

Das nächste Regressionsverfahren für das Maschinenlernen geht dann allerdings über den Rahmen der High School Mathematik hinaus, die: Support Vector Regression. Der Online-Kurs von udemy Academy muss hier zwangsläufig darauf verzichten, die anspruchsvolle Mathematik hinter diesem Regressionsverfahren für das Maschinenlernen zu vermitteln – das würde schlicht den Zeitrahmen sprengen.

Maschinenlernen Korrelationsmatrix zur Support Vector RegressionAbbildung: Korrelationsmatrix zur Support Vector Regression

Was der Kurs zum Maschinenlernen allerdings leistet: Es wird ein intuitives Verständnis für das Support Vector Regressionsverfahren vermittelt. Tatsächlich reicht dies aus, um mithilfe der vorgestellten Bibliotheken zu einem Ergebnis zu kommen. Denn in einem ersten Schritt übernimmt man als Nutzer ganz einfach die Standard-Einstellungen für die diversen Parameter dieses Regressionsverfahren (vgl. im Konsolen-Fenster im nachfolgenden Screenshot die Parameter wie „epsilon=0.1“ bzw. „kernel=rbf“); wer das Arbeiten mit diesem Regressionsverfahren vertiefen möchte, kann natürlich ein tieferes Verständnis für die verschiedenen Parameter qua Internetrecherche oder mithilfe eines weiteren Kurses auf udemy Academy erarbeiten.

Maschinenlernen Aufbau Regressionsmodell in Python mit Support Vector RegressionAbbildung: Modell in Python mit Support Vector Regression

Der Kurs verfolgt insofern einen pragmatischen Ansatz für das Thema Maschinenlernen: Eine Vertiefung der mathematischen Grundlagen ist nicht immer möglich oder gar erforderlich; der Nutzer/Programmierer erhält aber ausreichend Wissen, um die Methoden des Maschinenlernens praktisch umzusetzen – dieser pragmatische Ansatz wird im weiteren Verlauf des Kurses zum Maschinenlernen beibehalten.

Ein Verfahren, das sich intuitiv sehr einfach nachvollziehen lässt (und mathematisch auf dem Konzept der Informationsentropie basiert) ist der Regressionsbaum („Regression Tree“), der methodisch zur Familie „Entscheidungsbaum“ gehört. Es lässt sich einfach am Beispiel von zwei unabhängigen Variablen (und einer abhängigen Variablen) nachvollziehen: Die Datenpunkte (oder: Beobachtungspunkte) werden in einem zweidimensionalen Koordinatensystem abgetragen:

Maschinenlernen Regressionsbaum, Datenpunkte in zweidimensionalem DatenraumAbbildung: Beobachtungspunkte in zweidimensionalem Datenraum zu Regressionsbaumverfahren beim Maschinenlernen

Mithilfe des Methode des Regressionsbaums werden nun Segmente gebildet, innerhalb derer die Datenpunkte eine hohe „Nähe“ zueinander aufweisen. Für die Qualität der Segmentierung wird mathematisch des Maß MSE: Mean Squared Error herangezogen, das Ähnlichkeit zur weiter oben diskutierten Methode der kleinsten Quadrate aufweist; das Maß MSE ist bei diesem Regressionsbaumverfahren sehr weit verbreitet.

Wichtig ist nun, dass diese Segmentierung iterativ erfolgt: Zunächst wird „Split 1“ (oder: Segmentierung 1) vorgenommen. Dann „Split 2“, undsoweiter. Aus diesem iterativen Verfahren ergibt sich schließlich der Regressionsbaum:

Maschinenlernen RegressionsbaumAbbildung: Regressionsbaum im Maschinenlernen

Ein solches Regressionsbaumverfahren ließe sich beispielsweise auf Gehaltsdaten anwenden, für den vereinfachten Fall von zwei Datendimensionen (Berufserfahrung in Jahren, Qualifikation) erhielte man etwa einen Entscheidungsbaum, der nach diversen Verästelungen folgende Segmente aufweisen könnte: „technischer Universitätsabschluss, Berufserfahrung 8 bis 15 Jahre“, „Meisterprüfung technischer Beruf, 15 bis 23 Jahre“ undsoweiter. Das Ergebnis für die abhängige Variable (für unser Beispiel: Gehalt) ist dann jeweils der Durchschnitt der abhängigen Variable für diejenigen Beobachtungspunkte, die in das zugehörige Cluster fallen. Der Regressionsbaum sieht vollständig also wie folgt aus:

Maschinenlernen Regressionsbaum mit Durchschnittswerten für abhängige VariableAbbildung: Regressionsbaum mit Durchschnittswerten für die abhängige Variable

Dieses Regressionsverfahren für das Maschinenlernen ist übrigens die erste Methode, die nicht-kontinuierlich ist. In dem udemy Academy-Online-Kurs wird (wie für jedes vorgestellte Verfahren zum Maschinenlernen) nach dem Aufbau des Modells in Python (oder R) der Funktionsgraph für die vorgestellten Beispiele generiert. Wenn man dies für den Regressionsbaum macht, erhält man folgenden Graphen:

Maschinenlernen Regressionsbaum, nicht-linear, nicht-kontinuierlichAbbildung: Nicht-lineare, nicht-kontinuierlicher Funktion beim Regressionsbaum

Hier ist unmittelbar erkennbar: Der Funktionsgraph weist die Form von Treppenstufen auf. Das lässt sich auf das Regressionsverfahren zurückführen, wo ja für alle Datenpunkte in einem Segment der Durchschnitt der abhängigen Variablen gebildet wird. Dieser Durchschnitt sorgt für den Treppen-förmigen Verlauf des Funktionsgraphen.

Das in diesem Kursteil letzte Regressionsverfahren, das vorgestellt wird, ist die sogenannte Random Forest Regression. Hier wird ein Prinzip angewandt, das im Maschinenlernen eine hohe praktische Bedeutung hat. Vereinfacht formuliert gilt nämlich: Je mehr verschiedene Verfahren des Maschinenlernens angewandt werden, desto besser die Qualität der Ergebnisse bzw. desto mehr nähert man sich einer guten Korrelation zwischen den Daten an. im Verfahren der Random Forest Regression wird dieses Prinzip in abgewandelter Form angewandt: Hier werden nicht unterschiedliche Methoden genutzt, sondern es wird das gerade vorgestellte Verfahren des Regressionsbaums in mehreren Iterationen auf die Daten angewandt. Bei jedem Iterationsverfahren wird nach dem Zufallsprinzip (Random Selection) eine Teilmenge der gesamten Daten gebildet; hierauf wird das Verfahren des Regressionsbaums angewandt. Jede Iteration liefert für die Kombination von unabhängigen Variablen (also: ein Tupel) ein Ergebnis – in der Metapher dieses Verfahrens einen „Baum“. Betrachtet man die Ergebnisse der mehrfachen Iterationen, so erhält man mehrere Bäume bzw. einen „Rain Forest“. Aus diesen Ergebnissen wird wiederum ein Durchschnitt gebildet.

Maschinenlernen / Künstliche Intelligenz – Bewertung von Modellen

Der Kursteil 2 schließt mit Überlegungen zum Aufbau von Modellen für das Maschinenlernen im Allgemeinen. Es geht vor allem um die Fragen: Wie lässt sich die Qualität von Modellen bestimmen? Hierzu wird das Bestimmtheitsmaß aus der Statistik nochmals in Erinnerung gebracht. Auch wenn der Mathematik-/Statistikunterricht eine Weile zurückliegt, lässt sich das einfach nachvollziehen: Wir haben zum einen die Summe der kleinsten Quadrate, die weiter oben bereits im Zusammenhang mit der einfachen linearen Regression vorgestellt wurde. Nach der gleichen Methode wird eine weitere Summe gebildet: Wir bilden den Durchschnitt der Werte der abhängigen Variable und quadrieren den Abstand zwischen den beobachteten Werten und diesem Durchschnitt. Wenn das einfache lineare Regressionsverfahren funktioniert hat, sollte der Abstand der Datenpunkte zur Regressionsgeraden (deutlich) kleiner sein als der Abstand zu einer Geraden, die einfach nur den Durchschnittswert anzeigt. Und genau so wird auch die Qualität des Modells ermittelt, indem man diese beiden Summen (der Quadrate) der Abstände miteinander in Beziehung setzt. Das Ergebnis: Das Bestimmtheitsmaß, in Englisch: R Squared.

Bestimmtheitsmaß, coeffizient of determinationAbbildung: Die Ermittlung des Bestimmtheitsmaßes (R squared)

Für den Datenwissenschaftler ist das Bestimmtheitsmaß für die Entwicklung von mathematischen Modellen für das Maschinenlernen allerdings wenig praktikabel, und zwar aus folgendem Grund: Auch wenn kein statistisch signifikanter Zusammenhang zwischen einer unabhängigen Variablen und einer abhängigen Variablen besteht, erhöht die Erweiterung eines mathematischen Modells um eine solche statistische insignifikante Variable das Bestimmtheitsmaß; ein mathematischer Regressionsalgorithmus findet einen wie auch immer zufälligen Zusammenhang, die unabhängige Variable wird mit einem Koeffizienten von 0,000001 im dem Modell berücksichtigt. Schlimmstenfalls (wenn es gar keinen, also nicht einmal eine rein zufällige Korrelation gibt) wird als Koeffizient „0“ gesetzt; in keinem Fall verschlechtert eine weitere unabhängige Variable ein mathematisches Modell.

Bestimmtheitsmaß, coeffizient of determination, steigend mit wachsender Anzahl von KoeffizientenAbbildung: Verbesserung des Bestimmtheitsmaßes (R squared) bei Erweiterung mathematischer Modelle

Das (einfache) Bestimmtheitsmaß taugt folglich als Maß für die Qualität eines Modells nur bedingt, es wird so im Kontext von Maschinelernen nicht genutzt. Stattdessen wir das sogenannte adjustierte Bestimmtheitsmaß („Adjusted R squared“) eingesetzt. Die Formel für das Bestimmtheitsmaß wird um einen Term erweitert, der jede mit jeder Erhöhung der Anzahl der unabhängigen Variablen im Modell das adjustierte Bestimmtheitsmaß reduziert. Es macht also nur dann Sinn, eine neue unabhängige Variable in das Modell einzubringen, wenn die Regression sich mithilfe der neuen unabhängigen Variable so verbessert, dass diese Verbesserung den Minderungseffekt aus der Erhöhung der Anzahl von Variablen überkompensiert. Heißt: Es macht nur Sinn, die statistisch signifikanten Variablen in dem Modell zu berücksichtigen.

Adjustiertes Bestimmtheitsmaß, adjusted coeffizient of determinationAbbildung: Adjustiertes Bestimmtheitsmaßes (Adjusted R squared)

Hier geht’s zum Kursteil 3, wo verschiedene Methoden des Maschinenlernens für die Klassifikation vorgestellt werden.

Sebastian Zang
Author

Der Autor ist Manager in der Softwareindustrie mit internationaler Expertise: Prokurist bei einem der großen Beratungshäuser - Verantwortung für den Aufbau eines IT Entwicklungszentrums am Offshore-Standort Bangalore - Director M&A bei einem Softwarehaus in Berlin.