Cross-Validate Model

Wichtig

Der Support für Machine Learning Studio (klassisch) endet am 31. August 2024. Es wird empfohlen, bis zu diesem Datum auf Azure Machine Learning umzustellen.

Ab dem 1. Dezember 2021 können Sie keine neuen Ressourcen in Machine Learning Studio (klassisch) mehr erstellen. Bis zum 31. August 2024 können Sie die vorhandenen Ressourcen in Machine Learning Studio (klassisch) weiterhin verwenden.

Die Dokumentation zu ML Studio (klassisch) wird nicht mehr fortgeführt und kann künftig nicht mehr aktualisiert werden.

Kreuzüberprüfung von Parameterschätzungen für Klassifizierungs- oder Regressionsmodelle durch Partitionieren der Daten

Category: Machine Learning/Evaluate

Hinweis

Gilt nur für: Machine Learning Studio (klassisch)

Ähnliche Drag & Drop-Module sind im Azure Machine Learning-Designer verfügbar.

Modulübersicht

In diesem Artikel wird beschrieben, wie Sie das Modul Cross-Validate Model in Machine Learning Studio (klassisch) verwenden. Die Kreuzvalidierung ist eine wichtige Technik, die häufig beim maschinellen Lernen verwendet wird, um gleichzeitig die Variabilität eines Datasets und die Zuverlässigkeit eines mit diesen Daten trainierten Modells zu bewerten.

Das Modul Cross-Validate Model verwendet als Eingabe ein bezeichnetes Dataset zusammen mit einem untrainierten Klassifizierungs- oder Regressionsmodell. Das Dataset wird in eine bestimmte Anzahl von Teilmengen (Folds) aufgeteilt, für jeden Fold wird ein Modell erstellt, und anschließend wird ein Satz von Genauigkeitsstatistiken für jeden Fold zurückgegeben. Durch Vergleichen der Genauigkeitsstatistik für alle Folds können Sie die Qualität des Datasets interpretieren und beurteilen, ob das Modell für Schwankungen in den Daten anfällig ist.

Bei der Kreuzvalidierung werden auch vorhergesagte Ergebnisse und Wahrscheinlichkeiten für das Dataset zurückgegeben, damit Sie die Zuverlässigkeit der Vorhersagen beurteilen können.

Funktionsweise der Kreuzvalidierung

  1. Bei der Kreuzvalidierung werden die Trainingsdaten nach dem Zufallsprinzip in eine Reihe von Partitionen aufgeteilt, die auch als Folds bezeichnet werden.

    • Der Algorithmus ist standardmäßig auf 10 Folds eingestellt, wenn Sie das Dataset zuvor nicht partitioniert haben.
    • Wenn Sie das Dataset in eine andere Anzahl von Folds aufteilen möchten, können Sie das Modul Partition and Sample verwenden und angeben, wie viele Folds verwendet werden sollen.
  2. Das Modul stellt die Daten in Fold 1 für die Validierung zurück (manchmal als Zurückhaltungsfold bezeichnet) und verwendet die verbleibenden Folds zum Trainieren eines Modells.

    Wenn Sie z. B. fünf Folds erstellen, generiert das Modul bei der Kreuzvalidierung fünf Modelle, wobei jedes Modell mit 4/5 der Daten trainiert und mit dem verbleibenden 1/5 getestet wird.

  3. Beim Testen des Modells für jeden Fold werden mehrere Genauigkeitsstatistiken ausgewertet. Welche Statistiken verwendet werden, hängt vom Typ des ausgewerteten Modells ab. Zum Auswerten von Klassifizierungsmodellen und von Regressionsmodellen werden unterschiedliche Statistiken verwendet.

  4. Wenn der Erstellungs- und Auswertungsprozess für alle Folds abgeschlossen ist, generiert das Kreuzüberprüfungsmodell eine Reihe von Leistungsmetriken und bewerteten Ergebnissen für alle Daten. Sie sollten diese Metriken überprüfen, um festzustellen, ob ein einzelner Fold eine besonders hohe oder niedrige Genauigkeit aufweist.

Vorteile der Kreuzvalidierung

Eine andere und sehr gängige Methode zum Auswerten eines Modells besteht darin, die Daten mithilfe von Split Data in einen Trainings- und Testsatz aufzuteilen und dann das Modell anhand der Trainingsdaten zu überprüfen. Die Kreuzvalidierung bietet jedoch einige Vorteile:

  • Bei der Kreuzvalidierung werden mehr Testdaten verwendet.

    Bei der Kreuzvalidierung wird die Leistung des Modells mit den angegebenen Parametern in einem größeren Datenraum gemessen. Das heißt, bei der Kreuzvalidierung wird das gesamte Trainingsdataset für Training und Auswertung verwendet und nicht nur ein Teil. Wenn Sie ein Modell dagegen mithilfe von Daten validieren, die aus einer zufälligen Unterteilung generiert werden, beruht die Auswertung des Modells in der Regel nur auf höchstens 30 % der verfügbaren Daten.

    Da jedoch bei der Kreuzvalidierung das Modell mehrmals mit einem größeren Dataset trainiert und überprüft wird, ist dieser Vorgang weitaus rechenintensiver und erfordert wesentlich mehr Zeit als die Validierung mit einer zufälligen Aufteilung.

  • Bei der Kreuzvalidierung werden sowohl das Dataset als auch das Modell ausgewertet.

    Es wird bei der Kreuzvalidierung nicht nur die Genauigkeit eines Modells gemessen, sondern auch erläutert, wie repräsentativ das Dataset ist und wie empfindlich das Modell möglicherweise gegenüber Schwankungen in den Daten ist.

Verwenden des Kreuzüberprüfungsmodells

Es gibt zwei Hauptmethoden zur Verwendung der Kreuzvalidierung.

Die Ausführung der Kreuzvalidierung kann lange dauern, wenn Sie viele Daten verwenden. Daher können Sie das Kreuzüberprüfungsmodell in der Anfangsphase des Erstellens und Testens Ihres Modells verwenden, um die Eignung der Modellparameter zu bewerten (vorausgesetzt, die Berechnungszeit ist tolerierbar), und dann das Modell mithilfe der festgelegten Parameter mit den Modulen Train Model und Evaluate Model trainieren und auswerten.

Einfache Kreuzvalidierung

In diesem Szenario trainieren und testen Sie das Modell mit Cross Validate Model.

  1. Fügen Sie Ihrem Experiment das Modul Cross Validate Model hinzu. Sie finden es in Machine Learning Studio (klassisch) in der Kategorie Machine Learning unter Auswerten.

  2. Verbinden die Ausgabe eines beliebigen Klassifizierungs- oder Regressionsmodells.

    Wenn Sie z. B. eine Bayes-Punktmaschine mit zwei Klassen für die Klassifizierung verwenden, konfigurieren Sie das Modell mit den gewünschten Parametern und ziehen dann einen Connector aus dem Port Untrained Model des Klassifizierers auf den entsprechenden Port von Cross Validate Model.

    Tipp

    Das Modell muss nicht trainiert werden, da Cross Validate Model das Modell im Rahmen der Auswertung automatisch trainiert.

  3. Verbinden Sie am Datasetport von Cross Validate Model alle bezeichneten Trainingsdatasets.

  4. Klicken Sie im Bereich Eigenschaften von Cross Validate Model auf Launch column selector (Spaltenauswahl starten), und wählen Sie die einzelne Spalte aus, die die Klassenbezeichnung oder den vorhersagbaren Wert enthält.

  5. Legen Sie einen Wert für den Parameter Zufälliger Ausgangswert fest, wenn Sie die Ergebnisse der Kreuzvalidierung über aufeinanderfolgende Ausführungen für dieselben Daten hinweg wiederholen möchten.

  6. Führen Sie das Experiment aus.

  7. Eine Beschreibung der Berichte finden Sie im Abschnitt Ergebnisse.

    Um eine Kopie des Modells zur späteren Wiederverwendung abzurufen, klicken Sie mit der rechten Maustaste auf die Ausgabe des Moduls, das den Algorithmus enthält (z. B. den Two Class Bayes Point Machine), und klicken Sie auf Als trainiertes Modell speichern.

Kreuzvalidierung mit parameter sweep

In diesem Szenario verwenden Sie Tune Model Hyperparameters , um das beste Modell zu identifizieren, indem Sie einen Parameter sweep durchführen, und dann Cross Validate Model verwenden, um seine Zuverlässigkeit zu überprüfen. Dies ist die einfachste Möglichkeit, Machine Learning das beste Modell zu identifizieren und dann Metriken dafür zu generieren.

  1. Fügen Sie das Dataset für das Modelltraining hinzu, und fügen Sie eines der Machine Learning-Module hinzu, mit denen ein Klassifizierungs- oder Regressionsmodell erstellt wird.

  2. Fügen Sie ihrem Experiment das Modul Tune Model Hyperparameters hinzu. Sie finden es in der Kategorie Machine Learning unter Trainieren.

  3. Fügen Sie die Klassifizierung oder das Regressionsmodell an die Eingabe untrainiertes Modell von Tune Model Hyperparameters an.

  4. Fügen Sie Ihrem Experiment das Modul Cross Validate Model hinzu. Sie finden es in Machine Learning Studio (klassisch) in der Kategorie Machine Learning unter Auswerten.

  5. Suchen Sie die Ausgabe des trainierten besten Modells von Tune Model Hyperparameters, und verbinden Sie sie mit der Untrained model-Eingabe von Cross Validate Model.

  6. Verbinden die Trainingsdaten an die Trainingsdataseteingabe von Cross Validate Model.

  7. Führen Sie das Experiment aus.

  8. Nachdem Sie die Ergebnisse und die Auswertungsergebnisse überprüft haben, um eine Kopie des besten Modells für die spätere Wiederverwendung zu erhalten, klicken Sie einfach mit der rechten Maustaste auf das Modul Tune Model Hyperparameters , wählen Sie Das beste Modell trainiert aus, und klicken Sie dann auf Als trainiertes Modell speichern.

Hinweis

Möglicherweise erhalten Sie andere Ergebnisse, wenn Sie die Eingabe im Modul Tune Model Hyperparameters für optionales Validierungsdataset verwenden.

Das liegt daran, dass Sie bei Verwendung dieser Option tatsächlich ein statisches Trainingsdataset und ein Testdataset angeben. Daher verwendet der Kreuzvalidierungsprozess auch die angegebenen Trainings- und Testdatasets, anstatt die Daten zum Trainieren und Testen in n Gruppen aufzuteilen. Metriken werden jedoch n-fach generiert.

Ergebnisse

Nachdem alle Iterationen abgeschlossen sind, erstellt das Kreuzüberprüfungsmodell Bewertungen für das gesamte Dataset sowie Leistungsmetriken, mit denen Sie die Qualität des Modells bewerten können.

Bewertete Ergebnisse

Die erste Ausgabe des Moduls stellt die Quelldaten für jede Zeile zusammen mit einigen vorhergesagten Werten und den zugehörigen Wahrscheinlichkeiten bereit.

Um diese Ergebnisse anzuzeigen, klicken Sie im Experiment mit der rechten Maustaste auf das Modul Cross-Validate Model , wählen Sie Bewertete Ergebnisse aus, und klicken Sie auf Visualisieren.

Neuer Spaltenname BESCHREIBUNG
Foldzuweisungen Gibt den Index des Folds beginnend bei 0 an, dem die jeweiligen Datenzeilen bei der Kreuzvalidierung zugewiesen wurden.
Scored Labels (Bewertete Bezeichnungen) Diese Spalte wird am Ende des Datasets hinzugefügt und enthält den vorhergesagten Wert für jede Zeile.
Scored Probabilities (Bewertete Wahrscheinlichkeiten) Diese Spalte wird am Ende des Datasets hinzugefügt und gibt die geschätzte Wahrscheinlichkeit des Werts in Scored Labels (Bewertete Bezeichnungen) an.

Auswertung der Ergebnisse

Der zweite Bericht wird nach Folds gruppiert. Beachten Sie, dass das Cross-Validate-Modell während der Ausführung die Trainingsdaten nach dem Zufallsprinzip in n Folds aufteilt (standardmäßig 10). Bei jeder Iteration über das Dataset verwendet das Kreuzvalidierungsmodell einen Fold als Validierungsdataset und die verbleibenden n-1 Folds, um ein Modell zu trainieren. Jedes der n Modelle wird mit den Daten in allen anderen Folds getestet.

In diesem Bericht werden die Folds nach Indexwert in aufsteigender Reihenfolge aufgelistet. Sie können die Ergebnisse als Dataset speichern, um eine andere Spalte zu ordnen.

Klicken Sie zum Anzeigen dieser Ergebnisse im Experiment mit der rechten Maustaste auf das Modul Cross-Validate Model , wählen Sie Auswertungsergebnisse nach Fold aus, und klicken Sie auf Visualisieren.

Spaltenname BESCHREIBUNG
Fold number (Foldnummer) Ein Bezeichner für jeden Fold. Wenn Sie 5 Folds erstellt haben, gibt es 5 Teilmengen von Daten, die von 0 bis 4 nummeriert sind.
Number of examples in fold (Anzahl von Beispielen im Fold) Die Anzahl der jedem Fold zugewiesenen Zeilen. Diese sollten ungefähr gleich sein.
Modell Der im Modell verwendete Algorithmus, der durch den API-Namen identifiziert wird

Darüber hinaus sind für jeden Fold die folgenden Metriken abhängig vom Typ des ausgewerteten Modells enthalten.

  • Klassifizierungsmodelle: Genauigkeit, Abruf, F-Bewertung, AUC, durchschnittlicher Protokollverlust, Trainingsprotokollverlust

  • Regressionsmodelle: Negative Protokollwahrscheinlichkeit, mittlere absoluter Fehler, durchschnittlicher quadratischer Grundfehler, relativer absoluter Fehler und Bestimmungskoeffizienten

Beispiele

Beispiele für die Verwendung der Kreuzvalidierung beim maschinellen Lernen finden Sie im Azure KI-Katalog:

Technische Hinweise

  • Es empfiehlt sich, Datasets vor der Verwendung für die Kreuzvalidierung zu normalisieren.

  • Da cross-Validate Model das Modell mehrmals trainiert und überprüft, ist es viel rechenintensiver und dauert länger, als wenn Sie das Modell mithilfe eines zufällig geteilten Datasets überprüft haben.

  • Wir empfehlen die Verwendung von Cross-Validate Model, um die Eignung des Modells anhand der angegebenen Parameter zu prüfen. Verwenden Sie Tune Model Hyperparameters , um die optimalen Parameter zu identifizieren.

  • Das Dataset muss nicht in Trainings- und Testsätze aufgeteilt werden, wenn Sie die Genauigkeit des Modells mithilfe der Kreuzvalidierung messen.

    Wenn jedoch ein Validierungsdataset upstream bereitgestellt wird, verwendet das Modul die angegebenen Trainings- und Testdatasets, anstatt es in n Folds aufzuteilen. Das heißt, das erste Dataset wird verwendet, um das Modell für jede Parameterkombination zu trainieren, und die Modelle werden für das Validierungsdataset ausgewertet. Weitere Informationen finden Sie im Abschnitt zur Verwendung eines Parameter-Sweepings mit Kreuzvalidierung.

  • Obwohl in diesem Artikel ältere Versionen der Module verwendet werden, enthält er eine gute Erläuterung des Kreuzvalidierungsprozesses: Auswählen von Parametern zum Optimieren Ihrer Algorithmen in Machine Learning

Erwartete Eingaben

Name Type BESCHREIBUNG
Untrainiertes Modell ILearner-Schnittstelle Nicht trainiertes Modell für eine Kreuzvalidierung mit dem Dataset
Dataset Datentabelle Eingabedataset

Modulparameter

Name Range type Standard Beschreibung
Bezeichnungsspalte any ColumnSelection Wählen Sie die Spalte aus, die die Beschriftung (Bezeichnung) enthält, die für die Validierung verwendet werden soll.
Random seed (Zufälliger Ausgangswert) any Integer 0 Ausgangswert für den Zufallszahlengenerator

Dieser Wert ist optional. Wenn nicht angegeben

Ausgaben

Name Type Beschreibung
Bewertete Ergebnisse Datentabelle Ergebnisse der Bewertung
Evaluation results by fold Datentabelle Die Ergebnisse der Auswertung (nach Teilmenge und gesamt)

Ausnahmen

Ausnahme Beschreibung
Fehler 0035 Eine Ausnahme tritt auf, wenn für einen bestimmten Benutzer oder ein bestimmtes Element keine Features bereitgestellt wurden.
Fehler 0032 Eine Ausnahme tritt auf, wenn das Argument keine Zahl ist.
Fehler 0033 Eine Ausnahme tritt auf, wenn das Argument „Infinity“ (Unendlich) ist.
Fehler 0001 Eine Ausnahme tritt auf, wenn eine oder mehrere angegebene Spalten des Datasets nicht gefunden werden konnten.
Fehler 0003 Eine Ausnahme tritt auf, wenn mindestens eine Eingabe NULL oder leer ist.
Fehler 0006 Eine Ausnahme tritt auf, wenn der Parameter größer als oder gleich dem bestimmten Wert ist.
Fehler 0008 Eine Ausnahme tritt auf, wenn der Parameter nicht im Bereich liegt.
Fehler 0013 Eine Ausnahme tritt auf, wenn das an das Modul übergebene Lernmodul einen ungültigen Typ aufweist.

Eine Liste der Fehler, die für Studio-Module (klassisch) spezifisch sind, finden Sie unter Machine Learning Fehlercodes.

Eine Liste der API-Ausnahmen finden Sie unter Machine Learning REST-API-Fehlercodes.

Siehe auch

Evaluieren
Evaluate Recommender
Modulliste von A bis Z