TL;DRDieser Artikel beschreibt Prinzipien, die dem Data Scientist helfen, Fehler zu vermeiden und schneller zuverlässige Ergebnisse zu erhalten. Dazu wird ein allgemeiner Prozess des automatischen Lernens beschrieben und die häufigsten Fehler analysiert und Lösungsmöglichkeiten aufgezeigt.
Getrieben von der Verfügbarkeit immer größerer Datenmengen und den sinkenden Kosten für die Speicherung und Verarbeitung von Daten wird künstliche Intelligenz für Unternehmen immer praktischer. Sie stellen Datenwissenschaftler ein, die mithilfe von maschinellem Lernen Muster in Daten entdecken und Modelle trainieren, um Vorhersagen über zukünftiges Verhalten zu treffen. Häufig werden (vermeidbare) Fehler gemacht, die das Projektteam viel Zeit und Geld kosten können.
1. Eindeutige Messmetrik oder „das richtige Ziel treffen“
Um effizient zu arbeiten, ist es wichtig, von Anfang an ein klares Ziel vor Augen zu haben. Dazu muss das Problem abgegrenzt werden und es muss grundsätzlich klar sein, ob es sich um ein Klassifikations- oder ein Regressionsproblem handelt. Die verfügbaren Daten müssen dann explorativ gesichtet und auf ihre Eignung zur Lösung des Problems hin analysiert werden.
Nachdem das Problem beschrieben und die Daten analysiert wurden, wird die zu optimierende Zielvariable definiert. Bei Klassifizierungsproblemen ist es üblich, die Vorhersagegenauigkeit zu maximieren. Bei Regressionen wird die Abweichung in der Regel minimiert. Was zunächst sehr intuitiv erscheint, kann schnell recht kompliziert werden, wie das folgende Beispiel zeigt:
lass uns einen sehenAufzeichnung von Kreditkartentransaktionen., die zu 1 % aus Betrug und zu 99 % aus normalen Transaktionen bestehen. Wenn Sie nun Genauigkeit (also den Anteil der korrekt klassifizierten Transaktionen) als Zielgröße definieren, erreichen Sie bereits eine Genauigkeit von 99 %, wenn Sie den gesamten Datensatz als normale Transaktionen einstufen, aber Sie haben keinen einzigen Betrugsfall identifiziert. Problem- und Zielgröße passen hier nicht zusammen.
(Video) Strategie für das Testen von maschinellem Lernen: Wie man Overfitting vermeidet
Deshalb ist die Definition von Zielen für eine klare und strukturierte Projektumsetzung so wichtig. Je präziser das Ziel definiert ist, desto weniger Zeit sollte später für das Wiederholen von Schleifen aufgewendet werden. Stellt sich hingegen erst bei der Umsetzung des Projekts heraus, dass falsche Annahmen getroffen wurden, kann es sein, dass bereits geleistete Arbeit vergeblich war.
2. Datenvorverarbeitung oder „Garbage In, Garbage Out“
60-80 % der Arbeit beim maschinellen Lernen entfällt auf die Datenvorverarbeitung. Wenn das Modell mit schlechtem Input trainiert wird, werden auch die Ergebnisse schlecht sein. Dieses Prinzip heißtMüll rein Müll raus. Hier betrachten wir zwei typische Beispiele für die Datenvorverarbeitung: den Umgang mit fehlenden Werten und kategorialen Variablen.
Gehen Sie mit fehlenden Werten um
Viele Algorithmen können mit fehlenden Werten im Datensatz nicht umgehen. Es gibt zwei Hauptwerkzeuge, um mit diesem Problem umzugehen:
Abreißenbezeichnet dasZeilen entfernenmit fehlenden Werten. Da durch diese schnelle Lösung natürlich Informationen verloren gehen, muss darauf geachtet werden, dass der Datensatz groß genug ist. Wenn es andererseits nur wenige Zeilen gibt, ist es sehr wahrscheinlich, dass jede gelöschte Zeile, die nicht mehr für das Training verfügbar ist, auch die Leistung des Modells verringert.
Zurechnungbezeichnet dasErgänzen Sie die fehlenden Werte, zum Beispiel mit dem Mittelwert der Spalte. Es ist auch denkbar, ein Modell darauf zu trainieren, fehlende Werte vorherzusagen. Hier müssen Sie sicherstellen, dass keine falschen oder unerwünschten Informationen und Muster in die Daten eingefügt werden.
Umgang mit kategorialen Variablen
Bei kategorialen Variablen wird zwischen ordinalen und nominalen Daten unterschieden. Ordinale Daten haben einen Rang (z. B. gut, am besten, am besten), der beibehalten werden muss, während nominale Daten (z. B. männlich/weiblich) dies nicht tun. Damit das Modell mit kategorialen Werten arbeiten kann, müssen diese codiert werden.
(Video) AWS re:Invent 2021 – Keynote with Dr. Werner Vogels
Die Standardkodierung für Nenndaten wird aufgerufenOne-Hot-Codierung. Für jede Kategorie wird eine separate Spalte erstellt. Wenn ein Beispiel in eine Kategorie fällt, steht in der entsprechenden Spalte eine 1, alle anderen Kategorien enthalten eine 0.
Es ist zu beachten, dass Sie keine Anrufe eingeben könnenDummy-VariablenfalleKarriere. Dadurch lässt sich der Inhalt einer Spalte perfekt von den Inhalten anderer Spalten ableiten. Dies führt bei vielen Algorithmen zu Leistungseinbußen, kann jedoch leicht vermieden werden, indem eine der Kategorien aus den Daten entfernt wird. Daher reicht eine weibliche Kolumne aus, um die klassischen Genres zu kodieren.
Ordinale Daten können auch als Zahlen codiert werden. Bei AnrufLabel-CodierungAnders als beim One-Hot-Encoding werden jedoch keine zusätzlichen Spalten erstellt und die Art vorhandener Werte bleibt erhalten. Daher werden die Merkmale „gut – besser – besser“ mit „0 – 1 – 2“ kodiert.
3. Datenaufteilung
Trainings-, Validierungs- und Testdaten
Bei der Entwicklung eines Machine-Learning-Modells werden Daten in Trainings-, Validierungs- und Testsätze aufgeteilt („train and test split“). Diese dienen unterschiedlichen Zwecken:
Trainingsdaten:Das Dataset, auf dem ein Modell trainiert werden soll. Es überprüft, ob das Modell die Muster in den Daten darstellen kann.
(Video) Google Ads Search│Building Your First Campaign (2022)
Validierungsdaten:Der Datensatz zur Auswertung und Optimierung. Meistens ist es ein separater Teil der Trainingsdaten. Es wird verifiziert, dass das Modell gut verallgemeinert und keine „overfitting“-Probleme aufweist.
Prüfungstermine:Der Datensatz für die abschließende Bewertung. Es überprüft, ob das Modell die richtigen Vorhersagen für nie zuvor gesehene Daten trifft.
NEINTeilungsverhältnisdes Datensatzes spielt die verfügbare Datenmenge eine besonders wichtige Rolle. Während traditionell ein 80/20-Split auf Trainings- und Testdaten erfolgt, gilt in Zeiten von Big Data: Je mehr Daten vorhanden sind, desto höher sollte der Anteil des Trainingssets sein.
Beispiel für Datenlecks bei unausgeglichener Klassenverteilung
Dies ist wahrscheinlich der häufigste Fehler, der beim Splitten auftrittInformationsleck(“Data Leakage”) von Validierungs- und Testdaten zu Trainingsdaten. Dadurch stehen bereits während des Trainings Informationen zur Verfügung, die bei der späteren Verwendung des Modells zur Vorhersage nicht zur Verfügung stehen.
Bei einer einseitigen Klassenverteilung, wie im obigen Kreditkartenbeispiel (1% Betrug gegen 99% normal), werden oft sogenannte Stichprobenverfahren eingesetzt, um eine gleichmäßige Verteilung zu erhalten (z.B.SMOTEN). Geschieht dies über den gesamten Datensatz, sind die Holdout-Dateninformationen bereits bekannt, wenn das Modell trainiert wird. Das führt zu vermeintlich besseren Ergebnissen und viel vergeblicher Arbeit, da der Fehler erst später bei der Auswertung des finalen Modells auffällt.
Stattdessen muss die Probenahme separat erfolgen. Hier ist die Verwendung von Frames hilfreich. Dies ist beispielhaft in der folgenden Abbildung dargestellt: Anstatt den gesamten Trainingsdatensatz zu sampeln, wird dieser zunächst in Trainings- und Validierungsdaten aufgeteilt. Das Sampling wird nur auf die neuen Trainingsdaten angewendet und ein Modell wird darauf trainiert. Die Holdout-Daten hingegen repräsentieren immer noch die wahre Verteilung der Daten.
Machine Learning Classification in Python – Part 1 | rocket loop (Video) How I Would Learn Python (if I had to start over) • A Roadmap for 2023
4. Modelloptimierung durch Kreuzvalidierung
Die im obigen Stichprobenbeispiel gezeigte Methode zum Partitionieren der Daten in mehrere Trainings- und Validierungssätze wird aufgerufenKreuzvalidierung(“K-fache Kreuzvalidierung”). Die Daten werden in K gleiche Teile geteilt und jeder Teil wird einmal zur Validierung verwendet, während das Modell mit den verbleibenden Teilen trainiert wird. K steht für eine beliebige Zahl, normalerweise zwischen 5 und 10.
Modelle für maschinelles Lernen haben auch viele StellschraubenHyperparameteraufgerufen, die Sie aktivieren können, um Trainings- und damit Vorhersageergebnisse zu beeinflussen. Mit zunehmender Anzahl von Hyperparametern steigt auch der Zeitaufwand für die Optimierung der Modelle. Also, zuerst müssen Sie sich überlegen, an welchen Schrauben Sie drehen wollen. Am Ende wird die beste Kombination von Hyperparametern als diejenige angesehen, die den höchsten Durchschnittswert unter allen Trainings- und Validierungsrunden erreicht, die durch Kreuzvalidierung durchgeführt wurden.
Damit die verschiedenen Modelle vergleichbar bleiben, ist es sinnvoll, die verschiedenen Hyperparameter in Variablen zu speichern. Werden sie hingegen für jedes Modell separat angegeben, treten schnell Fehler auf, wodurch die Optimierungsergebnisse verschiedener Modelle nicht mehr vergleichbar sind.
5. Bau einer Gaspipeline
In den vorherigen Abschnitten wurden die Fallstricke der Vorverarbeitung und des Slicing von Daten sowie des Trainierens und Optimierens eines Modells erörtert. Aber was ist, wenn Sie einen Fehler erhalten oder andere Modelle auf die gleiche Weise trainieren möchten? herkommenRohrleitungenim Spiel.
Eine Pipeline fasst einzelne Projektschritte zusammen und gruppiert sie zu einem Durchlauf. Damit steht eine Design-Infrastruktur zur Verfügung, mit der unterschiedliche Modelle vergleichbar trainiert und optimiert werden können. Treten später Fehler auf, müssen diese nur an einer Stelle korrigiert werden, nicht an mehreren Modellen.
(Video) The Building Blocks for Self-Driving PostgreSQL | Citus Con: An Event for Postgres 2022 Keynote
Pipelines sind also eine großartige Möglichkeit, die Arbeit eines Datenwissenschaftlers zu beschleunigen und leichter reproduzierbare Ergebnisse zu erhalten.
Zusammenfassung
Der Artikel beschreibt fünf Punkte in einem Machine-Learning-Projekt, an denen häufig Fehler auftreten und wie diese vermieden werden können. Dazu gehören die Auswahl der Zielgröße, die Datenvorverarbeitung, die Datenaufteilung, die Modelloptimierung und die Erstellung einer Pipeline. Sie können sicherlich zu jedem Thema einen eigenen Artikel schreiben. Doch wenn Sie die hier beschriebenen Tipps befolgen, können Sie bereits bei der Durchführung des Projekts viel Zeit und Geld sparen.