Über die Autoren
Sebastian Raschka erlangte seinen Doktortitel an der Michigan State University. Er befasst sich vornehmlich mit Fragen der Berechnung biologischer Phänomene und des Machine Learnings. Im Sommer 2018 wurde er Assistant Professor für Statistik an der University of Wisconsin-Madison. Bei seiner Forschungsarbeit geht es insbesondere um die Entwicklung neuer Deep-Learning-Architekturen zum Lösen von Aufgaben im Fachgebiet Biometrie.
Er verfügt über jahrelange Erfahrung in der Python-Programmierung und leitete mehrere Seminare über praktische Data-Science-Anwendungen, Machine Learning und Deep Learning, unter anderem eine Einführung in Machine Learning auf der SciPy-Konferenz, der maßgeblichen Veranstaltung für wissenschaftliche Anwendungen in Python.
Er ist Autor des viel verkauften Buches Python Machine Learning, das 2016 mit dem Preis ACM Computing Reviews Best of ausgezeichnet und in viele Sprachen übersetzt wurde, unter anderem Deutsch, Koreanisch, Chinesisch, Japanisch, Russisch, Polnisch und Italienisch.
In seiner Freizeit leistet Sebastian aktiv Beiträge zu Open-Source-Projekten und die von ihm implementierten Verfahren werden erfolgreich in Mustererkennungswettbewerben wie z.B. Kaggle eingesetzt.
Ich möchte diese Gelegenheit nutzen, der großartigen Python-Community und den Entwicklern der Open-Source-Pakete meinen Dank auszusprechen, die mir dabei geholfen haben, die perfekte Umgebung für wissenschaftliche Forschung und Data Science einzurichten. Außerdem möchte ich meinen Eltern danken, die mich bei all meinen beruflichen Zielen, die ich so leidenschaftlich verfolgt habe, stets ermutigt und unterstützt haben.
Mein besonderer Dank gilt den Hauptentwicklern von scikit-learn und TensorFlow. Als jemand, der selbst aktiv an diesem Projekt beteiligt war, hatte ich das Vergnügen, mit tollen Leuten zusammenarbeiten zu dürfen, die sich nicht nur mit Machine Learning und Deep Learning auskennen, sondern auch hervorragende Programmierer sind.
Vahid Mirjalili erlangte seinen Doktortitel als Maschinenbauingenieur an der Michigan State University mit einer Arbeit über neue Verfahren für Computersimulationen molekularer Strukturen. Er interessiert sich leidenschaftlich für Machine Learning und trat dem iProBe-Lab der Michigan State University bei, wo er Anwendungen des Machine Learnings in verschiedenen Computer-Vision-Projekten (»maschinelles Sehen«) erforschte. Nach mehreren produktiven Jahren am iProBe-Lab und in der Forschung ist Vahid Mirjalili seit Kurzem beim Unternehmen 3M als Forscher tätig, wo er seine Kenntnisse einsetzen kann, um moderne Machine-Learning- und Deep-Learning-Verfahren auf Aufgabenstellungen aus der Praxis anzuwenden.
Ich möchte meiner Frau Taban Eslami danken, die mich während meiner Laufbahn stets unterstützt und ermutigt hat. Besonderer Dank gebührt meinen Mentoren Nikolai Priezjev, Michael Feig und Arun Ross, die mich während des Doktorats unterstützt haben, sowie meinen Professoren Vishnu Boddeti, Leslie Kuhn und Xiaoming Liu, die mich so vieles gelehrt haben und mich ermutigten, meiner Leidenschaft zu folgen.
Über die Korrektoren
Raghav Bali ist als leitender Data Scientist bei einem der weltweit größten Unternehmen im Gesundheitswesen tätig. Er erforscht und entwickelt für im Gesundheits- oder Versicherungswesen tätige Unternehmen Lösungen, die auf Machine Learning, Deep Learning und der Verarbeitung natürlicher Sprache beruhen. Davor hat er sich bei Intel damit befasst, datengetriebene IT-Lösungen zu ermöglichen, die Deep Learning, die Verarbeitung natürlicher Sprache und klassische statistische Verfahren nutzen. Bei American Express war er auch im Finanzwesen tätig und hat digitale Lösungen für die Kundenbindung entwickelt.
Raghav Bali hat mehrere Bücher bei bedeutenden Verlagen veröffentlicht. Das letzte befasst sich mit den in der Erforschung des Transfer Learnings jüngst erzielten Fortschritten.
Raghav Bali verfügt über einen Master in Informationstechnologie des International Institute of Information Technology (Bangalore). Er liest gerne und ist ein Fotonarr, wenn er nicht gerade damit beschäftigt ist, Aufgaben zu lösen.
Motaz Saad hat einen Doktor in Informatik der University of Lorraine. Er liebt Daten und mag es sehr, mit ihnen zu experimentieren. Er beschäftigt sich seit mehr als zehn Jahren mit der Verarbeitung natürlicher Sprache, Computerlinguistik, Data Science und Machine Learning. Derzeit ist er als Assistant Professor am Fachbereich Informationstechnologie der Islamischen Universität Gaza tätig.
Über den Fachkorrektor der deutschen Ausgabe
Friedhelm Schwenker ist Privatdozent für Informatik (Fachgebiet: Machine Learning) an der Universität Ulm. Er hat im Bereich der Angewandten Mathematik promoviert und ist seit vielen Jahren im Bereich Machine Learning in Forschung und Lehre tätig. Seine Forschungsgebiete sind Pattern Recognition, Data Mining und Machine Learning mit Schwerpunkt Neuronale Netze. In jüngster Zeit befasst er sich auch mit Anwendungen des Machine Learning im Affective Computing. Er ist Editor von 19 Proceedingsbänden und Special Issues sowie Autor von 200+ Journal- und Konferenzartikeln.
Einleitung
Aus den Nachrichten und den sozialen Medien ist Ihnen vermutlich bekannt, dass das Machine Learning zu einer der spannendsten Technologien der heutigen Zeit geworden ist. Große Unternehmen wie Google, Facebook, Apple, Amazon, IBM und viele andere investieren aus gutem Grund kräftig in die Erforschung des Machine Learnings und dessen Anwendung. Auch wenn man manchmal den Eindruck bekommt, dass »Machine Learning« als leeres Schlagwort gebraucht wird, handelt es sich doch zweifellos nicht um eine Modeerscheinung. Dieses spannende Fachgebiet eröffnet viele neue Möglichkeiten und ist im Alltag schon nicht mehr wegzudenken. Denken Sie an die virtuellen Assistenten von Smartphones, Produktempfehlungen für Kunden in Onlineshops, das Verhindern von Kreditkartenbetrug, Spamfilter in E-Mail-Programmen oder die Erkennung und Diagnose von Krankheitssymptomen – die Liste ließe sich beliebig lang fortsetzen.
Einstieg in Machine Learning
Wenn Sie zu einem Praktiker des Machine Learnings und einem besseren Problemlöser werden möchten oder vielleicht sogar eine Laufbahn in der Erforschung des Machine Learnings anstreben, dann ist dies das richtige Buch für Sie. Für einen Neuling können die dem Machine Learning zugrunde liegenden theoretischen Konzepte zunächst einmal erdrückend wirken. In den vergangenen Jahren sind aber viele praxisorientierte Bücher mit leistungsfähigen Lernalgorithmen erschienen, die Ihnen den Start erleichtern.
Theorie und Praxis
Die Verwendung praxisorientierter Codebeispiele dient einem wichtigen Zweck: Konkrete Beispiele verdeutlichen die allgemeinen Konzepte, indem das Erlernte unmittelbar in die Tat umgesetzt wird. Allerdings darf man dabei nicht vergessen, dass mit großer Macht auch immer große Verantwortung einhergeht! Neben der unmittelbaren Erfahrung, Machine Learning mithilfe der Programmiersprache Python und auf Python beruhenden Lernbibliotheken in die Tat umzusetzen, stellt das Buch auch die den Machine-Learning-Algorithmen zugrunde liegenden mathematischen Konzepte vor, die für den erfolgreichen Einsatz von Machine Learning unverzichtbar sind. Das Buch ist also kein rein praktisch orientiertes Werk, sondern ein Buch, das die erforderlichen Details der Konzepte des Machine Learnings erörtert, die Funktionsweise von Lernalgorithmen und ihre Verwendung verständlich, aber dennoch informativ erklärt und – was noch wichtiger ist – das zeigt, wie man die häufigsten Fehler vermeidet.
Warum Python?
Bevor wir uns eingehender mit Machine Learning befassen, müssen wir die wichtigste Frage beantworten: Warum Python? Die Antwort ist ganz einfach: Python ist leistungsfähig, aber dennoch sehr leicht erlernbar. Python ist auf dem Gebiet der Data Science zur verbreitetsten Programmiersprache geworden, weil sie es uns ermöglicht, die lästigen Aspekte des Programmierens zu vergessen, und eine Umgebung bereitstellt, in der wir unsere Ideen schnell umsetzen und Konzepte direkt zur Anwendung bringen können.
Erkundung des Fachgebiets Machine Learning
Wenn Sie bei Google Scholar den Suchbegriff machine learning eingeben, erhalten Sie als Resultat eine riesige Zahl (ca. 3.250.000) von Treffern. Nun können wir in diesem Buch natürlich nicht sämtliche Einzelheiten der in den letzten 60 Jahren entwickelten Algorithmen und Anwendungen erörtern. Wir werden uns jedoch auf eine spannende Tour begeben, die alle wichtigen Themen und Konzepte umfasst, damit Sie eine gründliche Einführung erhalten. Sollte Ihr Wissensdurst auch nach der Lektüre noch nicht gestillt sein, steht Ihnen eine Vielzahl weiterer hilfreicher Ressourcen zur Verfügung, die Sie nutzen können, um die entscheidenden Fortschritte auf diesem Fachgebiet zu verfolgen.
Wir, die Autoren, können aus eigener Erfahrung sagen, dass wir durch die Beschäftigung mit dem Machine Learning zu besseren Wissenschaftlern, Denkern und Problemlösern geworden sind. In diesem Buch möchten wir unsere diesbezüglichen Erkenntnisse mit Ihnen teilen. Wissen wird durch Lernen erworben, das wiederum einen gewissen Eifer erfordert, und erst Übung macht den sprichwörtlichen Meister.
Der vor Ihnen liegende Weg ist manchmal nicht ganz einfach, und einige der Themenbereiche sind deutlich schwieriger als andere, aber wir hoffen dennoch, dass Sie die Gelegenheit nutzen und sich auf den Lohn der Mühe konzentrieren. Im weiteren Verlauf des Buches werden Sie Ihrem Repertoire eine ganze Reihe leistungsfähiger Techniken hinzufügen können, die dabei helfen, auch die schwierigsten Aufgaben auf datengesteuerte Weise zu bewältigen.
An wen richtet sich das Buch?
Falls Sie sich schon ausführlich mit der Theorie des Machine Learnings beschäftigt haben, zeigt Ihnen dieses Buch, wie Sie Ihre Kenntnisse in die Praxis umsetzen können. Wenn Sie bereits entsprechende Techniken eingesetzt haben, aber deren Funktionsweise besser verstehen möchten, kommen Sie hier ebenfalls auf Ihre Kosten.
Und wenn Ihnen das Thema Machine Learning noch völlig neu ist, haben Sie umso mehr Grund, sich zu freuen, denn ich kann Ihnen versprechen, dass dieses Verfahren Ihre Denkweise über Ihre in Zukunft zu lösenden Aufgaben verändern wird – und ich möchte Ihnen zeigen, wie Sie Problemstellungen in Angriff nehmen, indem Sie die den Daten innewohnende Kraft freisetzen. Wenn Sie herausfinden möchten, wie Sie Python verwenden können, um die entscheidenden Fragen zu Ihren Daten zu beantworten, greifen Sie einfach zu diesem Buch. Ob Sie völliger Neuling sind oder Ihre Kenntnisse der Data Science vertiefen möchten: Dieses Buch ist eine unentbehrliche Informationsquelle und unbedingt lesenswert.
Zum Inhalt des Buches
Kapitel 1, Wie Computer aus Daten lernen können, führt Sie in die wichtigsten Teilbereiche des Machine Learnings ein, mit denen sich verschiedene Probleme in Angriff nehmen lassen. Darüber hinaus werden die grundlegenden Schritte beim Entwurf eines typischen Machine-Learning-Modells erörtert, auf die wir in den nachfolgenden Kapiteln zurückgreifen.
Kapitel 2, Lernalgorithmen für die Klassifikation trainieren, geht zurück zu den Anfängen des Machine Learnings und stellt binäre Perzeptron-Klassifizierer und adaptive lineare Neuronen vor. Dieses Kapitel ist eine behutsame Einführung in die Grundlagen der Klassifikation von Mustern und konzentriert sich auf das Zusammenspiel von Optimierungsalgorithmen und Machine Learning.
Kapitel 3, Machine-Learning-Klassifikatoren mit scikit-learn verwenden, beschreibt die wichtigsten Klassifikationsalgorithmen des Machine Learnings und stellt praktische Beispiele vor. Dabei kommt eine der beliebtesten und verständlichsten Open-Source-Bibliotheken für Machine Learning zum Einsatz: scikit-learn.
Kapitel 4, Gut geeignete Trainingsdatenmengen: Datenvorverarbeitung, erläutert die Handhabung der gängigsten Probleme unverarbeiteter Datenmengen, wie z.B. fehlende Daten. Außerdem werden verschiedene Ansätze zur Ermittlung der informativsten Merkmale einer Datenmenge vorgestellt. Des Weiteren erfahren Sie, wie sich Variablen unterschiedlichen Typs als geeignete Eingabe für Lernalgorithmen einsetzen lassen.
Kapitel 5, Datenkomprimierung durch Dimensionsreduktion, beschreibt ein wichtiges Verfahren zur Reduzierung der Merkmalsanzahl eines Datenbestands durch Aufteilung in kleinere Mengen unter Beibehaltung eines Großteils der nützlichsten und charakteristischsten Informationen. Hier wird der Standardansatz zur Dimensionsreduktion durch die Analyse der Hauptkomponenten erläutert und mit überwachten und nichtlinearen Transformationsverfahren verglichen.
Kapitel 6, Bewährte Verfahren zur Modellbewertung und Hyperparameter-Optimierung, erörtert die Einschätzung der Aussagekraft von Vorhersagemodellen. Darüber hinaus kommen verschiedene Bewertungskriterien der Modelle sowie Verfahren zur Feinabstimmung der Lernalgorithmen zur Sprache.
Kapitel 7, Kombination verschiedener Modelle für das Ensemble Learning, führt Sie in die verschiedenen Konzepte zur effektiven Kombination diverser Lernalgorithmen ein. Sie erfahren, wie Sie Ensembles einrichten, um die Schwächen einzelner Klassifizierer zu überwinden, was genauere und verlässlichere Vorhersagen liefert.
Kapitel 8, Machine Learning zur Analyse von Stimmungslagen nutzen, erläutert die grundlegenden Schritte zur Transformierung von Textdaten in eine für Lernalgorithmen sinnvolle Form, um so die Meinung von Menschen anhand der von ihnen verfassten Texte vorherzusagen.
Kapitel 9, Einbettung eines Machine-Learning-Modells in eine Webanwendung, führt vor, wie Sie das Lernmodell des vorangehenden Kapitels Schritt für Schritt in eine Webanwendung einbetten können.
Kapitel 10, Vorhersage stetiger Zielvariablen durch Regressionsanalyse, erörtert grundlegende Verfahren zur Modellierung linearer Beziehungen zwischen Zielvariablen und Regressanden, um auch stetige Werte vorhersagen zu können. Nach der Vorstellung der linearen Modelle kommen auch Polynom-Regression und baumbasierte Ansätze zur Sprache.
Kapitel 11, Verwendung von Daten ohne Label: Clusteranalyse, konzentriert sich auf einen anderen Teilbereich des Machine Learnings, nämlich auf das unüberwachte Lernen. Wir werden drei unterschiedlichen Familien von Clustering-Algorithmen zugehörige Verfahren anwenden, um Objektgruppen aufzuspüren, die einen gewissen Ähnlichkeitsgrad aufweisen.
Kapitel 12, Implementierung eines künstlichen neuronalen Netzes, erweitert das in Kapitel 2 vorgestellte Konzept der Gradient-basierten Optimierung, um leistungsfähige, mehrschichtige neuronale Netze in Python zu erstellen, die auf dem verbreiteten Backpropagation-Algorithmus beruhen.
Kapitel 13, Parallelisierung des Trainings neuronaler Netze mit TensorFlow, baut auf den in den vorausgehenden Kapiteln erworbenen Kenntnissen auf, um Ihnen einen praxisorientierten Leitfaden für ein effizienteres Training neuronaler Netze (NN) an die Hand zu geben. Der Schwerpunkt dieses Kapitels liegt dabei auf TensorFlow 2.0, einer quelloffenen Python-Bibliothek, die die Verwendung mehrerer Kerne moderner Grafikprozessoren (GPUs) ermöglicht und die es gestattet, mithilfe von Bausteinen der benutzerfreundlichen Keras-API tiefe NN zu erstellen.
Kapitel 14, Die Funktionsweise von TensorFlow im Detail, stellt die fortgeschritteneren Konzepte und Funktionalitäten von TensorFlow 2.0 vor. TensorFlow ist eine äußert umfassende und ausgeklügelte Bibliothek. Dieses Kapitel betrachtet die grundlegenden Konzepte des Kompilierens von Code zu statischen Graphen zwecks schnellerer Berechnung und der Definition trainierbarer Modellparameter. Darüber hinaus kommen Themen wie das Trainieren tiefer NN mithilfe von TensorFlows Keras-API sowie die vorgefertigten Schätzer zur Sprache.
Kapitel 15, Bildklassifikation mit Deep Convolutional Neural Networks, stellt neuronale Netzarchitekturen vor, die bei maschinellem Sehen und der Bilderkennung aufgrund der gegenüber klassischen Ansätzen überlegenen Leistung zu einem neuen Standard geworden sind, nämlich konvolutionale neuronale Netze (Convolutional Neural Networks, CNN). Dieses Kapitel zeigt, wie man Faltungsschichten als Merkmalsextraktoren zur Klassifikation von Bildern verwenden kann.
Kapitel 16, Modellierung sequenzieller Daten durch rekurrente neuronale Netze, stellt eine weitere verbreitete neuronale Netzarchitektur für Deep Learning vor, die besonders gut für die Verarbeitung von Text, anderen sequenziellen Daten und Zeitreihen geeignet ist. In diesem Kapitel werden wir verschiedene rekurrente neuronale Netzarchitekturen auf Textdaten anwenden. Als Aufwärmübung betrachten wir zunächst eine Stimmungsanalyse von Filmbewertungen. Anschließend wird erörtert, wie ein rekurrentes NN anhand der Informationen aus Büchern völlig neue Texte erzeugen kann.
Kapitel 17, Synthetisieren neuer Daten mit Generative Adversarial Networks, stellt eine verbreitete Form eines NN vor, das dazu verwendet werden kann, neue, realistisch wirkende Bilder zu erzeugen. Das Kapitel enthält zunächst eine kurze Einführung in Autoencoder, einen bestimmten Typ eines NN, das zur Datenkomprimierung verwendet werden kann. Anschließend wird erläutert, wie man den Decoder-Teil eines Autoencoders mit einem zweiten NN kombiniert, das zwischen echten und erzeugten Bildern unterscheiden kann. Indem Sie zwei NN miteinander wetteifern lassen, werden Sie ein GAN (Generative Adversarial Network) implementieren, das neue Bilder von scheinbar handgeschriebenen Ziffern erzeugen kann. Nachdem die grundlegenden Konzepte von GAN vorgestellt wurden, endet das Kapitel mit einer Beschreibung von Verfahren, die das Training von GAN stabilisieren können, wie beispielsweise die Verwendung der Wasserstein-Metrik als Distanzmaß.
Kapitel 18, Entscheidungsfindung in komplexen Umgebungen per Reinforcement Learning, beschreibt ein Teilgebiet des Machine Learnings, das typischerweise beim Trainieren von Robotern und anderen autonomen System zum Einsatz kommt. Das Kapitel enthält zunächst eine Einführung in Reinforcement Learning (RL), damit Ihnen die Interaktionen von Agenten und Umgebungen, Belohnungssysteme und das Konzept, aus Erfahrungen zu lernen, vertraut sind. Das Kapitel stellt die beiden Hauptkategorien des RL vor, nämlich modellbasierte und modellfreie RL-Systeme. Nachdem Sie grundlegende Ansätze für Algorithmen kennengelernt haben, wie Monte-Carlo-Verfahren und Temporal-Difference-Algorithmen, werden Sie einen Agenten implementieren und trainieren, der sich mithilfe eines Q-Learning-Algorithmus in einer Grid-World-Umgebung bewegt. Abschließend wird ein Deep-Q-Learning-Algorithmus vorgestellt, der eine Variante des Q-Learnings unter Verwendung tiefer NN ist.
Was Sie benötigen
Zum Ausführen der Codebeispiele ist die Python-Version 3.7.0 oder neuer auf macOS, Linux oder Microsoft Windows erforderlich. Wir werden häufig von Python-Bibliotheken Gebrauch machen, die für wissenschaftliche Berechnungen unverzichtbar sind, z.B. von SciPy, NumPy, scikit-learn, Matplotlib und pandas.
Im ersten Kapitel finden Sie Hinweise und Tipps zur Einrichtung Ihrer Python-Umgebung und dieser elementaren Bibliotheken. In den verschiedenen Kapiteln werden wir dann der Python-Umgebung weitere Bibliotheken hinzufügen: die NLTK-Bibliothek für die Verarbeitung natürlicher Sprache (Kapitel 8), das Web-Framework Flask (Kapitel 9) und schließlich TensorFlow, um neuronale Netze effizient auf GPUs zu trainieren (Kapitel 13 bis 18).
Codebeispiele herunterladen
Die Codebeispiele können Sie auf GitHub unter https://github.com/rasbt/python-machine-learningbook-3rd-edition oder über die Verlagsseite http://www.mitp.de/0213 herunterladen. Dort sind auch farbige Abbildungen zu finden.
Konventionen im Buch
In diesem Buch werden verschiedene Textarten verwendet, um zwischen Informationen unterschiedlicher Art zu unterscheiden. Nachstehend finden Sie einige Beispiele und deren Bedeutungen.
Schlüsselwörter oder Code werden im Fließtext wie folgt dargestellt:
»Ein bereits installiertes Paket kann mit der Option --upgrade
aktualisiert werden.«
Codeblöcke sehen so aus:
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> y = df.iloc[0:100, 4].values
>>> y = np.where(y == 'Iris-setosa', -1, 1)
>>> X = df.iloc[0:100, [0, 2]].values
>>> plt.scatter(X[:50, 0], X[:50, 1],
... color='red', marker='x', label='setosa')
>>> plt.scatter(X[50:100, 0], X[50:100, 1],
... color='blue', marker='o', label='versicolor')
>>> plt.xlabel('Länge des Kelchblatts')
>>> plt.ylabel('Länge des Blütenblatts')
>>> plt.legend(loc='upper left')
>>> plt.show()
Benutzereingaben oder Ausgaben auf der Kommandozeile werden in nicht proportionaler Schrift gedruckt:
> dot -Tpng tree.dot -o tree.png
Neue Ausdrücke und wichtige Begriffe werden kursiv gedruckt. Auf dem Bildschirm auswählbare oder anklickbare Bezeichnungen, wie z.B. Menüpunkte oder Schaltflächen, werden in der Schriftart Kapitälchen gedruckt: »Nach einem Klick auf die Schaltfläche Abbrechen in der unteren rechten Ecke wird der Vorgang abgebrochen.«
Warnungen oder Hinweise erscheinen in einem Kasten wie diesem.
Und so werden Tipps und Tricks dargestellt.
Kapitel 1:
Wie Computer aus Daten lernen können
Unserer Ansicht nach ist das Machine Learning (maschinelles Lernen), die Anwendung und Wissenschaft von Algorithmen, die den Sinn von Daten erkennen können, das spannendste Forschungsfeld der Informatik! Wir leben in einem Zeitalter, in dem Daten im Überfluss vorhanden sind – und mit den selbstlernenden Algorithmen des Machine Learnings können wir diese Daten in Wissen verwandeln. Dank der vielen in den letzten Jahren entwickelten Open-Source-Bibliotheken ist jetzt der richtige Zeitpunkt gekommen, um sich eingehend mit dem Thema Machine Learning zu befassen und zu erfahren, wie leistungsfähige Algorithmen dafür eingesetzt werden können, Muster in den Daten zu erkennen und Vorhersagen über zukünftige Ereignisse zu treffen.
In diesem Kapitel werden wir die grundlegenden Konzepte und verschiedene Arten des Machine Learnings erörtern. Mit einer Einführung in die relevante Terminologie schaffen wir die Grundlage dafür, Verfahren des Machine Learnings erfolgreich zum Lösen von Aufgaben in der Praxis einzusetzen.
Dieses Kapitel hat folgende Themen zum Inhalt:
Allgemeine Konzepte des Machine Learnings
Die drei Arten des Machine Learnings und grundlegende Begriffe
Die Bausteine des erfolgreichen Designs von Lernsystemen
Installation von Python und Einrichtung einer für die Analyse von Daten und Machine Learning geeigneten Umgebung
1.1 Intelligente Maschinen, die Daten in Wissen verwandeln
In diesem Zeitalter der modernen Technologie steht eine Ressource im Überfluss zur Verfügung: große Mengen von strukturierten und unstrukturierten Daten. In der zweiten Hälfte des 20. Jahrhunderts hat sich das Machine Learning als eine Teildisziplin der Artificial Intelligence (künstliche Intelligenz, KI) herausgebildet, bei der es um die Entwicklung selbstlernender Algorithmen geht, die Erkenntnisse aus Daten extrahieren, um bestimmte Vorhersagen treffen zu können. Das Erfordernis menschlichen Eingreifens zur manuellen Ableitung von Regeln und der Entwicklung von Modellen anhand der Analyse großer Datenmengen erübrigt sich damit mehr und mehr, denn das Machine-Learning-Verfahren bietet eine effiziente Alternative zur Erfassung des in den Daten enthaltenen Wissens – die zudem die auf diesen Daten basierende Entscheidungsfindung sowie die Aussagekraft von Vorhersagemodellen zusehends verbessert.
Dieses Verfahren wird nicht nur in der Forschung immer wichtiger, es spielt auch im Alltag eine zunehmend größere Rolle: Dank des Machine Learnings erfreuen wir uns stabiler E-Mail-Spamfilter, praktischer Text- und Spracherkennungssoftware, verlässlicher Suchmaschinen, kaum zu schlagender Schachcomputer und hoffentlich bald auch sicherer selbstfahrender Autos. Auch bei medizinischen Anwendungen hat es bemerkenswerte Fortschritte gegeben. So haben Forscher beispielsweise demonstriert, dass Deep-Learning-Modelle Hautkrebs fast so gut wie Menschen erkennen können (https://www.nature.com/articles/nature21056). Bei DeepMind haben Forscher kürzlich einen weiteren Meilenstein erreicht. Sie konnten mithilfe von Deep Learning die dreidimensionale Struktur von Proteinen vorhersagen und haben dabei erstmals bessere Ergebnisse als mit physikalischen Ansätzen erzielt (https://deepmind.com/blog/alphafold/).
1.2 Die drei Arten des Machine Learnings
In diesem Abschnitt werden wir die drei verschiedenen Gattungen des Machine Learnings betrachten: überwachtes Lernen, unüberwachtes Lernen und Reinforcement Learning. Sie werden erfahren, welche grundlegenden Unterschiede es zwischen diesen drei Varianten gibt und anhand von Beispielen allmählich ein Gespür dafür entwickeln, auf welche praktischen Aufgabenstellungen sie sich anwenden lassen:
1.2.1 Mit überwachtem Lernen Vorhersagen treffen
Das Hauptziel des überwachten Lernens ist, ein Modell anhand mit Labels gekennzeichneter Trainingsdaten zu erlernen, um so Voraussagen über unbekannte oder zukünftige Daten treffen zu können. Der Begriff »überwacht« bezieht sich hier auf Trainingsdaten (Eingabedaten), die bereits mit den bekannten erwünschten Ausgabewerten (Bezeichnungen/Labels) gekennzeichnet sind.
Betrachten wir als Beispiel das Filtern von E-Mail-Spam. Wir können einen überwachten Lernalgorithmus mit einer Sammlung von als Spam oder Nicht-Spam gekennzeichneten E-Mails »trainieren«, um dann vorherzusagen, zu welcher dieser Klassen eine neue E-Mail gehört. Eine solche Einteilung in bestimmte Klassen wird als Klassifikation bezeichnet. Eine weitere Unterkategorie des überwachten Lernens ist die Regression, bei der die Ausgabewerte im Gegensatz zur Klassifikation stetig sind.
Klassifikation: Vorhersage der Klassenbezeichnungen
Die Klassifikation ist eine Unterkategorie des überwachten Lernens, die es zum Ziel hat, anhand vorhergehender Beobachtungen die kategorialen Klassen neuer Instanzen vorherzusagen. Die Bezeichnungen dieser Klassen sind eindeutige, ungeordnete Werte, die als Gruppenzugehörigkeit der Instanzen aufgefasst werden können. Die soeben erwähnte E-Mail-Spamerkennung stellt ein typisches Beispiel für eine binäre Klassifikation dar, denn der Algorithmus erlernt Regeln, um zwischen zwei möglichen Klassen zu unterscheiden: Spam oder Nicht-Spam.
Die folgende Abbildung illustriert das Konzept einer binären Klassifikation, die mit 30 Beispielen trainiert wird, von denen 15 als negative Klasse (Minuszeichen) und weitere 15 als positive Klasse (Pluszeichen) gekennzeichnet sind. Die Datenmenge ist in diesem Szenario zweidimensional: Jedem Beispiel sind die beiden Werte x1 und x2 zugeordnet. Nun können wir dem überwachten Lernalgorithmus eine Regel beibringen: Die durch eine gestrichelte Linie dargestellte Grenze trennt die beiden Klassen voneinander und ermöglicht es, neue Daten anhand der Werte von x1 und x2 einer der beiden Klassen zuzuordnen.
Die Anzahl der Klassenbezeichnungen muss allerdings nicht auf zwei beschränkt sein. Das von einem überwachten Lernalgorithmus erlernte Vorhersagemodell kann einer neuen, noch nicht mit Label gekennzeichneten Instanz jede Bezeichnung zuordnen, die in den Trainingsdaten vorkommt.
Ein typisches Beispiel für solch eine Multiklassen-Klassifikation ist die Handschrifterkennung. Hier könnten wir eine Trainingsdatenmenge zusammenstellen, die aus mehreren handgeschriebenen Beispielen aller Buchstaben des Alphabets besteht. Die Buchstaben (»A«, »B«, »C« usw.) repräsentieren die verschiedenen Kategorien oder Klassenbezeichnungen, die wir vorhersagen möchten. Wenn dann ein Anwender über ein Eingabegerät einen neuen Buchstaben angibt, wäre unser Vorhersagemodell in der Lage, diesen mit einer gewissen Zuverlässigkeit zu erkennen. Das System wäre allerdings nicht imstande, irgendeine der Ziffern von null bis neun zu erkennen, sofern diese nicht ebenfalls Bestandteil der Trainingsdaten waren.
Regression: Vorhersage stetiger Ergebnisse
Im vorangegangenen Abschnitt haben wir festgestellt, dass es die Aufgabe einer Klassifikation ist, Instanzen kategoriale, ungeordnete Klassenbezeichnungen zuzuordnen. Ein zweiter Typ des überwachten Lernens ist die Vorhersage stetiger Ergebnisse, die auch als Regressionsanalyse bezeichnet wird. Hierbei sind verschiedene unabhängige oder erklärende Variablen sowie eine stetige Zielvariable (Ergebnis) vorgegeben und wir versuchen, eine Beziehung zwischen diesen Variablen zu finden, um Ergebnisse vorhersagen zu können.
Beachten Sie hier, dass die erklärenden Variablen beim Machine Learning oft als »Merkmale« oder »Features« und die Ergebnisse als »Zielvariablen« bezeichnet werden. Wir werden diese Begriffe ebenfalls verwenden.
Nehmen wir beispielsweise an, dass wir die von Schülern bei einer Matheprüfung erreichten Punktzahlen prognostizieren möchten. Sofern es einen Zusammenhang zwischen der mit dem Üben für die Prüfung verbrachten Zeit und den erzielten Punktzahlen gibt, könnten wir daraus Trainingsdaten für ein Modell herleiten, das anhand der aufgewendeten Übungszeit die Punktzahlen von Schülern voraussagt, die die Prüfung in Zukunft ebenfalls abzulegen beabsichtigen.
Der Begriff Regression wurde schon 1886 von Francis Galton in einem Artikel mit dem Titel Regression Towards Mediocrity in Hereditary Stature geprägt. Galton beschrieb darin das Phänomen, dass sich bei der Bevölkerung die mittlere Abweichung von der durchschnittlichen Körpergröße im Laufe der Zeit nicht vergrößert.
Er beobachtete, dass die Körpergröße der Eltern nicht an die Kinder vererbt wird, vielmehr nähert sich die Größe der Kinder dem Durchschnittswert an.
Die folgende Abbildung illustriert das Konzept der linearen Regression. Bei vorgegebener unabhängiger Variablen x und abhängiger Variablen y passen wir eine Gerade so an die Daten an, dass ein Maß für den Abstand der Geraden von den Beispielwerten (üblicherweise der Mittelwert der quadrierten Differenzen) minimal wird. Nun können wir den aus den Daten ermittelten Schnittpunkt mit der y-Achse sowie die Steigung der Geraden verwenden, um das Ergebnis für neue Werte vorherzusagen.
1.2.2 Interaktive Aufgaben durch Reinforcement Learning lösen
Die dritte Variante des Machine Learnings ist das Reinforcement Learning. Hier besteht die Zielsetzung darin, ein System zu entwickeln (den Agenten), das seine Leistung durch Interaktionen mit seiner Umgebung verbessert. Zu den Informationen über den aktuellen Zustand der Umgebung gehört typischerweise ein sogenanntes Belohnungssignal, daher ist das Reinforcement Learning in gewisser Weise mit dem überwachten Lernen verwandt. Allerdings handelt es sich bei diesem Feedback nicht um die korrekte Klassenbezeichnung oder den richtigen Wert, sondern um eine Bewertung dafür, wie gut die Aktion war, dies wird durch eine Belohnungsfunktion festgelegt. Der Agent kann so über Interaktionen mit seiner Umgebung durch Reinforcement Learning erkennen, welche Aktionen besonders gut belohnt werden. Das kann durch schlichtes Ausprobieren (Versuch und Irrtum) oder durch bewusste Planung geschehen.
Ein schönes Beispiel für Reinforcement Learning ist ein Schachcomputer. Hier bewertet der Agent nach einer Reihe von Zügen die Stellung auf dem Schachbrett (die Umgebung), und die Belohnung kann am Ende des Spiels als Sieg oder Niederlage definiert werden.
Es gibt eine Vielzahl verschiedener Unterarten des Reinforcement Learnings. Im Allgemeinen versucht der Agent jedoch, die Belohnung durch eine Reihe von Interaktionen mit der Umgebung zu maximieren. Jedem Zustand kann eine positive (oder negative) Belohnung zugeordnet werden, und diese Belohnung kann dadurch definiert werden, dass ein Gesamtziel erreicht wird, wie z.B. das Gewinnen oder das Verlieren einer Schachpartie. Beim Schachspiel kann etwa das Ergebnis eines jeden Spielzugs als ein anderer Zustand der Umgebung aufgefasst werden.
Um beim Schach zu bleiben: Stellen Sie sich das Erreichen bestimmter Stellungen auf dem Schachbrett als positives Ereignis vor, das es wahrscheinlicher macht, das Spiel zu gewinnen – beispielsweise das Schlagen einer gegnerischen Spielfigur oder das Bedrohen der Dame. Andere Stellungen wiederum werden als negativ erachtet, beispielsweise wenn eine der eigenen Spielfiguren beim nächsten Zug geschlagen werden kann. Nun erfolgt die Belohnung (positive beim Gewinnen und negative beim Verlieren) beim Schach natürlich erst am Ende des Spiels. Darüber hinaus hängt die Belohnung auch davon ab, wie der Gegner spielt. Er könnte beispielsweise die Dame opfern, das Spiel aber trotzdem gewinnen. Das Reinforcement Learning versucht, eine Reihe von Aktionen zu erlernen, die die Belohnung insgesamt maximieren – entweder durch eine sofortige Belohnung nach einem Zug, oder aber durch eine verzögerte Belohnung.
1.2.3 Durch unüberwachtes Lernen verborgene Strukturen erkennen
Beim überwachten Lernen ist die richtige Antwort beim Trainieren des Modells bereits im Vorhinein bekannt, und beim Reinforcement Learning definieren wir eine Bewertung oder Belohnung für bestimmte Aktionen des Agenten. Beim unüberwachten Lernen hingegen haben wir es mit nicht mit Label gekennzeichneten Daten oder mit Daten unbekannter Struktur zu tun. Durch die beim unüberwachten Lernen eingesetzten Verfahren sind wir in der Lage, die Struktur der Daten zu erkunden, um sinnvolle Informationen daraus zu extrahieren, ohne dass es Hinweise auf eine Zielvariable oder eine Belohnungsfunktion gibt.
Bestimmung von Untergruppen durch Clustering
Clustering ist ein exploratives Datenanalyseverfahren, das es uns gestattet, Informationen in sinnvolle Untergruppen (Cluster) aufzuteilen, ohne vorherige Kenntnisse über die Gruppenzugehörigkeit dieser Informationen zu besitzen. Jeder bei der Analyse auftretende Cluster definiert eine Gruppe von Objekten, die bestimmte Eigenschaften gemeinsam haben, sich aber von Objekten in anderen Gruppen hinreichend unterscheiden. Deshalb wird das Clustering manchmal auch als unüberwachte Klassifikation bezeichnet. Es ist ausgezeichnet geeignet, um Informationen zu strukturieren und sinnvolle Beziehungen zwischen den Daten abzuleiten. Beispielsweise ermöglicht es Marketingfachleuten, Kunden anhand ihrer Interessen in Gruppen einzuordnen, um gezielte Kampagnen zu entwickeln.
Die folgende Abbildung illustriert, wie man das Clustering-Verfahren zur Organisation nicht mit Label gekennzeichneter Daten in drei verschiedene Gruppen verwenden kann, die jeweils ähnliche Merkmale x1 und x2 aufweisen.
Datenkomprimierung durch Dimensionsreduktion
Die Dimensionsreduktion ist eine weitere Teildisziplin des unüberwachten Lernens. Wir haben es des Öfteren mit Daten hoher Dimensionalität zu tun (jede Beobachtung besteht aus einer Vielzahl von Messwerten), was aufgrund der für die Lernalgorithmen geltenden Beschränkungen von Speicherplatz und Rechenleistung eine Herausforderung darstellen kann. Bei der Vorverarbeitung von Merkmalen wird häufig eine unüberwachte Dimensionsreduktion eingesetzt, um die Daten von sogenanntem »Rauschen« zu befreien. Dies kann allerdings zu einer Abschwächung der Aussagekraft bestimmter Vorhersagealgorithmen führen. Die Daten werden in kleinere Unterräume geringerer Dimensionalität aufgeteilt, wobei der Großteil der relevanten Informationen erhalten bleibt.
In manchen Fällen ist die Dimensionsreduktion auch für die Visualisierung der Daten nützlich. Beispielsweise können hochdimensionale Merkmalsmengen auf ein-, zwei- oder dreidimensionale Merkmalsräume projiziert werden, um sie als 3-D- oder 2-D-Streudiagramme bzw. -Histogramme darzustellen. Die Abbildung zeigt ein Beispiel, in dem eine nichtlineare Dimensionsreduktion auf eine 3-D-Punktmenge in Form einer Biskuitrolle angewendet wurde, um sie in einen zweidimensionalen Merkmalsraum zu transformieren.
1.3 Grundlegende Terminologie und Notation
Nachdem wir nun die drei Arten des Machine Learnings – überwachtes und unüberwachtes Lernen sowie Reinforcement Learning – erörtert haben, werden wir als Nächstes die grundlegenden Begriffe klären, die in den folgenden Kapiteln Verwendung finden. Der folgende Abschnitt erläutert die Begriffe, die für die Beschreibung der verschiedenen Aspekte einer Datenmenge verwendet werden, sowie die mathematische Notation, die zur präzisen Beschreibung zum Einsatz kommt.
Da Machine Learning ein so umfassendes und interdisziplinäres Fachgebiet ist, werden Sie früher oder später mit Sicherheit vielen verschiedenen Begriffen begegnen, die ein und dasselbe Konzept beschreiben. Im zweiten der nachfolgenden Abschnitte sind die am häufigsten verwendeten Begriffe aufgeführt, die sich in der Literatur zum Thema Machine Learning finden. Sie erweisen sich bei der weiteren Lektüre vielleicht als nützlich.
1.3.1 Im Buch verwendete Notation und Konventionen
Die folgende Abbildung zeigt einen Auszug der Iris-Datensammlung, einem klassischen Beispiel für den Bereich des Machine Learnings. Dabei handelt es sich um Messdaten von 150 Schwertlilien dreier verschiedener Arten: Iris setosa, Iris versicolor und Iris virginica. Jedes der Blumenexemplare wird in dieser Datensammlung durch eine Zeile repräsentiert. In den einzelnen Spalten stehen die in Zentimetern angegebenen Messdaten, die wir auch als Merkmale der Datenmenge bezeichnen.
Um die Notation und Implementierung einfach, aber dennoch effizient zu halten, nutzen wir die Grundlagen der linearen Algebra. In den nachfolgenden Kapiteln verwenden wir die Matrizen- und Vektornotation zur Beschreibung der Daten. Wir folgen der üblichen Konvention, dass jedes Objekt durch eine Zeile in der Merkmalsmatrix X repräsentiert und jedes Merkmal als eigene Spalte gespeichert wird.
Die Iris-Datensammlung besteht aus 150 Datensätzen mit jeweils vier Merkmalen und kann somit als 150×4-Matrix geschrieben werden:
Ab jetzt verwenden wir ein hochgestelltes i
und ein tiefgestelltes j
, um auf das i-te Trainingsobjekt bzw. die j-te Dimension der Trainingsdatenmenge zu verweisen.
Wir notieren Vektoren als fett gedruckte Kleinbuchstaben und Matrizen als fett gedruckte Großbuchstaben. Um auf einzelne Elemente eines Vektors oder einer Matrix zu verweisen, werden kursive Buchstaben benutzt ( bzw. ).
Beispielsweise verweist auf die erste Dimension des Blumenexemplars 150, die Länge des Kelchblatts. Jede Zeile der Merkmalsmatrix repräsentiert ein Blumenexemplar und kann als vierdimensionaler Zeilenvektor geschrieben werden, z.B.:
Jede Merkmalsdimension ist ein 150-dimensionaler Spaltenvektor :
Die Zielvariablen (hier die Klassenbezeichnungen) werden ebenfalls als 150-dimensionale Spaltenvektoren notiert:
1.3.2 Terminologie
Wie erwähnt ist Machine Learning ein weites Feld und ausgeprägt interdisziplinär, denn es bringt Forscher aus den verschiedensten Fachgebieten zusammen. Viele Konzepte und Begriffe wurden neu entdeckt oder umdefiniert oder sind Ihnen vielleicht schon unter einem anderen Namen bekannt. In der folgenden Liste finden Sie eine Auswahl gebräuchlicher Begriffe und ihrer Synonyme, die sich bei der Lektüre dieses Buches oder anderer Bücher über Machine Learning vielleicht als nützlich erweisen.
Trainingsbeispiel: Eine Zeile in einer Tabelle, die eine Datenmenge repräsentiert. Der Begriff ist gleichbedeutend mit Beobachtung, Datensatz, Instanz oder Stichprobe (mit einer Stichprobe sind für gewöhnlich mehrere Trainingsbeispiele gemeint).
Training: Anpassung des Modells; bei parametrischen Modellen entspricht das einer Parameterschätzung.
Merkmal, kurz x: Eine Spalte in einer Datentabelle oder einer Datenmatrix. Synonyme: Feature, unabhängige Variable, Eingabe, Attribut oder Kovariate.
Ziel, kurz y: Synonyme: Ergebnis, Ausgabe, Antwort-/Ausgabevariable, abhängige Variable oder (Klassen-)Label oder (Klassen-)Bezeichnung
Verlustfunktion: Kurz Verlust, wird manchmal als Synonym für Kostenfunktion bzw. Straffunktion gebraucht. Mitunter wird sie auch als Error- oder Fehlerfunktion bezeichnet (nicht zu verwechseln mit der gaußschen Fehlerfunktion). Der Begriff »Verlust« bezieht sich auf den Verlust, der für einen einzelnen Datenpunkt ermittelt wird. Die Kosten hingegen sind ein Maß für den Verlust der gesamten Datenmenge (gemittelt oder summiert).
1.4 Entwicklung eines Systems für das Machine Learning
In den vorangegangenen Abschnitten haben wir die grundlegenden Konzepte des Machine Learnings und die drei verschiedenen Arten des Lernens erörtert. In diesem Abschnitt befassen wir uns mit weiteren wichtigen Bestandteilen eines Systems für dieses Verfahren, die den Lernalgorithmus begleiten. Das folgende Diagramm zeigt den typischen Ablauf, der beim Machine Learning in Vorhersagemodellen zum Einsatz kommt, die wir in den folgenden Abschnitten betrachten werden.
1.4.1 Vorverarbeitung: Daten in Form bringen
Rohdaten liegen nur selten in einer für die optimale Leistung eines Lernalgorithmus erforderlichen Form vor, deshalb ist die Vorverarbeitung der Daten bei jedem Lernalgorithmus von entscheidender Bedeutung.
Im Fall der Iris-Datensammlung aus dem vorangegangenen Abschnitt könnten die Rohdaten beispielsweise als eine Reihe von Fotos der Blumenexemplare vorliegen, denen wir sinnvolle Merkmale entnehmen möchten. Das könnten etwa Grundfarbe und Tönung sowie Höhe, Länge und Breite der Pflanzen sein.
Bei vielen Lernalgorithmen ist es außerdem erforderlich, dass die ausgewählten Merkmale irgendwie normiert sind (hier müssten die Pflanzen im selben Maßstab dargestellt sein), um ein optimales Ergebnis zu erzielen. Dies wird oftmals dadurch erreicht, dass die ausgewählten Merkmale auf ein Intervall [0,1]
oder eine Standardnormalverteilung (Mittelwert 0 und Standardabweichung 1) abgebildet werden, wie Sie in den nachfolgenden Kapiteln noch sehen werden.
Manche der ausgewählten Merkmale könnten hochgradig korreliert und daher in gewissem Maße redundant sein. In diesen Fällen sind Verfahren zur Dimensionsreduktion nützlich, um die Merkmale auf einen Merkmalsraum geringer Dimensionalität abzubilden. Die Dimensionsreduktion des Merkmalraums hat die Vorteile, dass weniger Speicherplatz benötigt wird und der Lernalgorithmus erheblich schneller arbeitet. In manchen Fällen kann eine Dimensionsreduktion auch die Vorhersagekraft eines Modells verbessern, nämlich wenn die Datenmenge eine große Anzahl irrelevanter Merkmale (Rauschen) aufweist, das heißt, dass sie ein niedriges Signal-zu-Rausch-Verhältnis besitzt.
Um festzustellen, ob ein Lernalgorithmus nicht nur die Trainingsdaten ordentlich verarbeitet, sondern auch mit neuen Daten gut zurechtkommt, ist es sinnvoll, den Datenbestand nach dem Zufallsprinzip in separate Trainings- und Testdatenmengen aufzuteilen: Zum Trainieren und Optimieren des Lernmodells verwenden wir die Trainingsdatenmenge, während wir die Testdatenmenge bis zum Schluss zurückhalten, um das endgültige Modell bewerten zu können.
1.4.2 Trainieren und Auswählen eines Vorhersagemodells
Wie Sie in den nachfolgenden Kapiteln noch sehen werden, sind viele verschiedene Lernalgorithmen entwickelt worden, mit denen die unterschiedlichsten Aufgabenstellungen erledigt werden können. An dieser Stelle ist es allerdings wichtig festzuhalten, dass das Lernen nicht umsonst zu haben ist – so in etwa könnte man David Wolperts berühmte »No Free Lunch«-Theoreme zusammenfassen (The Lack of A Priori Distinctions Between Learning Algorithms, D.H. Wolpert 1996; No Free Lunch Theorems for Optimization, D.H. Wolpert und W.G. Macready, 1997). Noch besser lässt sich dieses Konzept anhand eines berühmten Zitats veranschaulichen: »Wenn das einzige verfügbare Werkzeug ein Hammer ist, dürfte es verlockend sein, alles wie einen Nagel zu behandeln.« (Abraham Maslow, 1966). Beispielsweise sind alle Klassifikationsalgorithmen in irgendeiner Weise voreingenommen und kein Klassifikationsmodell ist anderen überlegen, wenn man nicht bestimmte Annahmen über die Aufgabenstellung macht. In der Praxis ist es daher von entscheidender Bedeutung, wenigstens eine Handvoll verschiedener Algorithmen zu vergleichen, um das am besten funktionierende Modell zu trainieren und auszuwählen. Aber um Vergleiche zwischen verschiedenen Modellen anstellen zu können, müssen zunächst einmal Bewertungskriterien festgelegt werden. Ein gebräuchliches Kriterium ist die Korrektklassifikationsrate (kurz: Klassifikationsrate, engl. accuracy, ACC) des Modells, die als Anteil der korrekten Klassifikationen definiert ist.
Nun stellt sich natürlich die Frage: Wie kann man wissen, welches Modell mit den Testdaten und den »echten« Daten gut funktioniert, wenn man sie nicht bei der Auswahl des Modells verwendet, sondern bis zur Bewertung des endgültigen Modells zurückhält? Um das mit dieser Frage verbundene Problem zu lösen, können verschiedene Kreuzvalidierungsverfahren eingesetzt werden, bei denen die Trainingsdatenmenge weiter in Trainings- und Validierungsteilmengen aufgeteilt wird, um die Generalisierungsfähigkeit des Modells abzuschätzen. Und schließlich dürfen wir auch nicht erwarten, dass die Standardparameter der Lernalgorithmen verschiedener Softwarebibliotheken für unsere spezielle Aufgabenstellung optimiert sind. Daher werden wir in den noch folgenden Kapiteln häufig Gebrauch von Verfahren zur Hyperparameter-Optimierung machen, um die Leistung unseres Modells feiner abzustimmen.
Man kann sich diese Hyperparameter als Parameter vorstellen, die nicht anhand der Daten ermittelt werden, sondern als Einstellungsmöglichkeiten zur Verbesserung der Leistung, was sehr viel klarer werden wird, wenn wir uns in den folgenden Kapiteln einige dazu passende Beispiele ansehen.
1.4.3 Bewertung von Modellen und Vorhersage anhand unbekannter Dateninstanzen
Nach der Auswahl eines an die Trainingsdaten angepassten Modells können wir die Testdatenmenge verwenden, um zu ermitteln, wie gut es mit diesen unbekannten Daten bei der Schätzung des Generalisierungsfehlers zurechtkommt. Sofern die Leistung des Modells zufriedenstellend ausfällt, können wir es verwenden, um anhand neuer, zukünftiger Daten Vorhersagen zu treffen. Hier muss angemerkt werden, dass die Parameter der vorhin erwähnten Verfahren (wie die Skalierung der Merkmalsdarstellungen oder die Dimensionsreduktion) ausschließlich anhand der Trainingsdatenmenge ermittelt werden. Dieselben Parameter werden später auch auf die Testdatenmenge und neue Daten angewendet – ansonsten könnte die bei den Testdaten gemessene Leistung zu optimistisch sein.