Aus dem Kurs: Machine Learning Grundlagen
Aufteilung der Daten in Trainings- und Testdaten
Aus dem Kurs: Machine Learning Grundlagen
Aufteilung der Daten in Trainings- und Testdaten
Ziel ist es, dass wir ein Modell erzeugen mithilfe von Lernen, welches uns erlaubt, möglichst akkurate Vorhersagen zu treffen für neue unbekannte Daten. Wie bereits erwähnt, gilt unser Fokus der Klassifikation als weit verbreitetes Problem für Machine-Learning-Algorithmen. Klassifikation ist eine Supervised-Learning-Technik, das heißt, der Datensatz besteht aus Daten und ihren dazu passenden Labels. Wir haben auch bereits im vorherigen Kapitel gehört, dass wir die Daten, die wir zum Lernen heranziehen, Trainingsdaten nennen. Die Idee ist, dass wir unsere Beispiele in zwei Teilmengen aufteilen: in die sogenannten Trainingsdaten und die Testdaten. Die Trainingsdaten sind Instanzen, die dazu dienen, den Lernalgorithmus zu trainieren, das heißt, ein Modell zu erlernen. Die Testdaten andererseits werden nicht zum Erlernen des Modells herangezogen, sondern dienen dazu, die Qualität des Modells zu messen. Dadurch, dass der Lernalgorithmus die Testbeispiele beim Erstellen des Modells nicht gesehen hat, kann man davon ausgehen, dass die Leistung des Modells auf den Testdaten ähnlich sein wird wie die Performance auf komplett neuen Daten, also ist eine gute Performance auf den Testdaten ein guter Indikator, dass das erlernte Modell auch in der Anwendung des Modells an neuen Datensätzen gute Ergebnisse erzielen wird. Wie gesagt handelt es sich bei den Trainingsdaten um gekennzeichnete Daten. Allerdings müssen die Testdaten auch gekennzeichnet sein, denn sonst könnten wir nicht wissen, wie erfolgreich wir auf den Testdaten klassifizieren. Ein weiterer Aspekt ist, dass Trainingsdaten und Testdaten disjunkt sind. Das heißt, eine Instanz, welche fürs Trainieren verwendet wird, kann nicht fürs Testen herangezogen werden. Dadurch ist sichergestellt, dass die Testdaten nicht zum Lernen des Modells verwendet wurden. Stellen wir uns vor, wir haben Beispiele von Hunden und Katzen samt Features und Labels zur Verfügung. Diese Beispiele teilen wir dann in einen Trainingsdatensatz und einen Testdatensatz auf. Zum Beispiel könnten wir 60 % der Daten fürs Trainieren und 40 % der Daten fürs Testen nehmen. Eine andere typische Aufteilung ist 80/20, das heißt, 80 % der Daten werden fürs Lernen des Modells verwendet und 20 % zum Evaluieren. Schauen wir, wie wir Trainings- und Testdaten in der Klassifikation verwenden. Wir können drei Phasen unterscheiden. Die Trainingsphase dient zum Erlernen des Modells, die Testing-Phase dient der Überprüfung der Qualität der Vorhersage, die Prediction-Phase ist dann die Phase, wenn das System tatsächlich verwendet wird, um reale Daten zu klassifizieren. Die Trainingsdaten werden zum Lernen des Modells verwendet. Wie wir gesehen haben im vorherigen Kapitel, bedeutet Lernen, eine Annahme zu treffen über die Entscheidungsgrenze und dann immer wieder diese Entscheidungsgrenze zu verfeinern. Daher benötigen wir bei den Daten Beispiele mit Input, also unseren Features, als auch einen Output, das heißt, welche Klassen bzw. Labels korrekt wären. Daher handelt es sich immer um kategorisierte Daten. Wie in diesem Beispiel: Hier sehen wir Trainingsbeispiele von Hunden und Katzen, wobei jedes Trainingsbeispiel auch eben ein solches Label hat. Die Trainingsdaten werden dann zum Lernen des Modells herangezogen, wobei der Machine-Learning-Algorithmus versucht, basierend auf den Beispielen, Assoziationen herzustellen, die es ihm erlauben, die korrekte Kategorie pro Datum vorherzusagen. Der Lernalgorithmus überprüft während des Lernens immer wieder selbst, um zu sehen, wie gut er schon die Beispiele kategorisieren kann bzw. wie weit er von der korrekten Klassifikation entfernt ist. Dieses Lernen aus dem Feedback über die Trainingsbeispiele ist ein iterativer Prozess, der immer wieder wiederholt wird, zum Beispiel 200.000 Mal. In der Testphase werden dann die kategorisiert Beispiele, die nicht für das Training verwendet wurden, herangezogen, um zu evaluieren, wie gut für diese Beispiele die Labels bestimmt werden können. Daher müssen die korrekten Labels vorhanden sein, damit verschiedene Metriken berechnet werden können, um die Qualität der Klassifikation quantitativ zu beschreiben. Die Testdaten werden anhand des zuvor erlernten Modells kategorisiert und basierend darauf kann eine Aussage getroffen werden, wie gut der Machine-Learning-Algorithmus funktioniert. In diesem Beispiel hier können wir sehen, dass drei von vier Tieren korrekt klassifiziert werden. Die Prediction-Phase ist die Phase, in der das System dann tatsächlich in Verwendung ist, das heißt, wo reale neue Daten klassifiziert werden müssen, zu denen keine Labels vorhanden sind. In der Prediction-Phase werden die neuen realen Daten mithilfe des Modells klassifiziert, allerdings gibt es hier keine Labels mehr zum Überprüfen, wie akkurat das Modell in Wirklichkeit ist. Daher ist es so wichtig, mit den Testdaten eine Evaluierung durchzuführen, damit auf den realen Daten in der Prediction-Phase möglichst wenige Klassifikationsfehler auftreten. Für unser Beispiel bei der Klassifikation von Katzen und Hunden wird eine falsche Vorhersage vielleicht keine schwerwiegenden Konsequenzen haben; stellen Sie sich aber nun vor, wir nutzen die Klassifikation für die Kategorisierung von Zellen als entweder gutartig oder bösartig. Unser Classifier kommt zu dem Ergebnis, dass eine Zelle gutartig ist, obwohl es sich um eine Krebszelle handelt. Diese Fehlklassifikation kann schwerwiegende Folgen haben, daher ist eine genaue Evaluierung des Modells vor der Prediction-Phase unumgänglich.
Üben mit Projektdateien
Laden Sie die Dateien herunter, die von den Trainer:innen verwendet werden. So können Sie mitlesen und durch Ansehen, Zuhören und Üben lernen.