Condividi tramite


SdcaLogisticRegressionBinaryTrainer Classe

Definizione

Oggetto IEstimator<TTransformer> per il training di un modello di classificazione della regressione logistica binaria usando il metodo di ascente della doppia coordinata stocastica. Il modello sottoposto a training è calibrato e può produrre probabilità immettendo il valore di output della funzione lineare in un PlattCalibratoroggetto .

public sealed class SdcaLogisticRegressionBinaryTrainer : Microsoft.ML.Trainers.SdcaBinaryTrainerBase<Microsoft.ML.Calibrators.CalibratedModelParametersBase<Microsoft.ML.Trainers.LinearBinaryModelParameters,Microsoft.ML.Calibrators.PlattCalibrator>>
type SdcaLogisticRegressionBinaryTrainer = class
    inherit SdcaBinaryTrainerBase<CalibratedModelParametersBase<LinearBinaryModelParameters, PlattCalibrator>>
Public NotInheritable Class SdcaLogisticRegressionBinaryTrainer
Inherits SdcaBinaryTrainerBase(Of CalibratedModelParametersBase(Of LinearBinaryModelParameters, PlattCalibrator))
Ereditarietà

Commenti

Per creare questo trainer, usare SdcaLogisticRegression o SdcaLogisticRegression(Options).To create this trainer, use SdcaLogisticRegression or SdcaLogisticRegression(Options).To create this trainer, use SdcaLogisticRegression or SdcaLogisticRegression(Options).To create this trainer,

Colonne di input e output

I dati della colonna dell'etichetta di input devono essere Boolean. I dati delle colonne delle funzionalità di input devono essere un vettore di dimensioni note di Single.

Questo formatore restituisce le colonne seguenti:

Nome colonna di output Tipo di colonna Descrizione
Score Single Punteggio non associato calcolato dal modello.
PredictedLabel Boolean L'etichetta stimata, in base al segno del punteggio. Un punteggio negativo esegue il mapping a false e un punteggio negativo esegue il mapping a true.
Probability Single Probabilità calcolata calibrando il punteggio di avere true come etichetta. Il valore di probabilità è compreso nell'intervallo [0, 1].

Caratteristiche del trainer

Attività di Machine Learning Classificazione binaria
È necessaria la normalizzazione?
È necessaria la memorizzazione nella cache? No
NuGet richiesto oltre a Microsoft.ML Nessuno
Esportabile in ONNX

Dettagli dell'algoritmo di training

Questo formatore si basa sul metodo SDCA (Stochastic Dual Coordinate Ascent), una tecnica di ottimizzazione di stato dell'arte per le funzioni obiettivo convesse. L'algoritmo può essere ridimensionato perché è un algoritmo di training di streaming come descritto in un documento KDD migliore.

La convergenza viene sottoscritta periodicamente applicando la sincronizzazione tra le variabili primali e doppie in un thread separato. Sono disponibili anche diverse scelte di funzioni di perdita, ad esempio perdita della cerniera e perdita logistica. A seconda della perdita usata, il modello sottoposto a training può essere, ad esempio, supportare la macchina vettoriale o la regressione logistica. Il metodo SDCA combina diverse delle migliori proprietà, ad esempio la possibilità di eseguire l'apprendimento in streaming (senza adattare l'intero set di dati nella memoria), raggiungendo un risultato ragionevole con alcune analisi dell'intero set di dati (ad esempio, vedere esperimenti in questo documento) e la spesa per nessun calcolo su zero nei set di dati sparse.

Si noti che SDCA è un algoritmo di ottimizzazione di streaming e stochastic. Il risultato dipende dall'ordine dei dati di training perché la tolleranza di arresto non è abbastanza stretta. Nell'ottimizzazione fortemente convessa, la soluzione ottimale è unica e quindi tutti raggiungono lo stesso posto. Anche nei casi non fortemente convesso, si otterranno soluzioni altrettanto valide da eseguire per l'esecuzione. Per i risultati riproducibili, è consigliabile impostare "Shuffle" su False e "NumThreads" su 1.

Questa classe usa la riduzione al minimo dei rischi empirici (ad esempio, ERM) per formulare il problema di ottimizzazione basato sui dati raccolti. Si noti che il rischio empirico viene in genere misurato applicando una funzione di perdita sulle stime del modello sui punti dati raccolti. Se i dati di training non contengono punti dati sufficienti (ad esempio, per eseguire il training di un modello lineare in $n spazio $-dimensionale, è necessario almeno $n$ data point), l'overfitting può verificarsi in modo che il modello prodotto da ERM sia valido per descrivere i dati di training, ma potrebbe non riuscire a stimare i risultati corretti in eventi non noti. La regolarizzazione è una tecnica comune per alleviare tale fenomeno penalizzando la grandezza (in genere misurata dalla funzione norm) dei parametri del modello. Questo formatore supporta la regolarizzazione della rete elastica, che penalizza una combinazione lineare di L1-norm (LASSO), $|| \textbf{w}_c || _1$, e L2-norm (cresta), $|| \textbf{w}_c || Regolarizzazioni _2^2$ per $c=1,\dots,m$. Le regolarizzazioni di L1-norm e L2-norm hanno effetti diversi e usano diversi usi che sono complementari in determinati aspetti.

Insieme all'algoritmo di ottimizzazione implementato, la regolarizzazione della norma L1 può aumentare la spazità dei pesi del modello, $\textbf{w}_1,\dots,\textbf{w}_m$. Per set di dati ad alta dimensione e sparse, se gli utenti selezionano attentamente il coefficiente della norma L1, è possibile ottenere una buona qualità di stima con un modello con solo alcuni pesi non zero (ad esempio, il 1% dei pesi totali del modello) senza influire sulla potenza di stima. Al contrario, la norma L2 non può aumentare la spazità del modello sottoposto a training, ma può comunque impedire l'overfitting evitando valori di parametri di grandi dimensioni. A volte, l'uso della norma L2 porta a una migliore qualità di stima, quindi gli utenti potrebbero comunque voler provare e ottimizzare i coefficienti della norma L1 e L2-norm. Si noti che l'uso di L1-norm implica che la distribuzione di tutti i parametri del modello è una distribuzione laplace mentre la norma L2 implica una distribuzione Gaussian per loro.

Una regolarizzazione aggressiva (ovvero l'assegnazione di coefficienti di grandi dimensioni ai termini di regolarizzazione di L1-norm o L2) può danneggiare la capacità predittiva escludendo variabili importanti dal modello. Ad esempio, un coefficiente L1-norm molto grande può forzare tutti i parametri a essere zero e portare a un modello semplice. Pertanto, scegliere i coefficienti di regolarizzazione corretti è importante in pratica.

Per altre informazioni, vedere:

Controllare la sezione Vedere anche per i collegamenti ad esempi dell'utilizzo.

Campi

FeatureColumn

Colonna di funzionalità prevista dal trainer.

(Ereditato da TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

Colonna etichetta prevista dal trainer. Può essere null, che indica che l'etichetta non viene usata per il training.

(Ereditato da TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

Colonna di peso prevista dal trainer. Può essere null, che indica che il peso non viene usato per il training.

(Ereditato da TrainerEstimatorBase<TTransformer,TModel>)

Proprietà

Info

Oggetto IEstimator<TTransformer> per il training di un modello di classificazione della regressione logistica binaria usando il metodo di ascente della doppia coordinata stocastica. Il modello sottoposto a training è calibrato e può produrre probabilità immettendo il valore di output della funzione lineare in un PlattCalibratoroggetto .

(Ereditato da SdcaBinaryTrainerBase<TModelParameters>)

Metodi

Fit(IDataView)

Esegue il training e restituisce un ITransformeroggetto .

(Ereditato da TrainerEstimatorBase<TTransformer,TModel>)
GetOutputSchema(SchemaShape)

Oggetto IEstimator<TTransformer> per il training di un modello di classificazione della regressione logistica binaria usando il metodo di ascente della doppia coordinata stocastica. Il modello sottoposto a training è calibrato e può produrre probabilità immettendo il valore di output della funzione lineare in un PlattCalibratoroggetto .

(Ereditato da TrainerEstimatorBase<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