LbfgsLogisticRegressionBinaryTrainer Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Das IEstimator<TTransformer> Ziel mithilfe eines linearen 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 Vektor mit bekannter Größe sein Single.
Der Trainer gibt folgende Spalten aus:
| Name der Ausgabespalte | Spaltentyp | Description | |
|---|---|---|---|
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 Beschriftung berechnet wird. Der Wahrscheinlichkeitswert liegt im Bereich [0, 1]. |
Trainermerkmale
| Machine Learning-Aufgabe | Binäre Klassifizierung |
| Ist normalisierung erforderlich? | Yes |
| Ist zwischenspeichern erforderlich? | No |
| Erforderliches NuGet zusätzlich zu Microsoft.ML | Nichts |
| Exportierbar in ONNX | Yes |
Bewertungsfunktion
Lineare logistische Regression ist eine Variante des linearen Modells. Es ordnet featurevektor $\textbf{x} \in {\mathbb R}^n$ 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 die $x_j$ der Wert des $j$-th-Features ist, ist das $j$-th-Element von $\textbf{w}$ der Koeffizienten des $j$-th-Features, und $b$ ist eine lernbare Verzerrung. Die entsprechende Wahrscheinlichkeit, eine echte Bezeichnung zu erhalten, ist $\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-Methode (L-BFGS). L-BFGS ist eine Quasi-Newton-Methode , die die teuren 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 vom Benutzer angegebener Parameter, wobei eine größere Zahl verwendet wird, kann eine bessere Annäherung an die hessische Matrix, aber auch eine höhere Berechnungskosten pro Schritt führen.
Regularisierung ist eine Methode, die ein unaufgehängtes Problem durch Die Erzwingung von Einschränkungen, die Informationen bereitstellen, um die Daten zu ergänzen, und die die Überlastung verhindert, indem die Größe des Modells normalerweise durch einige Normfunktionen gemessen wird. Dies kann die Generalisierung des modells verbessern, indem die optimale Komplexität im Bias-Varianz-Kompromiss ausgewählt wird. Die Regularisierung funktioniert durch Hinzufügen der Strafe, die mit Koeffizientenwerten verknüpft ist, zum Fehler der Hypothese. Ein genaues Modell mit extremen Koeffizientenwerten würde mehr bestraft, aber ein weniger genaues Modell mit konservativeren Werten würde weniger bestraft.
Dieser Lernende 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 gewisser Hinsicht ergänzen. Die Verwendung von L1-Norm kann die Sparsamkeit des trainierten $\textbf{w}$erhöhen. Beim Arbeiten mit hochdimensionalen Daten verkleinern sie kleine Gewichtungen irrelevanter Features auf 0 und daher werden beim Erstellen von Vorhersagen keine Ressource auf diese schlechten Features aufgewendet. Wenn L1-Norm-Regularisierung verwendet wird, ist der Trainingsalgorithmus OWL-QN. Die L2-Norm-Regularisierung ist für Daten vorzuziehen, die nicht gering sind und die Existenz großer Gewichte weitgehend bestrafen.
Eine aggressive Regularisierung (d. h. das Zuweisen großer Koeffizienten zu L1-Norm- oder L2-Norm-Regularisierungsbegriffen) kann die Vorhersagekapazitä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.
Im Abschnitt "Siehe auch" finden Sie Links zu Verwendungsbeispielen.
Felder
| Name | Beschreibung |
|---|---|
| FeatureColumn |
Die Featurespalte, die der Trainer erwartet. (Geerbt von TrainerEstimatorBase<TTransformer,TModel>) |
| LabelColumn |
Die Bezeichnungsspalte, die der Trainer erwartet. Dies kann sein |
| WeightColumn |
Die Gewichtsspalte, die der Trainer erwartet. Dies kann sein |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Info |
Das IEstimator<TTransformer> Ziel mithilfe eines linearen Regressionsmodells, das mit der L-BFGS-Methode trainiert wurde, vorherzusagen. (Geerbt von LbfgsTrainerBase<TOptions,TTransformer,TModel>) |
Methoden
| Name | Beschreibung |
|---|---|
| Fit(IDataView, LinearModelParameters) |
Setzt die Schulung einer LbfgsLogisticRegressionBinaryTrainer bereits trainierten |
| Fit(IDataView) |
Züge und Gibt einen ITransformer. (Geerbt von TrainerEstimatorBase<TTransformer,TModel>) |
| GetOutputSchema(SchemaShape) |
Das IEstimator<TTransformer> Ziel mithilfe eines linearen Regressionsmodells, das mit der L-BFGS-Methode trainiert wurde, vorherzusagen. (Geerbt von TrainerEstimatorBase<TTransformer,TModel>) |
Erweiterungsmethoden
| Name | Beschreibung |
|---|---|
| AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Fügen Sie einen "Zwischenspeicherungsprüfpunkt" an die Schätzkette an. Dadurch wird sichergestellt, dass die nachgeschalteten Schätzer anhand zwischengespeicherter Daten trainiert werden. Es ist hilfreich, einen Zwischenspeicherprüfpunkt vor Trainern zu haben, die mehrere Datendurchläufe übernehmen. |
| WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Geben Sie bei einer Schätzung ein Wrapping-Objekt zurück, das eine Stellvertretung aufruft, sobald Fit(IDataView) sie aufgerufen wird. Es ist häufig wichtig, dass ein Schätzer Informationen zu dem, was passt, zurückgeben, weshalb die Fit(IDataView) Methode ein speziell typiertes Objekt und nicht nur ein allgemeines ITransformerObjekt zurückgibt. IEstimator<TTransformer> Gleichzeitig werden jedoch oft in Pipelines mit vielen Objekten gebildet, daher müssen wir möglicherweise eine Kette von Schätzern bauen, über EstimatorChain<TLastTransformer> die der Schätzer, für den wir den Transformator erhalten wollen, irgendwo in dieser Kette begraben wird. Für dieses Szenario können wir über diese Methode einen Delegat anfügen, der aufgerufen wird, sobald "Fit" aufgerufen wird. |
Gilt für:
Weitere Informationen
- LbfgsLogisticRegressionBinaryTrainer.Options
- LbfgsLogisticRegression(BinaryClassificationCatalog+BinaryClassificationTrainers, String, String, String, Single, Single, Single, Int32, Boolean)
- LbfgsLogisticRegression(BinaryClassificationCatalog+BinaryClassificationTrainers, LbfgsLogisticRegressionBinaryTrainer+Options)