Trainieren eines Machine Learning-Modells

Abgeschlossen

Beim Trainieren eines Machine Learning-Modells wird ein Algorithmus für maschinelles Lernen an Ihre Trainingsdaten angepasst, um eine ausreichend genaue Funktion zu ermitteln, die auf die Features angewendet werden kann und die entsprechenden Beschriftungen berechnet. Dies mag vom Konzept her einfach erscheinen, aber das eigentliche Training eines Modells, das auch für neue Daten – und nicht nur für die Daten, mit denen es trainiert wurde – genaue Vorhersagen liefert, kann eine Herausforderung darstellen und erfordert einen iterativen Ansatz, bei dem das Modell mit verschiedenen Algorithmen und Parametern immer wieder neu trainiert und bewertet wird.

Trainings- und Validierungsdaten

Ein gängiger Ansatz beim Training eines Machine Learning-Modells ist die zufällige Aufteilung der Daten in Teilmengen für Training und Validierung. Mit diesem Trainingsdataset können Sie dann einen Algorithmus anpassen und ein Modell trainieren. Anschließend können Sie testen, wie gut das Modell mit den zurückgehaltenen Validierungsdaten funktioniert. Auf diese Weise wird sichergestellt, dass das Model ausreichend generalisiert ist – anders ausgedrückt, dass es auch genaue Vorhersagen für neue Daten liefert, für die es nicht trainiert wurde.

Hinweis

Modelle, die zwar für die Daten gute Vorhersagen liefern, für die sie trainiert wurden, aber bei neuen Daten nicht gut funktionieren, werden als überangepasst an die Trainingsdaten bezeichnet.

In der Regel sollten Sie das Modell mit etwa 70 % der Daten trainieren und etwa 30 % für die Validierung zurückhalten.

Algorithmen für maschinelles Lernen

Es gibt viele Machine Learning-Algorithmen, die je nach Art des zu lösenden Problems in verschiedene Algorithmentypen unterteilt sind. Die meisten Machine Learning-Frameworks umfassen mehrere Algorithmen für Regression und Klassifizierung sowie Algorithmen für Probleme aus dem Bereich des unüberwachten maschinellen Lernens, z. B. für das Clustering.

Nachdem Sie die Art des Problems identifiziert haben, für das Sie ein Modell erstellen möchten, können Sie aus mehreren Algorithmen dieses Typs wählen. Innerhalb jedes Typs können mehrere Algorithmen zur Auswahl stehen, die häufig auf verschiedenen Arten von mathematischen Operationen basieren. In der Gruppe der Algorithmen zur Klassifizierung gibt es beispielsweise Algorithmen der folgenden Art:

  • Algorithmen für die logistische Regression wenden iterativ logistische Funktionen an, um einen Wert zwischen 0 und 1 zu berechnen. Dieser Wert repräsentiert die Wahrscheinlichkeit für jede mögliche Klasse und optimiert die Funktionskoeffizienten basierend auf den Unterschieden zwischen der vorhergesagten Klasse und dem tatsächlich bekannten Beschriftungswert.
  • Strukturbasierte Funktionen definieren einen Entscheidungsbaum, in dem ein einzelnes Feature betrachtet wird. Basierend auf seinem Wert wird ein anderes Feature betrachtet, und so weiter, bis eine passende Klassenbeschriftung ermittelt wurde.
  • Ensemblealgorithen kombinieren mehrere Techniken, um die optimale Gesamtvorhersagefunktion zu finden.

Der „beste“ Algorithmus hängt von Ihren Daten ab und muss in der Regel durch wiederholtes Ausprobieren ermittelt werden.

Hyperparameter

Die Parameter eines Machine Learning-Algorithmus sind die Datenfeatures (und Beschriftungen), für die er trainiert wird. Zusätzlich stellen die meisten Machine Learning-Algorithmen Hyperparameter bereit, mit denen Sie die Arbeitsweise des Algorithmus beeinflussen können. Mit Hyperparametern können Sie Aspekte wie den Grad der Zufälligkeit, den Sie im Modell zulassen möchten (um eine gute Generalisierung zu erreichen und dennoch akzeptabel genaue Vorhersagen zu treffen), die Anzahl der durchgeführten Iterationen, um ein optimales Modell zu finden (zur Vermeidung einer Überanpassung und zur Optimierung der Trainingszeit), die Anzahl der berücksichtigten Zweige in einem Strukturmodell und weitere für den Algorithmus spezifische Faktoren steuern.

Anpassen eines Modells

Für das eigentliche Training eines Modells müssen Sie den Algorithmus an die Daten anpassen. Die spezifische Syntax und die dazu verwendeten Datenformate können in den verschiedenen Machine Learning-Frameworks variieren, aber das Prinzip ist immer dasselbe. Beim überwachten maschinellen Lernen passen Sie den Algorithmus basierend auf den bekannten Beschriftungen an die Features an. Beim unüberwachten maschinellen Lernen stellen Sie die Features bereit, und der Algorithmus versucht, diese in diskrete Cluster aufzuteilen.

Der Code im folgenden Beispiel wird verwendet, um das Training eines logistischen Regressionsmodells mit dem Spark MLlib-Framework zu starten. Die Trainingsdaten werden als Datenframe bereitgestellt, in dem die Beschriftungen in einer Spalte mit ganzzahligen Werten enthalten sind und die entsprechenden Features als ein einzelner Vektor (Array) von Werten dargestellt werden. In diesem Beispiel wurden auch zwei Hyperparameter (maxIter und regParam) angegeben.

from pyspark.ml.classification import LogisticRegression

lr = LogisticRegression(labelCol="label", featuresCol="features", maxIter=10, regParam=0.3)
model = lr.fit(training_df)