LbfgsMaximumEntropyMulticlassTrainer Klasse
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 maximal entropy multiklassigen Klassifizierers, der mit der L-BFGS-Methode trainiert wurde.
public sealed class LbfgsMaximumEntropyMulticlassTrainer : Microsoft.ML.Trainers.LbfgsTrainerBase<Microsoft.ML.Trainers.LbfgsMaximumEntropyMulticlassTrainer.Options,Microsoft.ML.Data.MulticlassPredictionTransformer<Microsoft.ML.Trainers.MaximumEntropyModelParameters>,Microsoft.ML.Trainers.MaximumEntropyModelParameters>
type LbfgsMaximumEntropyMulticlassTrainer = class
inherit LbfgsTrainerBase<LbfgsMaximumEntropyMulticlassTrainer.Options, MulticlassPredictionTransformer<MaximumEntropyModelParameters>, MaximumEntropyModelParameters>
Public NotInheritable Class LbfgsMaximumEntropyMulticlassTrainer
Inherits LbfgsTrainerBase(Of LbfgsMaximumEntropyMulticlassTrainer.Options, MulticlassPredictionTransformer(Of MaximumEntropyModelParameters), MaximumEntropyModelParameters)
- Vererbung
Um diesen Trainer zu erstellen, verwenden Sie LbfgsMaximumEntropy oder LbfgsMaximumEntropy(Options).
Die Eingabebeschriftungsspaltendaten müssen schlüsseltyp sein, und die Featurespalte muss ein bekannter Vektor sein Single.
Der Trainer gibt folgende Spalten aus:
Name der Ausgabespalte | Spaltentyp | Beschreibung |
---|---|---|
Score |
Vektor von Single | Die Bewertungen aller Klassen. Ein höherer Wert bedeutet eine höhere Wahrscheinlichkeit, in die zugehörige Klasse zu fallen. Wenn das i-te Element den größten Wert hat, wäre der vorhergesagte Bezeichnungsindex i. Beachten Sie, dass „i“ ein nullbasierter Index ist. |
PredictedLabel |
Typ key | Der Index der vorhergesagten Bezeichnung. Wenn sein Wert i ist, wäre die eigentliche Bezeichnung die i-te Kategorie des Typs der Schlüssel-Wert-Eingabebezeichnung. |
ML-Aufgabe | Multiklassenklassifizierung |
Ist die Normalisierung erforderlich? | Yes |
Ist zwischenspeichern erforderlich? | No |
Erforderliche NuGet zusätzlich zu Microsoft.ML | Keine |
Exportierbar in ONNX | Yes |
Das maximale Entropiemodell ist eine Generalisierung der linearen logistischen Regression. Der Hauptunterschied zwischen dem maximalen Entropiemodell und der logistischen Regression ist die Anzahl der Klassen, die im betrachteten Klassifizierungsproblem unterstützt werden. Die logistikische Regression ist nur für binäre Klassifizierungen vorgesehen, während das maximale Entropiemodell mehrere Klassen behandelt. Siehe Abschnitt 1 in diesem Dokument für eine detaillierte Einführung.
Angenommen, die Anzahl der Klassen ist
Die implementierte Optimierungsmethode basiert auf der begrenzten Speichermethode Broyden-Fletcher-Goldfarb-Shanno-Methode (L-BFGS). L-BFGS ist eine quasi-Newton-Methode, die die teure Berechnung der Hessischen Matrix durch eine Näherung ersetzt, aber weiterhin eine schnelle Konvergenzrate wie die Methode Newtons genießt, bei der die vollständige Hessische Matrix berechnet wird. Da die L-BFGS-Näherung nur eine begrenzte Menge an historischen Zuständen verwendet, um die nächste Schrittrichtung zu berechnen, eignet es sich besonders für Probleme mit einem hochdimensionalen Featurevektor. Die Anzahl der historischen Zustände ist ein benutzerspezifischer Parameter, der eine größere Zahl verwendet, kann zu einer besseren Näherung der hessischen Matrix führen, aber auch eine höhere Berechnungskosten pro Schritt.
Diese Klasse verwendet empirische Risikominimierung (d. h. ERM), um das Optimierungsproblem zu formulieren, das auf gesammelten Daten basiert.
Beachten Sie, dass empirisches Risiko in der Regel durch Anwenden einer Verlustfunktion auf die Vorhersagen des Modells auf gesammelten Datenpunkten gemessen wird.
Wenn die Schulungsdaten nicht genügend Datenpunkte enthalten (z. B. um ein lineares Modell in
Zusammen mit dem implementierten Optimierungsalgorithmus kann die L1-Norm-Regularisierung die Sparsität der Modellgewichte,
Eine aggressive Regularisierung (d. h. große Koeffizienten zu L1-Norm- oder L2-Norm-Regularisierungsbedingungen) kann die Vorhersagekapazität beeinträchtigen, indem wichtige Variablen aus dem Modell ausgeschlossen werden. Beispielsweise kann ein sehr großer L1-Norm-Koeffizient alle Parameter auf Nullen erzwingen und zu einem trivialen Modell führen. Daher ist die Auswahl der richtigen Regularisierungskoeffizienten in der Praxis wichtig.
Überprüfen Sie den Abschnitt "Siehe auch", um Links zu Verwendungsbeispielen zu finden.
Feature |
Die Featurespalte, die der Trainer erwartet. (Geerbt von TrainerEstimatorBase<TTransformer,TModel>) |
Label |
Die Bezeichnungsspalte, die der Trainer erwartet. Kann sein |
Weight |
Die Gewichtsspalte, die der Trainer erwartet.
|
Info |
Das IEstimator<TTransformer> Ziel mithilfe eines maximal entropy multiklassigen Klassifizierers, der mit der L-BFGS-Methode trainiert wurde. (Geerbt von LbfgsTrainerBase<TOptions,TTransformer,TModel>) |
Fit(IData |
Führt die Schulung einer LbfgsMaximumEntropyMulticlassTrainer bereits trainierten |
Fit(IData |
Züge und zurückgeben eine ITransformer. (Geerbt von TrainerEstimatorBase<TTransformer,TModel>) |
Get |
Das IEstimator<TTransformer> Ziel mithilfe eines maximal entropy multiklassigen Klassifizierers, der mit der L-BFGS-Methode trainiert wurde. (Geerbt von TrainerEstimatorBase<TTransformer,TModel>) |
Append |
Fügen Sie einen "Zwischenspeicherpunkt" an die Stimatorkette an. Dadurch wird sichergestellt, dass die nachgelagerten Stimatoren gegen zwischengespeicherte Daten trainiert werden. Es ist hilfreich, einen Cache-Prüfpunkt zu haben, bevor Trainer, die mehrere Daten übergeben. |
With |
Geben Sie aufgrund einer Schätzung ein Umbruchobjekt zurück, das einen Stellvertretung aufruft, sobald Fit(IDataView) er aufgerufen wird. Es ist oft wichtig, dass eine Schätzung Informationen zu dem zurückgibt, was passt, weshalb die Fit(IDataView) Methode ein spezifisches typiertes Objekt zurückgibt, anstatt nur ein allgemeines ITransformer. Gleichzeitig IEstimator<TTransformer> werden jedoch oft Pipelines mit vielen Objekten gebildet, sodass wir möglicherweise eine Kette von EstimatorChain<TLastTransformer> Schätzern erstellen müssen, über 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 einmal aufgerufen wird, wenn die Anpassung aufgerufen wird. |
Produkt | Versionen |
---|---|
ML.NET | 1.0.0, 1.1.0, 1.2.0, 1.3.1, 1.4.0, 1.5.0, 1.6.0, 1.7.0, 2.0.0, 3.0.0, 4.0.0, Preview |
- LbfgsMaximumEntropyMulticlassTrainer.Options
- LbfgsMaximumEntropy(MulticlassClassificationCatalog+MulticlassClassificationTrainers, String, String, String, Single, Single, Single, Int32, Boolean)
- LbfgsMaximumEntropy(MulticlassClassificationCatalog+MulticlassClassificationTrainers, LbfgsMaximumEntropyMulticlassTrainer+Options)