SdcaNonCalibratedBinaryTrainer Classe
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Oggetto IEstimator<TTransformer> per il training di un modello di classificazione di regressione logistica binaria usando il metodo di salita a doppia coordinata stocastica.
public sealed class SdcaNonCalibratedBinaryTrainer : Microsoft.ML.Trainers.SdcaBinaryTrainerBase<Microsoft.ML.Trainers.LinearBinaryModelParameters>
type SdcaNonCalibratedBinaryTrainer = class
inherit SdcaBinaryTrainerBase<LinearBinaryModelParameters>
Public NotInheritable Class SdcaNonCalibratedBinaryTrainer
Inherits SdcaBinaryTrainerBase(Of LinearBinaryModelParameters)
- Ereditarietà
-
SdcaTrainerBase<SdcaBinaryTrainerBase<TModelParameters>.BinaryOptionsBase,BinaryPredictionTransformer<TModelParameters>,TModelParameters>SdcaNonCalibratedBinaryTrainer
Per creare questo formatore, usare SdcaNonCalibrated o SdcaNonCalibrated(Options).
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 . |
Attività di Machine Learning | Classificazione binaria |
La normalizzazione è necessaria? | Sì |
La memorizzazione nella cache è necessaria? | No |
NuGet richiesto oltre a Microsoft.ML | Nessuno |
Esportabile in ONNX | Sì |
Questo formatore si basa sul metodo SdCA (Stochastic Dual Coordinate Ascent), una tecnica di ottimizzazione all'avanguardia per le funzioni obiettivo convesso. L'algoritmo può essere ridimensionato perché si tratta di un algoritmo di training di streaming come descritto in un documento KDD migliore.
La convergenza viene sovrascritta applicando periodicamente la sincronizzazione tra variabili primarie e doppie in un thread separato. Vengono inoltre fornite 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, la macchina a vettori di supporto 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 non spendendo alcun calcolo su zeri in set di dati di tipo sparse.
Si noti che SDCA è un algoritmo di ottimizzazione stocastico e di streaming. Il risultato dipende dall'ordine dei dati di training perché la tolleranza di arresto non è sufficiente. Nell'ottimizzazione fortemente convessa, la soluzione ottimale è unica e quindi tutti alla fine raggiungono lo stesso posto. Anche in casi non 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 alle 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 nello spazio
Insieme all'algoritmo di ottimizzazione implementato, la regolarizzazione della norma L1 può aumentare la spaziatura dei pesi del modello,
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 le variabili importanti dal modello. Ad esempio, un coefficiente L1-norm molto grande può forzare tutti i parametri a essere zeri e portare a un modello semplice. Pertanto, scegliere i coefficienti di regolarizzazione corretti è importante in pratica.
Per altre informazioni, vedere:
- Aumento dell'ascente della doppia coordinata stocastica.
- Metodi di ascente a doppia coordinata stocastica per la riduzione della perdita regolare.
Vedere la sezione Vedere anche per i collegamenti ad esempi di utilizzo.
Feature |
Colonna di funzionalità prevista dal formatore. (Ereditato da TrainerEstimatorBase<TTransformer,TModel>) |
Label |
Colonna dell'etichetta prevista dal formatore. Può essere |
Weight |
Colonna di peso prevista dal formatore. Può essere |
Info |
Oggetto IEstimator<TTransformer> per il training di un modello di classificazione di regressione logistica binaria usando il metodo di salita a doppia coordinata stocastica. (Ereditato da SdcaBinaryTrainerBase<TModelParameters>) |
Fit(IData |
Esegue il training e restituisce un oggetto ITransformer. (Ereditato da TrainerEstimatorBase<TTransformer,TModel>) |
Get |
Oggetto IEstimator<TTransformer> per il training di un modello di classificazione di regressione logistica binaria usando il metodo di salita a doppia coordinata stocastica. (Ereditato da TrainerEstimatorBase<TTransformer,TModel>) |
Append |
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. |
With |
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. |
Prodotto | Versioni |
---|---|
ML.NET | 1.0.0, 1.1.0, 1.2.0, 1.3.1, 1.4.0, 1.5.0, 1.6.0, 1.7.0, 2.0.0, 3.0.0, 4.0.0, Preview |
- SdcaNonCalibratedBinaryTrainer.Options
- SdcaNonCalibrated(BinaryClassificationCatalog+BinaryClassificationTrainers, String, String, String, ISupportSdcaClassificationLoss, Nullable<Single>, Nullable<Single>, Nullable<Int32>)
- SdcaNonCalibrated(BinaryClassificationCatalog+BinaryClassificationTrainers, SdcaNonCalibratedBinaryTrainer+Options)