OneVersusAllTrainer 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.
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 Vektor der bekannten Größe sein Single.
Der Trainer gibt folgende Spalten aus:
| Name der Ausgabespalte | Spaltentyp | Description |
|---|---|---|
Score |
Vektor von Single | Die Bewertungen aller Klassen. Höherer Wert bedeutet eine höhere Wahrscheinlichkeit, in die zugeordnete Klasse zu fallen. Wenn das i-th-Element den größten Wert aufweist, wäre der vorhergesagte Bezeichnungsindex i. Beachten Sie, dass i nullbasierten Index ist. |
PredictedLabel |
Schlüssel-Typ | Der Index der vorhergesagten Bezeichnung. Wenn der Wert i ist, würde die tatsächliche Beschriftung die i-th-Kategorie im Eingabebezeichnungstyp mit Schlüsselwert sein. |
Trainermerkmale
| Machine Learning-Aufgabe | Mehrklassenklassifizierung |
| Ist normalisierung erforderlich? | Hängt vom zugrunde liegenden binären Klassifizierer ab. |
| Ist zwischenspeichern erforderlich? | Yes |
| Erforderliches NuGet zusätzlich zu Microsoft.ML | Nichts |
| 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, der 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 der beiden Klassifizierer auswählen. Die OVA-Version eines binären Klassifizierers, z. B. das Umschließen eines LightGbmBinaryTrainer, kann sich von LightGbmMulticlassTrainerder unterscheiden, die einen Klassifizierer mit mehreren Klassen direkt entwickelt. Beachten Sie, dass OneVersusAll auch dann, wenn der Klassifizierer angibt, dass es keine Zwischenspeicherung benötigt, da mehrere Übergaben über den Datensatz ausgeführt werden. Dieser Trainer fordert die Normalisierung von der Datenpipeline an, wenn der Klassifizierer angibt, dass er davon profitieren würde.
Auf diese Weise können Sie Trainer ausnutzen, die nicht natürlich über eine Mehrklassenoption verfügen, z. B. mithilfe der FastTreeBinaryTrainer Möglichkeit, ein Problem mit mehreren Klassen zu lösen. Alternativ kann es ML.NET ermöglichen, ein "einfacheres" Problem auch in den Fällen zu lösen, in denen der Trainer über eine Mehrklassenoption verfügt, aber die direkte Verwendung ist aufgrund von Speichereinschränkungen in der Regel nicht praktisch. Während beispielsweise eine mehrklassige logistische Regression eine prinzipale Methode 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:1, wie für eins-gegen-alle Klassifizierungsmodell erforderlich wäre.
Im Abschnitt "Siehe auch" finden Sie Links zu Verwendungsbeispielen.
Eigenschaften
| Name | Beschreibung |
|---|---|
| Info |
Die IEstimator<TTransformer> Schulung eines 1-versus-all-Klassenklassifizierers, der den angegebenen binären Klassifizierer verwendet. (Geerbt von MetaMulticlassTrainer<TTransformer,TModel>) |
Methoden
| Name | Beschreibung |
|---|---|
| Fit(IDataView) |
Trainiert ein MulticlassPredictionTransformer<TModel> Modell. |
| GetOutputSchema(SchemaShape) |
Ruft die Ausgabespalten ab. (Geerbt von MetaMulticlassTrainer<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. |