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 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. |