OneVersusAllTrainer Klasse

Definition

Die IEstimator<TTransformer> Schulung eines 1-versus-all-Klassenklassifizierers, der den angegebenen binären Klassifizierer verwendet.

public sealed class OneVersusAllTrainer : Microsoft.ML.Trainers.MetaMulticlassTrainer<Microsoft.ML.Data.MulticlassPredictionTransformer<Microsoft.ML.Trainers.OneVersusAllModelParameters>,Microsoft.ML.Trainers.OneVersusAllModelParameters>
type OneVersusAllTrainer = class
    inherit MetaMulticlassTrainer<MulticlassPredictionTransformer<OneVersusAllModelParameters>, OneVersusAllModelParameters>
Public NotInheritable Class OneVersusAllTrainer
Inherits MetaMulticlassTrainer(Of MulticlassPredictionTransformer(Of OneVersusAllModelParameters), OneVersusAllModelParameters)
Vererbung

Hinweise

Um diesen Trainer zu erstellen, verwenden Sie OneVersusAll.

Eingabe- und Ausgabespalten

Die Spaltendaten der Eingabebeschriftung 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.

Trainereigenschaften

ML-Aufgabe Multiklassenklassifizierung
Ist normalisierung erforderlich? Hängt von dem zugrunde liegenden binären Klassifizierer ab
Ist zwischenspeichern erforderlich? Yes
Erforderliches NuGet zusätzlich zu Microsoft.ML Keine
Exportierbar in ONNX Yes

Details des Schulungsalgorithmus

Bei der OVA-Strategie (One-versus All) wird ein binärer Klassifizierungsalgorithmus verwendet, um einen Klassifizierer für jede Klasse zu trainieren, die diese Klasse von allen anderen Klassen unterscheidet. Die Vorhersage wird dann ausgeführt, indem diese binären Klassifizierer ausgeführt und die Vorhersage mit der höchsten Konfidenzbewertung ausgewählt wird. Dieser Algorithmus kann mit jedem der binären Klassifizierer in ML.NET verwendet werden. Einige binäre Klassifizierer verfügen bereits über Implementierungen für Probleme mit mehreren Klassen, daher können Benutzer je nach Kontext eine auswählen. Die OVA-Version eines binären Klassifizierers, z. B. Umbruch einer LightGbmBinaryTrainer, kann anders LightGbmMulticlassTrainersein als bei der Entwicklung eines Klassifizierers mit mehreren Klassen direkt. Beachten Sie, dass auch wenn der Klassifizierer angibt, dass es keine Zwischenspeicherung benötigt, fordert OneVersusAll immer die Zwischenspeicherung an, da mehrere Übergänge über den Datensatz ausgeführt werden. Dieser Trainer fordert die Normalisierung aus der Datenpipeline an, wenn der Klassifizierer angibt, dass er davon profitieren würde.

Auf diese Weise können Sie Trainer nutzen, die nicht natürlich über eine mehrklassige Option verfügen, z. B. mithilfe der FastTreeBinaryTrainer Methode zum Lösen eines Problems mit mehreren Klassen. Alternativ kann es ML.NET ermöglichen, ein "einfacheres" Problem auch in den Fällen zu lösen, in denen der Trainer über eine mehrklassige Option verfügt, aber die Verwendung direkt ist aufgrund von Speichereinschränkungen in der Regel nicht praktisch. Während z. B. eine mehrklassige logistische Regression eine prinzipale Möglichkeit zur Lösung eines Mehrklassenproblems ist, muss der Trainer viel mehr Zwischenzustand in Form der L-BFGS-Geschichte für alle Klassen gleichzeitig speichern, anstatt nur eins wie für eins-/alle Klassifizierungsmodell erforderlich wäre.

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

Eigenschaften

Info

Die IEstimator<TTransformer> Schulung eines 1-versus-all-Klassenklassifizierers, der den angegebenen binären Klassifizierer verwendet.

(Geerbt von MetaMulticlassTrainer<TTransformer,TModel>)

Methoden

Fit(IDataView)

Trainiert ein MulticlassPredictionTransformer<TModel> Modell.

GetOutputSchema(SchemaShape)

Ruft die Ausgabespalten ab.

(Geerbt von MetaMulticlassTrainer<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