Condividi tramite


OneVersusAllTrainer Classe

Definizione

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

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

Commenti

Per creare questo formatore, usare OneVersusAll.

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 formatore

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

Dettagli algoritmo di training

Nella strategia OVA (One-Versus-All), viene usato un algoritmo di classificazione binaria per eseguire il training di un classificatore per ogni classe, che distingue tale classe da tutte le altre classi. La stima viene quindi eseguita eseguendo questi classificatori binari e scegliendo la stima con il punteggio di attendibilità più alto. Questo algoritmo può essere usato con uno dei classificatori binari in ML.NET. Alcuni classificatori binari hanno già implementazione per problemi multiclasse, quindi gli utenti possono sceglierne uno a seconda del contesto. La versione OVA di un classificatore binario, ad esempio il wrapping di un LightGbmBinaryTraineroggetto , può essere diversa da LightGbmMulticlassTrainer, che sviluppa direttamente un classificatore multiclasse. Si noti che anche se il classificatore indica che non è necessaria la memorizzazione nella cache, OneVersusAll richiederà sempre la memorizzazione nella cache, perché eseguirà più passaggi sul set di dati. Questo formatore richiederà la normalizzazione dalla pipeline di dati se il classificatore ne indica il vantaggio.

In questo modo è possibile 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 formatore 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ù principio per risolvere un problema multiclasse, richiede che il formatore archivii molto più stato intermedio sotto forma di cronologia L-BFGS per tutte le classi contemporaneamente, anziché solo uno per uno come sarebbe necessario per un modello di classificazione uno-a-tutti.

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

Proprietà

Info

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

(Ereditato da MetaMulticlassTrainer<TTransformer,TModel>)

Metodi

Fit(IDataView)

Esegue il training di un MulticlassPredictionTransformer<TModel> modello.

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 in base ai dati memorizzati nella cache. È utile avere un checkpoint di memorizzazione nella cache prima che i formatori eseseguono più passaggi di dati.

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

Dato un estimator, restituire un oggetto wrapping che chiamerà un delegato una volta Fit(IDataView) chiamato. È spesso importante che uno strumento di stima restituisca informazioni sull'adattamento, 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> vengono spesso formati in pipeline con molti oggetti, quindi potrebbe essere necessario creare una catena di estimatori tramite EstimatorChain<TLastTransformer> dove lo strumento di stima per il quale si vuole ottenere il trasformatore è sepolto in una posizione in questa catena. Per questo scenario, è possibile collegare un delegato che verrà chiamato una volta chiamato fit.

Si applica a

Vedi anche