Share via


PairwiseCouplingTrainer Třída

Definice

Pro IEstimator<TTransformer> trénování párového párového klasifikátoru více tříd, který používá zadaný binární klasifikátor.

public sealed class PairwiseCouplingTrainer : Microsoft.ML.Trainers.MetaMulticlassTrainer<Microsoft.ML.Data.MulticlassPredictionTransformer<Microsoft.ML.Trainers.PairwiseCouplingModelParameters>,Microsoft.ML.Trainers.PairwiseCouplingModelParameters>
type PairwiseCouplingTrainer = class
    inherit MetaMulticlassTrainer<MulticlassPredictionTransformer<PairwiseCouplingModelParameters>, PairwiseCouplingModelParameters>
Public NotInheritable Class PairwiseCouplingTrainer
Inherits MetaMulticlassTrainer(Of MulticlassPredictionTransformer(Of PairwiseCouplingModelParameters), PairwiseCouplingModelParameters)
Dědičnost

Poznámky

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

Vstupní a výstupní sloupce

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

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á prvek i-th největší hodnotu, bude predikovaný index popisku 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 kategorie v typu vstupního popisku s hodnotou klíče.

Charakteristiky trenéra

Úloha strojového učení Vícetřídní klasifikace
Vyžaduje se normalizace? Závisí na podkladovém binárním klasifikátoru.
Vyžaduje se ukládání do mezipaměti? Yes
Povinné nuGet kromě Microsoft.ML Žádné
Exportovatelný do ONNX No

Podrobnosti o trénovacím algoritmu

V této strategii se binární klasifikační algoritmus natrénuje na jednotlivých dvojicích tříd. Dvojice nejsou seřazené, ale vytvoří se s nahrazením: takže pokud existují tři třídy, 0, 1, 2, vytrénujeme klasifikátory pro páry (0,0), (0,1), (0,2), (1,1), (1,2) a (2,2). U každého binárního klasifikátoru se vstupní datový bod považuje za pozitivní příklad, pokud je v některé ze dvou tříd v páru, a v opačném případě se jedná o záporný příklad. V době předpovědi se pravděpodobnosti pro každou dvojici tříd považují za pravděpodobnost, že je v některé třídě páru daná data, a konečné prediktivní pravděpodobnosti z této třídy se počítají vzhledem k pravděpodobnosti, že příklad je v libovolném páru.

To vám umožní využít trenéry, kteří nemají přirozeně vícetřídovou možnost, například pomocí FastTreeBinaryTrainer příkazu k vyřešení problému 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 možnost multitřídy, 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ádaly mnohem zprostředkující stav ve formě historie L-BFGS pro všechny třídy současně, a ne jen jeden po druhém, jak by bylo potřeba pro model klasifikace párových spojek.

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

Vlastnosti

Info

Pro IEstimator<TTransformer> trénování párového párového klasifikátoru více tříd, který používá zadaný binární klasifikátor.

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

Metody

Fit(IDataView)

Zapadá data do transformátoru.

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 odhadu kontrolní bod ukládání do mezipaměti. Tím zajistíte, aby se podřízené estimátory natrénovaly na data uložená 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>)

Pokud získáte odhadátor, vraťte obtékání objektu, 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ě zadaný objekt, a 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ězec odhadovačů prostřednictvím EstimatorChain<TLastTransformer> toho, kde je odhadovač, IEstimator<TTransformer> pro který chceme získat transformátor, uložen 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 volání fit.

Platí pro

Viz také