Logistische Regression mit zwei Klassen

Erstellt ein zweiklassiges logistisches Regressionsmodell

Kategorie: Machine Learning/Modell/Klassifizierung initialisieren

Hinweis

Gilt für: Machine Learning Studio (klassisch)

Dieser Inhalt bezieht sich nur auf Studio (klassisch). Ähnliche Drag & Drop-Module wurden Azure Machine Learning-Designer hinzugefügt. Weitere Informationen finden Sie in diesem Artikel zum Vergleich der beiden Versionen.

Modulübersicht

In diesem Artikel wird beschrieben, wie Sie das Two-Class Logistic Regression -Modul in Azure Machine Learning Studio (klassisch) verwenden, um ein logistisches Regressionsmodell zu erstellen, das verwendet werden kann, um zwei (und nur zwei) Ergebnisse vorherzusagen.

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 Two-Class logistischen 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.

  1. Fügen Sie das Two-Class Logistic Regression -Modul zu Ihrem Experiment in Studio (klassisch) hinzu.

  2. 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.

    • Parameter Bereich: Wenn Sie sich nicht sicher sind, welche Parameter am besten geeignet 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 ermitteln. Der-Trainer durchläuft mehrere Kombinationen der-Einstellungen und bestimmt die Kombination der Werte, die das beste Modell erzeugen.

  3. 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.

  4. 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 und y = L2, dann definiert ax + 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.

  5. 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.

  6. 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.

  7. Wählen Sie die Option unbekannte kategorische Ebenen zulassen aus, um in jeder kategorischen Spalte eine zusätzliche "unbekannte" Ebene zu erstellen. Wenn Sie dies tun, werden alle Werte (Ebenen) im Test Dataset, die im Trainings Dataset nicht verfügbar sind, dieser "unbekannten" Ebene zugeordnet.

  8. 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 Parameter Bereich übergeben, um das Modell zu trainieren, wird nur der erste Wert in der Liste Parameter Bereich verwendet.

    Wenn Sie einen einzelnen Satz von Parameterwerten an das Modul " Tune Model hyperparameters " übergeben und eine Reihe von Einstellungen für jeden Parameter erwartet, werden die Werte ignoriert und die Standardwerte für den Lerner verwendet.

    Wenn Sie die Option Parameter Bereich auswählen und einen einzelnen Wert für einen beliebigen Parameter eingeben, wird dieser einzelne Wert, den Sie angegeben haben, während des Sweep verwendet, auch wenn andere Parameter in einem Wertebereich geändert werden.

  9. Führen Sie das Experiment aus.

Ergebnisse

Nach Abschluss des Trainings:

  • Klicken Sie mit der rechten Maustaste auf die Ausgabe des Moduls Train Model , und wählen Sie dann visualisieren aus, umeine Zusammenfassung der Parameter des Modells anzuzeigen, zusammen mit den Merkmals Gewichtungen, die aus dem Training gelernt wurden.

  • 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 Kreuz Validierung für ein bezeichnetes DataSet auszuführen, verbinden Sie die Daten und das untrainierte Modell mit dem Modell für die KreuzValidierung.

Beispiele

Beispiele zur Verwendung dieses Lernalgorithmus finden Sie in der Azure AI Gallery:

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 Azure Machine Learning die Werte daher intern in ein Indikator Array.

Für Datums-und Uhrzeitwerte wird eine numerische Darstellung verwendet. (Weitere Informationen zu Datums-/Uhrzeitwerten finden Sie unter DateTime Structure (.NET Framework)-Hinweise.) Wenn Sie Datums-und Uhrzeitwerte anders behandeln möchten, sollten Sie eine abgeleitete Spalte erstellen.

Details zur Implementierung

Die logistische Regression geht von einer logistischen Verteilung der Daten aus, bei der die Wahrscheinlichkeit, dass ein Beispiel zur 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} die unbekannten Parameter der logistischen Verteilung.

Der Algorithmus versucht, die optimalen Werte für zu ermitteln, indem er die β{0},..., β {D-1} Protokoll Wahrscheinlichkeit der Parameter unter Berücksichtigung der Eingaben maximiert. Die Maximierung erfolgt über eine gängige Methode zur Parameterschätzung, die als beschränkte Speicher-BFGSbezeichnet wird.

Research

Weitere Informationen zur Implementierung dieses Algorithmus finden Sie unter skalierbares Training von L-1-Log-Linear Modellen mit regularisierterAusführung 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 Geben Sie die Gewichtung der L2-Regularisierung an
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 Typ BESCHREIBUNG
Untrainiertes Modell ILearner-Schnittstelle Ein untrainiertes Klassifizierungsmodell

Weitere Informationen

Klassifizierung

Logistische Regression mit mehreren Klassen

Modulliste von A bis Z