Condividi tramite


PairwiseCouplingTrainer Classe

Definizione

Oggetto IEstimator<TTransformer> per il training di un classificatore multiclasse che usa il classificatore binario specificato.

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)
Ereditarietà

Commenti

Per creare questo trainer, usare PairwiseCoupling.

Colonne di input e output

I dati della colonna dell'etichetta di input devono essere di tipo chiave e la colonna di funzionalità deve essere un vettore di dimensioni note di Single.

Questo formatore restituisce le colonne seguenti:

Nome colonna di output Tipo di colonna Descrizione
Score Vettore di Single I punteggi di tutte le classi. Valori più alti indicano maggiori probabilità di rientrare nella classe associata. Se l'elemento i-esimo ha il valore più elevato, l'indice delle etichette stimate sarà i. Si noti che i è l'indice a base zero.
PredictedLabel tipo di chiave L'indice dell'etichetta stimata. Se il valore è i, l'etichetta effettiva potrebbe essere la categoria i-esima nel tipo di etichetta di input con valori key.

Caratteristiche del trainer

Attività di Machine Learning Classificazione multiclasse
È necessaria la normalizzazione? Dipende dal classificatore binario sottostante
È necessaria la memorizzazione nella cache?
NuGet richiesto oltre a Microsoft.ML Nessuno
Esportabile in ONNX No

Dettagli dell'algoritmo di training

In questa strategia viene eseguito il training di un algoritmo di classificazione binaria in ogni coppia di classi. Le coppie non sono ordinate ma create con sostituzione: quindi, se ci sono tre classi, 0, 1, 2, si eseguirà il training dei classificatori per le coppie (0,0), (0,1), (0,2), (1,1), (1,2) e (2,2). Per ogni classificatore binario, un punto dati di input viene considerato un esempio positivo se si trova in una delle due classi della coppia e un esempio negativo in caso contrario. In fase di stima, le probabilità per ogni coppia di classi vengono considerate come probabilità di essere in una classe della coppia specificata, e le probabilità predittive finali fuori da tale classe vengono calcolate in base alla probabilità che un esempio sia in qualsiasi coppia specificata.

Ciò consente di sfruttare i trainer che non hanno naturalmente un'opzione multiclasse, ad esempio usando per FastTreeBinaryTrainer risolvere un problema multiclasse. In alternativa, può consentire ML.NET di risolvere un problema "più semplice" anche nei casi in cui il trainer ha un'opzione multiclasse, ma l'uso diretto non è pratico a causa, in genere, dei vincoli di memoria. Ad esempio, mentre una regressione logistica multiclasse è un modo più principiod per risolvere un problema multiclasse, è necessario che il trainer archivia uno stato molto più intermedio sotto forma di cronologia L-BFGS per tutte le classi simultaneamente, anziché solo uno per uno come sarebbe necessario per un modello di classificazione di accoppiamento a coppie.

Controllare la sezione Vedere anche i collegamenti agli esempi di utilizzo.

Proprietà

Info

Oggetto IEstimator<TTransformer> per il training di un classificatore multiclasse che usa il classificatore binario specificato.

(Ereditato da MetaMulticlassTrainer<TTransformer,TModel>)

Metodi

Fit(IDataView)

Adatta i dati al trasformatore

GetOutputSchema(SchemaShape)

Ottiene le colonne di output.

(Ereditato da MetaMulticlassTrainer<TTransformer,TModel>)

Metodi di estensione

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

Aggiungere un "checkpoint di memorizzazione nella cache" alla catena di stima. Ciò garantisce che gli estimatori downstream vengano sottoposti a training sui dati memorizzati nella cache. È utile avere un checkpoint di memorizzazione nella cache prima dei training che accettano più passaggi di dati.

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

Dato un stimatore, restituire un oggetto wrapping che chiamerà un delegato una volta Fit(IDataView) chiamato. Spesso è importante che un stimatore restituisca informazioni su ciò che è stato adatto, che è il motivo per cui il Fit(IDataView) metodo restituisce un oggetto tipizzato in modo specifico, anziché solo un oggetto generale ITransformer. Tuttavia, allo stesso tempo, IEstimator<TTransformer> sono spesso formati in pipeline con molti oggetti, quindi potrebbe essere necessario creare una catena di stima tramite EstimatorChain<TLastTransformer> dove lo stimatore per cui si vuole ottenere il trasformatore è sepolto da qualche parte in questa catena. Per questo scenario, è possibile collegare questo metodo a un delegato che verrà chiamato una volta chiamato fit.

Si applica a

Vedi anche