OneVersusAllTrainer Třída

Definice

Pro IEstimator<TTransformer> trénování klasifikátoru 1 a všech tříd, který používá zadaný binární klasifikátor.

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)
Dědičnost

Poznámky

K vytvoření tohoto trenéra použijte OneVersusAll.

Vstupní a výstupní sloupce

Vstupní data sloupce popisku musí být klíčovým typem a sloupec funkce musí být známým vektorem Singlevelikosti .

Tento trenér vypíše následující sloupce:

Název výstupního sloupce Typ sloupce Description
Score Vektor Single Skóre všech tříd. Vyšší hodnota znamená, že vyšší pravděpodobnost spadá do přidružené třídy. Pokud má i-th element největší hodnotu, predikovaný index popisku by byl i. Všimněte si, že i je index založený na nule.
PredictedLabel typ klíče Index predikovaného popisku. Pokud je jeho hodnota i, skutečný popisek by byl i-th kategorií ve vstupním typu popisku s hodnotou klíče.

Charakteristiky trenéra

Úloha strojového učení Klasifikace s více třídami
Vyžaduje se normalizace? Závisí na podkladovém binárním klasifikátoru.
Vyžaduje se ukládání do mezipaměti? Yes
Požadovaný NuGet kromě Microsoft.ML Žádné
Exportovatelné do ONNX Yes

Podrobnosti trénovacího algoritmu

V strategii OVA (one-versus-all) se binární klasifikační algoritmus používá k trénování jednoho klasifikátoru pro každou třídu, která rozlišuje tuto třídu od všech ostatních tříd. Predikce se pak provádí spuštěním těchto binárních klasifikátorů a výběrem předpovědi s nejvyšším skóre spolehlivosti. Tento algoritmus lze použít s libovolným binárním klasifikátorem v ML.NET. Několik binárních klasifikátorů již má implementaci pro problémy s více třídami, takže uživatelé můžou zvolit některý z nich v závislosti na kontextu. Verze OVA binárního klasifikátoru, jako je zabalení LightGbmBinaryTrainer, se může lišit od LightGbmMulticlassTrainer, která vyvíjí klasifikátor více tříd přímo. Mějte na paměti, že i když klasifikátor indikuje, že není nutné ukládání do mezipaměti, OneVersusAll bude vždy požadovat ukládání do mezipaměti, protože bude provádět více průchodů v datové sadě. Tento trenér požádá o normalizaci z datového kanálu, pokud klasifikátor indikuje, že by z něj mělo prospěch.

To vám umožní zneužít trenéry, kteří nemají přirozeně vícetřídovou možnost, například pomocí FastTreeBinaryTrainer nástroje k vyřešení problému s více třídami. Alternativně může umožnit ML.NET vyřešit "jednodušší" problém i v případech, kdy má trenér vícetřídovou možnost, ale použití přímo není praktické z důvodu, obvykle omezení paměti. Zatímco logistická regrese s více třídami je spíše principiálnější způsob, jak vyřešit problém s více třídami, vyžaduje, aby trenér ukládal mnohem zprostředkující stav ve formě historie L-BFGS pro všechny třídy současně, spíše než jen jeden po druhém, jak by bylo potřeba pro klasifikační model 1 a vše.

Odkazy na příklady použití najdete v části Viz také.

Vlastnosti

Info

Pro IEstimator<TTransformer> trénování klasifikátoru 1 a všech tříd, který používá zadaný binární klasifikátor.

(Zděděno od MetaMulticlassTrainer<TTransformer,TModel>)

Metody

Fit(IDataView)

Trénuje MulticlassPredictionTransformer<TModel> model.

GetOutputSchema(SchemaShape)

Získá výstupní sloupce.

(Zděděno od MetaMulticlassTrainer<TTransformer,TModel>)

Metody rozšíření

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

Připojte k řetězci estimátoru kontrolní bod ukládání do mezipaměti. Tím zajistíte, aby podřízené estimátory byly vytrénovány proti datům uloženým v mezipaměti. Před průchodem více dat je užitečné mít kontrolní bod ukládání do mezipaměti.

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

Vzhledem k estimátoru vraťte zalamovací objekt, který zavolá delegáta jednou Fit(IDataView) . Často je důležité, aby odhadovač vrátil informace o tom, co bylo vhodné, což je důvod, proč Fit(IDataView) metoda vrací konkrétně typ objekt, nikoli jen obecné ITransformer. Ve stejnou dobu se však často vytvářejí do kanálů s mnoha objekty, takže možná budeme muset vytvořit řetězec estimátorů, kde EstimatorChain<TLastTransformer> je odhadovač, IEstimator<TTransformer> pro který chceme získat transformátor, zakopán někde v tomto řetězci. Pro tento scénář můžeme prostřednictvím této metody připojit delegáta, který bude volána po zavolání fit.

Platí pro

Viz také