OneVersusAllTrainer Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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. |