Tune Model Hyperparameters
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.
- Siehe Migrieren zu Azure Machine Learning
- Weitere Informationen zu Azure Machine Learning.
Die Dokumentation zu ML Studio (klassisch) wird nicht mehr fortgeführt und kann künftig nicht mehr aktualisiert werden.
Führt einen Parameter-Sweep für ein Modell aus, um die optimalen Parametereinstellungen zu bestimmen
Kategorie: Machine Learning/Trainieren
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 Tune Model Hyperparameters in Machine Learning Studio (klassisch) verwenden, um die optimalen Hyperparameter für ein bestimmtes Machine Learning-Modell zu bestimmen. Das Modul erstellt und testet mehrere Modelle, wobei verschiedene Kombinationen von Einstellungen verwendet werden, und vergleicht Metriken über alle Modelle, um die Kombination der Einstellungen zu erhalten.
Die Begriffe Parameter und Hyperparameter können verwirrend sein. Die Parameter des Modells sind die Optionen, die Sie im Eigenschaftenbereich festgelegt haben. Im Wesentlichen führt dieses Modul eine Parameterbereinigung (parameter sweep) über die angegebenen Parametereinstellungen aus und lernt einen optimalen Satz von Hyperparametern, der für die jeweilige Entscheidungsstruktur, das jeweilige Dataset oder die jeweilige Regressionsmethode unterschiedlich sein kann. Der Prozess zum Finden der optimalen Konfiguration wird manchmal als Optimierung bezeichnet.
Das Modul unterstützt zwei Methoden zum Ermitteln der optimalen Einstellungen für ein Modell:
Integriertes Trainieren und Optimieren: Sie konfigurieren eine Reihe von Parametern, die verwendet werden sollen, und lassen das Modul dann mehrere Kombinationen iterieren und die Genauigkeit messen, bis es ein "bestes" Modell findet. Bei den meisten Lernmodulen können Sie wählen, welche Parameter während des Trainingsprozesses geändert werden und welche unverändert bleiben sollen.
Je nachdem, wie lange der Optimierungsprozess ausgeführt werden soll, können Sie sich entscheiden, alle Kombinationen vollständig zu testen, oder Sie könnten den Prozess verkürzen, indem Sie ein Raster mit Parameterkombinationen einrichten und eine zufällige Teilmenge des Parameterrasters testen.
Kreuzvalidierung mit Optimierung: Mit dieser Option teilen Sie Ihre Daten in eine bestimmte Anzahl von Folds auf und erstellen und testen dann Modelle für jeden Fold. Diese Methode bietet die beste Genauigkeit und kann bei der Suche nach Problemen mit dem Dataset helfen. Das Training dauert jedoch länger.
Beide Methoden generieren ein trainiertes Modell, das Sie zur erneuten Verwendung speichern können.
Zugehörige Aufgaben
Wenn Sie ein Clusteringmodell erstellen, verwenden Sie Sweep Clustering , um automatisch die optimale Anzahl von Clustern und anderen Parametern zu bestimmen.
Vor einer Optimierung sollten Sie eine Merkmalsauswahl (Featureauswahl) anwenden, um die Spalten oder Variablen zu bestimmen, die den größten Informationswert haben. Weitere Informationen finden Sie unter Feature Selection.
Konfigurieren von „Tune Model Hyperparameters“
Im Allgemeinen erfordert das Erlernen der optimalen Hyperparameter für ein bestimmtes Machine Learning-Modell umfangreiche Experimente. Dieses Modul unterstützt sowohl den anfänglichen Optimierungsprozess als auch die Kreuzvalidierung zum Testen der Modellgenauigkeit:
Ermitteln optimaler Modellparameter mithilfe eines Parameter-Sweepings
Durchführen der Kreuzvalidierung während eines Parameter-Sweepings
Trainieren eines Modells mit einer Parameterbereinigung
In diesem Abschnitt wird beschrieben, wie Sie eine einfache Parameter-Sweepung durchführen, die ein Modell mithilfe des Moduls Tune Model Hyperparameters trainiert.
Fügen Sie ihrem Experiment in Studio (klassisch) das Modul Tune Model Hyperparameters hinzu.
Verbinden ein untrainiertes Modell (ein Modell im iLearner-Format) an die eingabe ganz links.
Legen Sie die Option Create trainer mode (Trainingsmodus erstellen) auf Parameter Range (Parameterbereich) fest, und verwenden Sie den Range Builder (Bereichs-Generator), um einen Wertebereich anzugeben, der in der Parameterbereinigung verwendet werden soll.
Fast alle Klassifizierungs - und Regressionsmodule unterstützen einen integrierten Parameter-Sweep. Für diejenigen Lernmodule, die ein Konfigurieren eines Parameterbereichs nicht unterstützen, können nur die verfügbaren Parameterwerte getestet werden.
Sie können den Wert für einen oder mehrere Parameter manuell festlegen und die Bereinigung dann für die restlichen Parameter ausführen. Dadurch lässt sich möglicherweise einige Zeit sparen.
Fügen Sie das Dataset hinzu, das Sie für das Training verwenden möchten, und verbinden Sie es mit der mittleren Eingabe von Tune Model Hyperparameters.
Wenn Sie ein mit Tags versehenes Dataset haben, können Sie es optional mit dem am weitesten rechts befindlichen Eingabeport (Optional validation dataset, „Optionales Validierungsdataset“) verbinden. Dies ermöglicht es Ihnen, die Genauigkeit beim Training und bei der Optimierung zu messen.
Wählen Sie im Bereich Eigenschaften von Tune Model Hyperparameters (Modellhyperparameter optimieren) einen Wert für Parameter sweeping mode (Parameter-Sweepingmodus) aus. Mit dieser Option wird gesteuert, wie die Parameter ausgewählt werden.
- Entire grid (Gesamtes Raster): Wenn Sie diese Option auswählen, durchläuft das Modul ein vom System vordefiniertes Raster in einer Schleife, um unterschiedliche Kombinationen auszuprobieren und das beste Lernmodul zu ermitteln. Diese Option ist nützlich für Fälle, in denen Sie die besten Parametereinstellungen nicht wissen und alle möglichen Kombinationen von Werten ausprobieren möchten.
Sie können auch die Größe des Rasters reduzieren und eine zufällige Raster-Sweepung ausführen. Untersuchungen haben ergeben, dass diese Methode die gleichen Ergebnisse liefert, aber recheneffizienter ist.
- Random sweep (Zufällige Bereinigung): Wenn Sie diese Option auswählen, wählt das Modul nach dem Zufallsprinzip Parameterwerte für einen vom System definierten Bereich aus. Sie müssen die maximale Anzahl von Ausführungen angeben, die das Modul ausführen soll. Diese Option ist nützlich für Fälle, in denen Sie die Modellleistung mit den von Ihnen gewünschten Metriken steigern, aber weiterhin Computerressourcen sparen möchten.
Starten Sie für Label column (Bezeichnungsspalte) die Spaltenauswahl, um eine einzelne Bezeichnungsspalte auszuwählen.
Wählen Sie eine einzelne Metrik aus, die verwendet werden soll, wenn das Einstufen der Modelle erfolgt.
Wenn Sie eine Parameterbereinigung ausführen, werden alle zutreffenden Metriken für den Modelltyp berechnet und im Bericht Sweep results (Bereinigungsergebnisse) zurückgegeben. Für Regressions- und Klassifizierungsmodelle werden separate Metriken verwendet.
Die von Ihnen gewählte Metrik bestimmt jedoch, wie die Modelle eingestuft werden. Nur das oberste Modell, eingestuft entsprechend der gewählten Metrik, wird als trainiertes Modell ausgegeben, das für die Bewertung verwendet werden soll.
Geben Sie für Random seed eine Zahl ein, die beim Initialisieren der Parameterbereinigung verwendet werden soll.
Wenn Sie ein Modell trainieren, das einen integrierten Parameter-Sweep unterstützt, können Sie auch einen Bereich von Ausgangswerten festlegen, der verwendet werden soll, und die zufälligen Seedings ebenfalls iterieren. Dies kann nützlich sein, um Voreingenommenheit zu vermeiden, die durch die Ausgangswertauswahl eingeführt wird.
Führen Sie das Experiment aus.
Ergebnisse einer Hyperparameteroptimierung
Nach Abschluss des Trainings:
Um einen Satz von Genauigkeitsmetriken für das beste Modell anzuzeigen, klicken Sie mit der rechten Maustaste auf das Modul, wählen Sie Sweep results aus, und wählen Sie dann Visualize aus.
Es werden alle Genauigkeitsmetriken, die für den Modelltyp zutreffend sind, ausgegeben. Aber die Metrik, die Sie für die Einstufung ausgewählt haben, bestimmt, welches Modell als das „beste“ angesehen wird. Metriken werden nur für das Modell mit der höchsten Rangfolge generiert.
Klicken Sie zum Anzeigen der für das "beste" Modell abgeleiteten Einstellungen mit der rechten Maustaste auf das Modul, wählen Sie Trainiertes bestes Modell aus, und klicken Sie dann auf Visualisieren. Der Bericht enthält Parametereinstellungen und Featuregewichtungen für die Eingabespalten.
Um das Modell für die Bewertung in anderen Experimenten zu verwenden, ohne den Optimierungsprozess wiederholen zu müssen, klicken Sie mit der rechten Maustaste auf die Modellausgabe, und wählen Sie Als trainiertes Modell speichern aus.
Durchführen der Kreuzvalidierung mit einem Parameter-Sweep
In diesem Abschnitt wird beschrieben, wie Sie einen Parameter-Sweep mit Kreuzvalidierung kombinieren. Dieser Vorgang dauert länger, Aber Sie können die Anzahl der Folds angeben, und Sie erhalten die maximale Menge an Informationen zu Ihrem Dataset und den möglichen Modellen.
Fügen Sie Ihrem Experiment das Modul Partition and Sample hinzu, und verbinden Sie die Trainingsdaten.
Wählen Sie die Option Zu Folds zuweisen aus, und geben Sie einige Anzahl von Folds an, in die die Daten unterteilt werden sollen. Wenn Sie keine Zahl angeben, werden standardmäßig 10 Folds verwendet. Zeilen werden nach dem Zufallsprinzip ohne Ersetzung in diese Folds aufgeteilt.
Um die Stichprobenentnahme für eine Spalte auszugleichen, legen Sie die geschichtete Aufteilung auf TRUE fest, und wählen Sie dann die Strata-Spalte aus. Wenn Sie beispielsweise über ein unausgeglichenes Dataset verfügen, sollten Sie das Dataset so aufteilen, dass jeder Fold die gleiche Anzahl von Minderheitsfällen erhält.
Fügen Sie ihrem Experiment das Modul Tune Model Hyperparameters hinzu.
Verbinden eines der Machine Learning-Module in dieser Kategorie an die linke Eingabe von Tune Model Hyperparameters.
Legen Sie im Bereich Eigenschaften für das Lernprogramm die Option Trainermodus erstellen auf Parameterbereich fest, und verwenden Sie den Bereichs-Generator , um einen Bereich von Werten anzugeben, der in der Parameter-Sweepung verwendet werden soll.
Sie müssen keinen Bereich für alle Werte angeben. Sie können den Wert für einige Parameter manuell festlegen und dann die verbleibenden Parameter überladen. Dadurch lässt sich möglicherweise einige Zeit sparen.
Eine Liste der Lerner, die diese Option nicht unterstützen, finden Sie im Abschnitt Technische Hinweise .
Verbinden die Ausgabe von Partition und Sample an die bezeichnete Trainingsdataseteingabe von Tune Model Hyperparameters.
Optional können Sie ein Validierungsdataset mit der äußerst rechten Eingabe von Tune Model Hyperparameters verbinden. Für die Kreuzvalidierung benötigen Sie nur ein Trainingsdataset.
Geben Sie im Bereich Eigenschaften von Tune Model Hyperparameters (Modellparameter optimieren) an, ob Sie einen zufälligen Sweep oder einen Raster-Sweep ausführen möchten. Ein Raster-Sweep ist vollständig, aber zeitaufwendig. Eine zufällige Parametersuche kann gute Ergebnisse liefern, ohne viel Zeit in Rechnung zu stellen.
Maximale Anzahl von Durchläufen bei zufälligem Sweep: Wenn Sie einen zufälligen Sweep auswählen, können Sie angeben, wie oft das Modell trainiert werden soll, indem Sie eine zufällige Kombination von Parameterwerten verwenden.
Maximale Anzahl von Durchläufen in einem zufälligen Raster: Diese Option steuert auch die Anzahl von Iterationen bei einer zufälligen Stichprobenentnahme von Parameterwerten, aber die Werte werden nicht zufällig aus dem angegebenen Bereich generiert. Stattdessen wird eine Matrix aller möglichen Kombinationen von Parameterwerten erstellt, und eine zufällige Stichprobenentnahme wird über die Matrix übernommen. Diese Methode ist effizienter und weniger anfällig für regionale Überquotierung oder Unterquotierung.
Tipp
Eine detailliertere Erläuterung dieser Optionen finden Sie im Abschnitt Technische Hinweise .
Wählen Sie eine einzelne Bezeichnungsspalte aus.
Wählen Sie eine einzelne Metrik aus, die für die Rangfolge des Modells verwendet werden soll. Viele Metriken werden berechnet. Wählen Sie daher die wichtigste Metriken aus, die sie beim Ordnen der Ergebnisse verwenden sollen.
Geben Sie für Random seed eine Zahl ein, die beim Initialisieren der Parameterbereinigung verwendet werden soll.
Wenn Sie ein Modell trainieren, das einen integrierten Parameter-Sweep unterstützt, können Sie auch einen Bereich von Startwerten festlegen, der verwendet und auch die zufälligen Seeds durch iteriert werden soll. Dies ist optional, kann aber hilfreich sein, um Verzerrungen zu vermeiden, die durch die Seedauswahl eingeführt werden.
Fügen Sie das Modul Cross-Validate Model hinzu. Verbinden Ausgabe von Partition und Sample an die Dataseteingabe, und verbinden Sie die Ausgabe von Tune Model Hyperparameters mit der Eingabe untrained model .
Führen Sie das Experiment aus.
Ergebnisse der Kreuzvalidierung
Nach Abschluss der Kreuzvalidierung:
Klicken Sie zum Anzeigen der Auswertungsergebnisse mit der rechten Maustaste auf das Modul, wählen Sie Auswertungsergebnisse nach Fold und dann Visualisieren aus.
Die Genauigkeitsmetriken werden aus dem Kreuzvalidierungslauf berechnet und können je nach ausgewählter Folds geringfügig variieren.
Um zu sehen, wie das Dataset geteilt wurde und wie das "beste" Modell jede Zeile im Dataset bewertung, klicken Sie mit der rechten Maustaste auf das Modul, wählen Sie Scored results (Bewertungsergebnisse) aus, und wählen Sie dann Visualize (Visualisieren) aus.
Wenn Sie dieses Dataset zur späteren Verwendung speichern, werden die Foldzuweisungen beibehalten. Das gespeicherte Datsaet könnte beispielsweise wie im folgenden Beispiel aussehen:
Foldzuweisungen Klasse Age(1st feature column) 2 0 35 1 1 17 3 0 62 Klicken Sie mit der rechten Maustaste auf Tune Model Hyperparameters (Modellhyperparameter optimieren), um die Parametereinstellungen für das "beste" Modell zu erhalten.
Beispiele
Beispiele für die Verwendung dieses Moduls finden Sie im Azure KI-Katalog:
Vorhersage der Leistung von Studenten: Verwendet den Two-Class Boosted Decision Tree-Algorithmus mit verschiedenen Parametern, um ein Modell mit dem bestmöglichen rmse -Fehler (Root Mean Squared Error) zu generieren.
Learning mit Zählungen: Binäre Klassifizierung: Generiert einen kompakten Satz von Features mithilfe des zählbasierten Lernens und wendet dann einen Parameter-Sweep an, um die besten Modellparameter zu finden.
Binäre Klassifizierung: Erkennung von Netzwerkangriffen: Verwendet Tune Model Hyperparameters im Kreuzvalidierungsmodus mit einer benutzerdefinierten Aufteilung in fünf Aufteilungen, um die besten Hyperparameter für ein logistisches Regressionsmodell mit zwei Klassen zu finden.
Technische Hinweise
Dieser Abschnitt enthält Implementierungsdetails, Tipps und Antworten auf häufig gestellte Fragen.
Funktionsweise einer Parameterbereingung
In diesem Abschnitt wird beschrieben, wie parameter sweep im Allgemeinen funktioniert und wie die Optionen in diesem Modul interagieren.
Wenn Sie eine Parameterbereinigung einrichten, definieren Sie den zu verwendenden Suchbereich entweder als eine endliche Anzahl von Parametern, die zufällig ausgewählt werden, oder als umfassende Suche über einen von Ihnen definierten Parameterbereich.
Zufälliger Sweep: Diese Option trainiert ein Modell mit einer festgelegten Anzahl von Iterationen.
Sie geben einen Wertebereich an, der durchlaufen werden soll, und im Modul wird eine zufällig gewählte Teilmenge dieser Werte verwendet. Werte werden mit Ersetzung ausgewählt, d. h., dass zuvor zufällig ausgewählte Zahlen nicht aus dem Pool der verfügbaren Zahlen entfernt werden. Daher bleibt die Wahrscheinlichkeit für jeden Wert, dass er ausgewählt wird, in allen Durchläufen gleich.
Raster-Sweep: Mit dieser Option wird eine Matrix oder ein Raster erstellt, die jede Kombination der Parameter im von Ihnen angegebenen Wertbereich enthält. Wenn Sie mit der Optimierung mit diesem Modul beginnen, werden mehrere Modelle mithilfe von Kombinationen dieser Parameter trainiert.
Gesamtes Raster: Die Option, das gesamte Raster zu verwenden, bedeutet genau das: Jede Kombination wird getestet. Diese Option ist zwar als die gründlichste anzusehen, erfordert jedoch die meiste Zeit.
Zufälliges Raster: Wenn Sie diese Option auswählen, wird die Matrix aller Kombinationen berechnet, und werte werden anhand der angegebenen Anzahl von Iterationen aus der Matrix entnommen.
Aktuelle Untersuchungen haben gezeigt, dass zufällige Sweeps eine bessere Leistung als Raster-Sweeps haben können.
Steuern der Länge und Komplexität eines Trainings
Ein Iterieren über viele Kombinationen von Einstellungen kann zeitaufwändig sein, daher bietet das Modul mehrere Möglichkeiten, den Prozess zu beschränken:
- Begrenzen der Anzahl von Iterationen, die zum Testen eines Modells verwendet werden
- Begrenzen es Parameterraums
- Begrenzen sie sowohl die Anzahl der Iterationen als auch den Parameterraum.
Es wird empfohlen, mit den Einstellungen zu experimentieren, um die effizienteste Trainingsmethode für ein bestimmtes Dataset und Modell zu bestimmen.
Auswählen einer Auswertungsmetrik
Zum Schluss wird ein Bericht angezeigt, der die Genauigkeit für jedes Modell enthält, sodass Sie die Metrikergebnisse überprüfen können. Für alle Klassifizierungsmodelle wird ein einheitlicher Satz von Metriken und für Regressionsmodelle ein anderer Satz von Metriken verwendet. Während eines Trainings müssen Sie jedoch eine einzige Metrik auswählen, die für die Einstufung der Modelle verwendet werden soll, die während des Optimierungsprozesses generiert werden. Sie stellen möglicherweise fest, dass die beste Metrik abhängig von Ihrem Geschäftsproblem und dem Aufwand für falsch positive und falsche negative Ergebnisse variiert.
Weitere Informationen finden Sie unter Auswerten der Modellleistung in Machine Learning
Für die Klassifizierung verwendete Metriken
Accuracy (Treffergenauigkeit): der Anteil von richtigen Ergebnissen an den Gesamtfällen
Precision (Genauigkeit): der Anteil von richtigen Ergebnisse an allen positiven Ergebnissen
Recall (Trefferquote): der Anteil aller richtigen Ergebnisse an allen Ergebnissen
F-score (F-Maß): ein Maß, das Genauigkeit und Trefferquote abgleicht
AUC: ein Wert, der den Bereich unter der Kurve darstellt, wenn falsch positive Ergebnisse auf der x-Achse geplottet und richtig positive Ergebnisse auf der y-Achse geplottet werden
Average Log Loss (Logarithmische Durchschnittsdämpfung): die Differenz zwischen zwei Wahrscheinlichkeitsverteilungen: der tatsächlichen und der im Modell
Verlust des Train Log Die Vom Modell gegenüber einer zufälligen Vorhersage bereitgestellte Verbesserung.
Metriken, die für Regression verwendet werden
Mean absolute error Durchschnittlicher Durchschnitt aller Fehler im Modell, wobei error den Abstand des vorhergesagten Werts vom tatsächlichen Wert bedeutet. Wird häufig als MAE abgekürzt.
Stamm des mittleren quadratischen Fehlers Misst den Durchschnitt der Quadrate der Fehler und übernimmt dann den Stamm dieses Werts. Wird häufig als RMSE abgekürzt.
Relativer absoluter Fehler Stellt den Fehler als Prozentsatz des true-Werts dar.
Relativer Quadratfehler Normalisiert den gesamten quadratischen Fehler, indem er durch den gesamten quadratischen Fehler der vorhergesagten Werte dividiert wird.
Coefficient of determination (Bestimmtheitsmaß) ist eine einzelne Zahl, die angibt, wie gut Daten zu einem Modell passen. Der Wert 1 bedeutet, dass das Modell genau den Daten entspricht. Der Wert 0 bedeutet, dass die Daten zufällig sind oder anderweitig nicht in das Modell passen. Dies wird häufig als r2, r2oder r-Quadrat bezeichnet.
Module, die keine Parameterbereinigung unterstützen
Fast alle Lerner in Machine Learning die Kreuzvalidierung mit einem integrierten Parameter-Sweep unterstützen, mit dem Sie die Parameter auswählen können, mit denen Sie experimentieren möchten. Ist es nicht möglich, für das Lernmodul einen Wertebereich festzulegen, können Sie es trotzdem in Kreuzvalidierungen verwenden. In diesem Fall wird ein Bereich zulässiger Werte für die Bereinigung ausgewählt.
Die folgenden Lerner unterstützen nicht das Festlegen eines Wertebereichs, der in einem Parameter-Sweep verwendet werden soll:
Erwartete Eingaben
Name | Type | BESCHREIBUNG |
---|---|---|
Untrainiertes Modell | ILearner-Schnittstelle | Untrainiertes Modell für Parameter-Sweep |
Trainingsdataset | Datentabelle | Eingabedataset für Training |
Validierungsdataset | Datentabelle | Eingabedataset für Validierung (für den Trainings-/Test-Validierungsmodus) Diese Eingabe ist optional. |
Modulparameter
Name | Range | type | Standard | Beschreibung |
---|---|---|---|---|
Specify parameter sweeping mode | Liste | Sweep-Methoden | Zufalls-Sweep | Sweep durch das ganze Raster des Parameterbereichs oder Sweep mit einer begrenzten Anzahl von Testläufen |
Maximum number of runs on random sweep | [1;10000] | Integer | 5 | Führt die maximale Anzahl von Läufen mit der Option "Random Sweep" aus. |
Random seed (Zufälliger Ausgangswert) | any | Integer | 0 | Geben Sie einen Wert als Ausgangswert für den Zufallszahlengenerator an. |
Bezeichnungsspalte | any | ColumnSelection | Bezeichnungsspalte | |
Metric for measuring performance for classification | Liste | Binärer Klassifizierungsmetriktyp | Genauigkeit | Wählen Sie die Metrik für die Bewertung von Klassifizierungsmodellen aus. |
Metric for measuring performance for regression | Liste | RegressionMetric Type | Mittlerer absoluter Fehler | Wählen Sie die Metrik für die Bewertung von Regressionsmodellen aus |
Ausgaben
Name | Type | Beschreibung |
---|---|---|
Sweep results | Datentabelle | Results metric for parameter sweep runs |
Trained best model | ILearner-Schnittstelle | Modell mit der besten Leistung beim Trainingsdataset |