Logistische Regression mit zwei Klassen
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.
Erstellt ein zweiklassiges logistisches Regressionsmodell
Kategorie: Machine Learning/Modell initialisieren/Klassifizierung
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 Two-Class Logistic Regression in Machine Learning Studio (klassisch) verwenden, um ein logistisches Regressionsmodell zu erstellen, mit dem zwei (und nur zwei) Ergebnisse vorhergesagt werden können.
Die logistische Regression ist eine bekannte statistische Methode, die zur Modellierung vieler Arten von Problemen verwendet wird. Dieser Algorithmus ist eine überwachte Lernmethode, weshalb Sie ein Dataset bereitstellen müssen, das bereits die Ergebnisse zum Trainieren des Modells enthält.
Weitere Informationen zur logistischen Regression
Die logistische Regression ist eine bekannte Statistikmethode, die zur Vorhersage der Wahrscheinlichkeit eines Ergebnisses verwendet wird und besonders für Klassifizierungsaufgaben geeignet ist. Der Algorithmus prognostiziert die Wahrscheinlichkeit des Vorkommens eines Ereignisses, indem er Daten an eine logistische Funktion anpasst. Weitere Informationen zu dieser Implementierung finden Sie im Abschnitt Technische Hinweise.
Bei diesem Modul wird der Klassifizierungsalgorithmus für dichotome oder binäre Variablen optimiert. Wenn Sie mehrere Ergebnisse klassifizieren müssen, verwenden Sie das Modul Multiclass Logistic Regression (Logisches Regression mit mehreren Klassen).
Konfigurieren von Two-Class Logistic Regression
Zum Trainieren dieses Modells müssen Sie ein Dataset bereitstellen, das eine Bezeichnungs- oder Klassenspalte enthält. Da dieses Modul für Probleme mit zwei Klassen vorgesehen ist, muss die Bezeichnungs- oder Klassenspalte genau zwei Werte enthalten.
Beispielsweise kann die Bezeichnungsspalte [Abgestimmt] mit den möglichen Werten „Ja“ oder „Nein“ sein. Oder sie kann [Kreditrisiko] mit den möglichen Werten „Hoch“ oder „Niedrig“ lauten.
Fügen Sie ihrem Experiment in Studio (klassisch) das Modul Two-Class Logistic Regression hinzu.
Geben Sie an, wie das Modell trainiert werden soll, indem Sie die Option Create trainer mode (Trainermodus erstellen) aktivieren.
Single Parameter (Einzelner Parameter): Wenn Sie wissen, wie Sie das Modell konfigurieren möchten, können Sie einen bestimmten Satz von Werten als Argumente angeben.
Parameterbereich: Wenn Sie sich der besten Parameter nicht sicher sind, können Sie die optimalen Parameter ermitteln, indem Sie mehrere Werte angeben und das Modul Tune Model Hyperparameters verwenden, um die optimale Konfiguration zu finden. Der Trainer durchläuft mehrere Kombinationen der Einstellungen und bestimmt die Kombination der Werte, die das beste Modell erzeugt.
Geben Sie für Optimization tolerance (Optimierungstoleranz) einen Schwellenwert an, der bei der Optimierung des Modells verwendet werden soll. Wenn die Verbesserung zwischen Iterationen unter den angegebenen Schwellenwert fällt, gilt der Algorithmus als zu einer Lösung konvergiert, woraufhin das Training beendet wird.
Geben Sie für L1 regularization weight (Gewichtung von L1-Regularisierung) und L2 regularization weight (Gewichtung von L2-Regularisierung) einen Wert für die Regularisierungsparameter L1 und L2 ein. Für beide wird ein Wert ungleich 0 (null) empfohlen.
Regularisierung ist eine Methode zur Vermeidung von Überpassung durch Zuordnung von Straftermen zu Modellen mit extremen Koeffizientenwerten. Regularisierung funktioniert, indem die Strafterme, die mit Koeffizientenwerten verbunden sind, zum Fehler der Hypothese hinzufügt werden. So würde ein genaues Modell mit extremen Koeffizientenwerten stärker mit Straftermen belegt, während ein weniger genaues Modell mit konservativeren Werten weniger mit Straftermen belegt würde.
Die L1- und L2-Regularisierung haben unterschiedliche Auswirkungen und Zwecke.
L1 kann auf spärliche Modelle angewendet werden, was bei der Arbeit mit Daten mit hoher Dimensionalität nützlich ist.
Im Gegensatz dazu ist die L2-Regularisierung für Daten vorzuziehen, die nicht spärlich sind.
Dieser Algorithmus unterstützt eine lineare Kombination von L1- und L2-Regularisierungswerten, d.h. wenn
x = L1
undy = L2
, dann definiertax + by = c
die lineare Spanne der Regalisierungsbegriffe.Hinweis
Möchten Sie mehr zur L1- und L2-Regularisierung erfahren? Der folgende Artikel bietet eine Diskussion darüber, inwieweit sich die L1- und L2-Regularisierung unterscheiden und wie sie sich auf die Modellanpassung auswirken, sowie Codebeispiele für logistische Regressions- und neuronale Netzmodelle: L1- und L2-Regularisierung für Machine Learning
Für logistische Regressionsmodelle wurden verschiedene lineare Kombinationen von L1- und L2-Begriffen entwickelt: zum Beispiel Regularisierung mit elastischem Netz. Wir empfehlen, dass Sie sich auf diese Kombinationen beziehen, um eine lineare Kombination zu definieren, die in Ihrem Modell wirksam ist.
Geben Sie für Memory size for L-BFGS (Speichergröße für L-BFGS) die Speichergröße an, die für die L-BFGS-Optimierung verwendet werden soll.
L-BFGS steht für „limited memory Broyden-Fletcher-Goldfarb-Shanno“. Es handelt sich um einen Optimierungsalgorithmus, der häufig zur Parameterschätzung verwendet wird. Dieser Parameter gibt die Anzahl der bisherigen Positionen und Gradienten an, die für die Berechnung des nächsten Schritts gespeichert werden sollen.
Dieser Optimierungsparameter begrenzt die Menge an Speicher, die zur Berechnung des nächsten Schritts und der nächsten Richtung verwendet wird. Wenn Sie weniger Speicher angeben, ist das Training zwar schneller, aber ungenauer.
Geben Sie für Random number seed (Zufälliger Startwert) eine ganze Zahl ein. Die Definition eines Startwerts ist wichtig, wenn Sie möchten, dass die Ergebnisse bei mehreren Ausführungen desselben Experiments reproduzierbar sind.
Wählen Sie die Option Unbekannte Kategorische Ebenen zulassen aus, um in jeder Kategoriespalte eine zusätzliche "unbekannte" Ebene zu erstellen. Wenn Sie dies tun, werden alle Werte (Ebenen) im Testdataset, die nicht im Trainingsdataset verfügbar sind, dieser "unbekannten" Ebene zugeordnet.
Fügen Sie dem Experiment ein mit Tags versehenes Dataset hinzu, und stellen Sie eine Verbindung mit einem der Trainingsmodule her.
Wenn Sie Create trainer mode (Trainermodus erstellen) auf Single Parameter (Einzelner Parameter) festlegen, müssen Sie das Modul Train Model (Trainieren des Modells) verwenden.
Wenn Sie Create trainer mode (Trainermodus erstellen) auf Parameter Range (Parameterbereich) festlegen, verwenden Sie das Modul Tune Model Hyperparameters (Abstimmen der Hyperparameter des Modells).
Hinweis
Wenn Sie einen Parameterbereich an Train Model übergeben, wird nur der erste Wert in der Parameterbereichsliste verwendet.
Wenn Sie einen einzelnen Satz von Parameterwerten an das Modul Tune Model Hyperparameters übergeben, werden die Werte ignoriert und die Standardwerte für das Lernmodul verwendet, wenn ein Bereich von Einstellungen für jeden Parameter erwartet wird.
Wenn Sie die Option Parameterbereich auswählen und einen einzelnen Wert für einen Parameter eingeben, wird dieser einzelne wert, den Sie angegeben haben, während des gesamten Sweepings verwendet, auch wenn sich andere Parameter über einen Wertebereich hinweg ändern.
Führen Sie das Experiment aus.
Ergebnisse
Nach Abschluss des Trainings:
Klicken Sie mit der rechten Maustaste auf die Ausgabe von Train Model (Modell trainieren ) oder Tune Model Hyperparameters (Modell hyperparameter optimieren), und wählen Sie Visualize (Visualisieren) aus, um eine Zusammenfassung der Parameter des Modells zusammen mit den Featuregewichtungen anzuzeigen, die sie aus dem Training gelernt haben.
Um Vorhersagen zu neuen Daten zu treffen, verwenden Sie das trainierte Modell und neue Daten als Eingabe für das Modul Score Model (Bewerten des Modells).
Um eine Kreuzvalidierung für ein bezeichnetes DataSet durchzuführen, verbinden Sie die Daten und das untrainierte Modell mit Cross-Validate Model.
Beispiele
Beispiele für die Verwendung dieses Lernalgorithmus finden Sie im Azure KI-Katalog:
Erkennung von Netzwerkangriffen: Verwendet die binäre logistische Regression, um zu bestimmen, ob ein Fall einen Angriff darstellt.
Kreuzvalidierung für binäre Klassifizierung: Veranschaulicht die Verwendung der logistischen Regression in einem typischen experimentellen Workflow, einschließlich der Modellauswertung.
Technische Hinweise
Dieser Abschnitt enthält Implementierungsdetails, Tipps und Antworten auf häufig gestellte Fragen.
Verwendungstipps
Die logistische Regression erfordert numerische Variablen. Wenn Sie kategorische Spalten als Variable verwenden, konvertiert Machine Learning die Werte daher intern in ein Indikatorarray.
Für Datums- und Uhrzeitangaben wird eine numerische Darstellung verwendet. (Weitere Informationen zu Datums-/Uhrzeitwerten finden Sie unter DateTime-Struktur (.NET Framework) – Hinweise.) Wenn Sie Datums- und Uhrzeitangaben unterschiedlich behandeln möchten, wird empfohlen, eine abgeleitete Spalte zu erstellen.
Details zur Implementierung
Die logistische Regression geht von einer logistischen Verteilung der Daten aus, wobei die Wahrscheinlichkeit, dass ein Beispiel zu Klasse 1 gehört, die Formel ist:
p(x;β0,…, βD-1)
Hierbei gilt:
x
ist ein D-dimensionaler Vektor, der die Werte aller Funktionen der -Instanz enthält.p
ist die logistische Verteilungsfunktion.β{0},..., β {D-1}
sind die unbekannten Parameter der logistischen Verteilung.
Der Algorithmus versucht, die optimalen Werte für β{0},..., β {D-1}
zu finden, indem er die Protokollwahrscheinlichkeit der Parameter anhand der Eingaben maximiert. Die Maximierung erfolgt mithilfe einer beliebten Methode für die Parameterschätzung namens Limited Memory BFGS.
Research
Weitere Informationen zur Implementierung dieses Algorithmus finden Sie unter Scalable Training of L-1 Regularized Log-Linear Models, von Andrew und Gao.
Modulparameter
Name | Range | type | Standard | Beschreibung |
---|---|---|---|---|
Optimization tolerance | >=double.Epsilon | Float | 0.0000001 | Geben Sie einen Toleranzwert für die L-BFGS-Optimierung an. |
L1 regularization weight | >=0,0 | Float | 1.0 | Geben Sie die L1-Regularisierungsgewichtung an. |
L2-Regularisierungsgewichtung | >=0,0 | Float | 1.0 | Angeben der L2-Regularisierungsgewichtung |
Memory size for L-BFGS | >=1 | Integer | 20 | Geben Sie die Größe des Speichers (in MB) an, der für die L-BFGS-Optimierung verwendet wird. |
Random number seed | Any | Integer | Geben Sie einen Wert als Ausgangswert für den Zufallszahlengenerator ein, der vom Modell verwendet wird. Geben Sie keinen Wert an, um den Standardwert zu verwenden. | |
Allow unknown categorical levels | Any | Boolean | True | Geben Sie an, ob eine zusätzliche Ebene für jede Kategoriespalte erstellt werden soll. Alle Ebenen im Testdataset, die nicht im Trainingsdataset zur Verfügung stehen, werden dieser zusätzlichen Ebene zugeordnet. |
Output
Name | Type | BESCHREIBUNG |
---|---|---|
Untrainiertes Modell | ILearner-Schnittstelle | Ein untrainiertes Klassifizierungsmodell |