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 typ klíče 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 větší pravděpodobnost spadá do přidružené třídy. Pokud má prvek i-th největší hodnotu, předpovězený index popisku by byl i. Všimněte si, že i je index založený na nule.
PredictedLabel klíč typ Index predikovaného popisku. Pokud je 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? Ano
Požadovaný NuGet kromě Microsoft.ML None
Exportovatelné do ONNX Ano

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á tuto třídu rozlišuje od všech ostatních tříd. Predikce se pak provede 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átory 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é mohou zvolit jeden 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 s více třídami přímo. Všimněte si, že i když klasifikátor indikuje, že nepotřebuje 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ů nad datová sada. Tento trenér požádá o normalizaci z datového kanálu, pokud klasifikátor indikuje, že by z něj měl prospěch.

To vám umožní zneužít trenéry, které nemají přirozeně vícetřídovou možnost, například pomocí FastTreeBinaryTrainer možnosti vyřešit problém s více třídami. Alternativně může ML.NET umožnit řešení "jednoduššího" problému 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 řešení problému s více třídami, vyžaduje, aby trenér uložil mnohem středně pokročilý 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

Name Description
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

Name Description
Fit(IDataView)

Trénuje MulticlassPredictionTransformer<TModel> model.

GetOutputSchema(SchemaShape)

Získá výstupní sloupce.

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

Metody rozšíření

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

Připojte kontrolní bod ukládání do mezipaměti do řetězu odhadce. Tím zajistíte, aby podřízené estimátory byly natré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 objekt obtékání, který jednou zavolá delegáta Fit(IDataView) . Často je důležité, aby estimátor vrátil informace o tom, co bylo vhodné, což je důvod, proč Fit(IDataView) metoda vrací konkrétní typ objekt, spíše než 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ěz odhadců prostřednictvím IEstimator<TTransformer> místa, kde odhadovač, EstimatorChain<TLastTransformer> pro který chceme získat transformátor, je někde v tomto řetězu. 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é