Condividi tramite


LbfgsLogisticRegressionBinaryTrainer Classe

Definizione

Oggetto IEstimator<TTransformer> per stimare una destinazione usando un modello di regressione logistica lineare sottoposto a training con il metodo L-BFGS.

public sealed class LbfgsLogisticRegressionBinaryTrainer : Microsoft.ML.Trainers.LbfgsTrainerBase<Microsoft.ML.Trainers.LbfgsLogisticRegressionBinaryTrainer.Options,Microsoft.ML.Data.BinaryPredictionTransformer<Microsoft.ML.Calibrators.CalibratedModelParametersBase<Microsoft.ML.Trainers.LinearBinaryModelParameters,Microsoft.ML.Calibrators.PlattCalibrator>>,Microsoft.ML.Calibrators.CalibratedModelParametersBase<Microsoft.ML.Trainers.LinearBinaryModelParameters,Microsoft.ML.Calibrators.PlattCalibrator>>
type LbfgsLogisticRegressionBinaryTrainer = class
    inherit LbfgsTrainerBase<LbfgsLogisticRegressionBinaryTrainer.Options, BinaryPredictionTransformer<CalibratedModelParametersBase<LinearBinaryModelParameters, PlattCalibrator>>, CalibratedModelParametersBase<LinearBinaryModelParameters, PlattCalibrator>>
Public NotInheritable Class LbfgsLogisticRegressionBinaryTrainer
Inherits LbfgsTrainerBase(Of LbfgsLogisticRegressionBinaryTrainer.Options, BinaryPredictionTransformer(Of CalibratedModelParametersBase(Of LinearBinaryModelParameters, PlattCalibrator)), CalibratedModelParametersBase(Of LinearBinaryModelParameters, PlattCalibrator))
Ereditarietà

Commenti

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

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 formatore

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

Funzione di assegnazione dei punteggi

La regressione logistica lineare è una variante del modello lineare. Esegue il mapping del vettore di funzionalità $\textbf{x} \in {\mathbb R}^n$ a scalare tramite $\hat{y}\left( \textbf{x} \right) = \textbf{w}^T \textbf{x} + b = \sum_{j=1}^n w_j x_j + b$, dove il $x_j$ è il valore della caratteristica $j$-th, l'elemento $j$-th di $\textbf{w}$ è il coefficiente della caratteristica $j$-th, e $b$ è una distorsione imparabile. La probabilità corrispondente di ottenere un'etichetta vera è $\frac{1}{1 + e^{\hat{y}\left( \textbf{x} \right)}}$.

Dettagli algoritmo di training

La tecnica di ottimizzazione implementata si basa sul metodo Broyden-Fletcher-Goldfarb-Shanno (L-BFGS) limitato. L-BFGS è un metodo quasi Newtoniano che sostituisce il costo costoso di calcolo della matrice hessiana con un'approssimazione, ma gode ancora di una velocità di convergenza veloce come il metodo Newton in cui viene calcolata la matrice hessiana completa. Poiché l'approssimazione L-BFGS usa solo una quantità limitata di stati cronologici per calcolare la direzione del passaggio successivo, è particolarmente adatta per problemi con vettore di funzionalità ad alta dimensione. Il numero di stati cronologici è un parametro specificato dall'utente, l'uso di un numero maggiore può portare a un'approssimazione migliore alla matrice hessiana, ma anche a un costo di calcolo più elevato per ogni passaggio.

La regolarizzazione è un metodo che può rendere più trattabile un problema non corretto imponendo vincoli che forniscono informazioni per integrare i dati e che impedisce l'overfitting penalizzando la grandezza del modello in genere misurata da alcune funzioni di norma. Ciò può migliorare la generalizzazione del modello appreso selezionando la complessità ottimale nel compromesso della varianza di distorsione. La regolarizzazione funziona aggiungendo la penalità associata ai valori di coefficiente all'errore dell'ipotesi. Un modello accurato con valori di coefficiente estremi verrebbe penalizzato di più, ma un modello meno accurato con valori più conservativi verrebbe penalizzato meno.

Questo strumento di apprendimento supporta la regolarizzazione rete elastica: una combinazione lineare di L1-norm (LASSO), $|| \textbf{w} || _1$, e L2-norm (ridge), $|| \textbf{w} || Regolarizzazioni _2^2$. Le regolarizzazioni L1-norm e L2-norm hanno effetti e usi diversi che sono complementari in determinati aspetti. L'uso di L1-norm può aumentare la spaziatura del $\textbf{w}$sottoposto a training. Quando si utilizzano dati dimensionali elevati, si riducono i piccoli pesi delle funzionalità irrilevanti a 0 e pertanto non verrà impiegata alcuna risorsa per tali caratteristiche non appropriate durante l'esecuzione di stime. Se viene usata la regolarizzazione della norma L1, l'algoritmo di training è OWL-QN. La regolarizzazione della norma L2 è preferibile per i dati che non sono sparse e penalizza in gran parte l'esistenza di pesi di grandi dimensioni.

Una regolarizzazione aggressiva (ovvero l'assegnazione di coefficienti di grandi dimensioni ai termini di regolarizzazione L1-norm o L2)può danneggiare la capacità predittiva escludendo variabili importanti fuori dal modello. Pertanto, la scelta dei coefficienti di regolarizzazione corretti è importante quando si applica la regressione logistica.

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

Campi

FeatureColumn

Colonna di funzionalità prevista dal formatore.

(Ereditato da TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

Colonna dell'etichetta prevista dal formatore. 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 formatore. 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 stimare una destinazione usando un modello di regressione logistica lineare sottoposto a training con il metodo L-BFGS.

(Ereditato da LbfgsTrainerBase<TOptions,TTransformer,TModel>)

Metodi

Fit(IDataView, LinearModelParameters)

Continua il training di un LbfgsLogisticRegressionBinaryTrainer oggetto utilizzando un oggetto già sottoposto a modelParameters training e restituisce un oggetto BinaryPredictionTransformer<TModel>.

Fit(IDataView)

Esegue il training e restituisce un oggetto ITransformer.

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

Oggetto IEstimator<TTransformer> per stimare una destinazione usando un modello di regressione logistica lineare sottoposto a training con il metodo L-BFGS.

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