Freigeben über


LbfgsLogisticRegressionBinaryTrainer Klasse

Definition

Das IEstimator<TTransformer> Ziel mithilfe eines linearen logistischen Regressionsmodells, das mit der L-BFGS-Methode trainiert wurde, vorherzusagen.

public sealed class LbfgsLogisticRegressionBinaryTrainer : Microsoft.ML.Trainers.LbfgsTrainerBase<Microsoft.ML.Trainers.LbfgsLogisticRegressionBinaryTrainer.Options,Microsoft.ML.Data.BinaryPredictionTransformer<Microsoft.ML.Calibrators.CalibratedModelParametersBase<Microsoft.ML.Trainers.LinearBinaryModelParameters,Microsoft.ML.Calibrators.PlattCalibrator>>,Microsoft.ML.Calibrators.CalibratedModelParametersBase<Microsoft.ML.Trainers.LinearBinaryModelParameters,Microsoft.ML.Calibrators.PlattCalibrator>>
type LbfgsLogisticRegressionBinaryTrainer = class
    inherit LbfgsTrainerBase<LbfgsLogisticRegressionBinaryTrainer.Options, BinaryPredictionTransformer<CalibratedModelParametersBase<LinearBinaryModelParameters, PlattCalibrator>>, CalibratedModelParametersBase<LinearBinaryModelParameters, PlattCalibrator>>
Public NotInheritable Class LbfgsLogisticRegressionBinaryTrainer
Inherits LbfgsTrainerBase(Of LbfgsLogisticRegressionBinaryTrainer.Options, BinaryPredictionTransformer(Of CalibratedModelParametersBase(Of LinearBinaryModelParameters, PlattCalibrator)), CalibratedModelParametersBase(Of LinearBinaryModelParameters, PlattCalibrator))
Vererbung

Hinweise

Um diesen Trainer zu erstellen, verwenden Sie LbfgsLogisticRegression oder LbfgsLogisticRegression(Options).

Eingabe- und Ausgabespalten

Die Daten in der Spalte für die Eingabezeichnung müssen Boolean sein. Die Spaltendaten der Eingabefeatures müssen ein bekannter Vektor sein Single.

Der Trainer gibt folgende Spalten aus:

Name der Ausgabespalte Spaltentyp BESCHREIBUNG
Score Single Die ungebundene Bewertung, die vom Modell berechnet wurde.
PredictedLabel Boolean Der vorhergesagte Bezeichnung, basierend auf dem Abzeichnen der Bewertung. Eine negative Bewertung wird false und eine positive Bewertung wird true zugeordnet.
Probability Single Die Wahrscheinlichkeit, die durch die Kalibrierung des Werts "true" als Bezeichnung berechnet wird. Der Wahrscheinlichkeitswert befindet sich im Bereich [0, 1].

Trainereigenschaften

ML-Aufgabe Binäre Klassifizierung
Ist normalisierung erforderlich? Yes
Ist zwischenspeichern erforderlich? No
Erforderliches NuGet zusätzlich zu Microsoft.ML Keine
Exportierbar in ONNX Yes

Bewertungsfunktion

Lineare logistische Regression ist eine Variante des linearen Modells. Es ordnet featurevektor $\textbf{x} \in {\mathbb R}^n$ zu einem Skalar über $\hat{y}\left( \textbf{x} \right) = \textbf{w}^T \textbf{x} + b = \sum_{j=1}^n w_j x_j + b$, wobei $x_j$ der wert des $j$-th-Features ist, ist das $j$-th-Element von $\textbf{w}$ der $j$-th-Featurekoeffizienten, und $b$ ist eine lernbare Verzerrung. Die entsprechende Wahrscheinlichkeit des Abrufens einer echten Bezeichnung lautet $\frac{1}{1 + e^{\hat{y}\left( \textbf{x} \right)}}$.

Details des Schulungsalgorithmus

Die implementierte Optimierungstechnik basiert auf der begrenzten Speichermethode Broyden-Fletcher-Goldfarb-Shanno(L-BFGS). L-BFGS ist eine Quasi-Newton-Methode , die die kostenintensive Berechnungskosten der Hessischen Matrix durch eine Annäherung ersetzt, aber dennoch eine schnelle Konvergenzrate wie die Newton-Methode genießt, bei der die vollständige Hessische Matrix berechnet wird. Da die L-BFGS-Annäherung nur eine begrenzte Menge historischer Zustände verwendet, um die nächste Schrittrichtung zu berechnen, eignet es sich besonders für Probleme mit hochdimensionalen Featurevektoren. Die Anzahl der historischen Zustände ist ein benutzerdefinierter Parameter, der eine größere Zahl verwendet, kann zu einer besseren Annäherung an die hessische Matrix führen, aber auch eine höhere Berechnungskosten pro Schritt.

Regularisierung ist eine Methode, die ein unaufgehängtes Problem durch Einschränkungen, die Informationen bereitstellen, um die Daten zu ergänzen, und die verhindert, dass die Höhe des Modells in der Regel von einigen Normfunktionen überlastet wird. Dadurch kann die Generalisierung des erlernten Modells verbessert werden, indem die optimale Komplexität im Kompromiss zwischen Voreingenommenheit und Varianz ausgewählt wird. Regularisierung funktioniert, indem die Strafterme, die mit Koeffizientenwerten verbunden sind, zum Fehler der Hypothese hinzufügt werden. Ein genaues Modell mit extremen Koeffizientenwerten würde stärker mit Straftermen belegt, während ein weniger genaues Modell mit konservativeren Werten weniger mit Straftermen belegt würde.

Dieser Lerner unterstützt die flexible Netznormalisierung: eine lineare Kombination aus L1-Norm (LASSO), $|| \textbf{w} || _1$, und L2-Norm (Ridge), $|| \textbf{w} || _2^2$ Regularisierungen. L1-Norm- und L2-Norm-Regularisierungen haben unterschiedliche Auswirkungen und Verwendungen, die sich in bestimmten Aspekten ergänzen. Die Verwendung von L1-Norm kann die Sparsität des trainierten $\textbf{w}$erhöhen. Beim Arbeiten mit hochdimensionalen Daten verkleinern sie kleine Gewichtungen von irrelevanten Features auf 0 und daher werden keine Ressourcen bei der Erstellung von Vorhersagen auf diese schlechten Features aufgewendet. Wenn die L1-Norm-Regularisierung verwendet wird, ist der Schulungsalgorithmus OWL-QN. Die L2-Norm-Regularisierung ist für Daten bevorzugt, die nicht gering sind und die Existenz großer Gewichte weitgehend bestraft.

Eine aggressive Regularisierung (d. h. das Zuweisen großer Koeffizienten zu L1-Norm- oder L2-Norm-Regularisierungsbedingungen) kann die Prädiktivkapazität beeinträchtigen, indem wichtige Variablen aus dem Modell ausgeschlossen werden. Daher ist die Auswahl der richtigen Regularisierungskoeffizienten bei der Anwendung der logistischen Regression wichtig.

Überprüfen Sie den Abschnitt "Siehe auch", um Links zu Verwendungsbeispielen zu finden.

Felder

FeatureColumn

Die Featurespalte, die der Trainer erwartet.

(Geerbt von TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

Die Beschriftungsspalte, die der Trainer erwartet. Kann sein null, was angibt, dass bezeichnung nicht für Schulungen verwendet wird.

(Geerbt von TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

Die Gewichtungsspalte, die der Trainer erwartet. Kann sein null, was angibt, dass Gewicht nicht für die Schulung verwendet wird.

(Geerbt von TrainerEstimatorBase<TTransformer,TModel>)

Eigenschaften

Info

Das IEstimator<TTransformer> Ziel mithilfe eines linearen logistischen Regressionsmodells, das mit der L-BFGS-Methode trainiert wurde, vorherzusagen.

(Geerbt von LbfgsTrainerBase<TOptions,TTransformer,TModel>)

Methoden

Fit(IDataView, LinearModelParameters)

Setzt die Schulung einer LbfgsLogisticRegressionBinaryTrainer bereits trainierten modelParameters Und gibt eine BinaryPredictionTransformer<TModel>.

Fit(IDataView)

Züge und gibt einen ITransformer.

(Geerbt von TrainerEstimatorBase<TTransformer,TModel>)
GetOutputSchema(SchemaShape)

Das IEstimator<TTransformer> Ziel mithilfe eines linearen logistischen Regressionsmodells, das mit der L-BFGS-Methode trainiert wurde, vorherzusagen.

(Geerbt von TrainerEstimatorBase<TTransformer,TModel>)

Erweiterungsmethoden

AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

Fügen Sie einen "Zwischenspeicherungsprüfpunkt" an die Schätzkette an. Dadurch wird sichergestellt, dass die nachgelagerten Schätzer anhand zwischengespeicherter Daten trainiert werden. Es ist hilfreich, einen Cache-Prüfpunkt vor Trainern zu haben, die mehrere Datendurchläufe übernehmen.

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

Wenn sie eine Schätzung erhalten, geben Sie ein Umbruchobjekt zurück, das einen Delegaten aufruft, sobald Fit(IDataView) er aufgerufen wird. Es ist häufig wichtig, dass ein Schätzer Informationen darüber zurückgibt, was passt, weshalb die Fit(IDataView) Methode ein speziell typiertes Objekt zurückgibt, anstatt nur ein allgemeines ITransformerObjekt zurückzugeben. IEstimator<TTransformer> Gleichzeitig werden jedoch häufig Pipelines mit vielen Objekten gebildet, daher müssen wir möglicherweise eine Kette von Schätzern erstellen, über EstimatorChain<TLastTransformer> die der Schätzer, für den wir den Transformator erhalten möchten, irgendwo in dieser Kette begraben wird. Für dieses Szenario können wir über diese Methode eine Stellvertretung anfügen, die aufgerufen wird, sobald sie aufgerufen wird.

Gilt für:

Weitere Informationen