SdcaLogisticRegressionBinaryTrainer Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Trénování IEstimator<TTransformer> binárního klasifikačního modelu logistické regrese pomocí metody stochastické duální souřadnice. Vytrénovaný model je kalibrován a může produkovat pravděpodobnost tím, že dosadí výstupní hodnotu lineární funkce do PlattCalibrator.
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))
- Dědičnost
-
SdcaTrainerBase<SdcaBinaryTrainerBase<TModelParameters>.BinaryOptionsBase,BinaryPredictionTransformer<TModelParameters>,TModelParameters>SdcaLogisticRegressionBinaryTrainer
Poznámky
K vytvoření tohoto trenéra použijte SdcaLogisticRegression nebo SdcaLogisticRegression(Options).
Vstupní a výstupní sloupce
Vstupní data sloupce popisku musí být Boolean. Vstupní funkce sloupcová data musí být vektorem známé velikosti Single.
Tento trenér vypíše následující sloupce:
Název výstupního sloupce | Typ sloupce | Description | |
---|---|---|---|
Score |
Single | Nevázané skóre, které model vypočítal. | |
PredictedLabel |
Boolean | Predikovaný popisek na základě znaménka skóre. Záporná skóre mapuje na false a kladná skóre se mapuje na true . |
|
Probability |
Single | Pravděpodobnost vypočítaná kalibrací skóre hodnoty true jako popisku. Hodnota pravděpodobnosti je v rozsahu [0, 1]. |
Charakteristiky trenéra
Úloha strojového učení | Binární klasifikace |
Vyžaduje se normalizace? | Yes |
Vyžaduje se ukládání do mezipaměti? | No |
Požadovaný NuGet kromě Microsoft.ML | Žádné |
Exportovatelné do ONNX | Yes |
Podrobnosti trénovacího algoritmu
Tento trenér je založen na metodě Stochastic Dual Coordinate Ascent (SDCA), což je nejmodernější technika optimalizace pro konvexní objektivní funkce. Algoritmus je možné škálovat, protože se jedná o algoritmus trénování streamování, jak je popsáno v nejlepším dokumentu KDD.
Konvergence je přepsána pravidelným vynucením synchronizace mezi primárními a duálními proměnnými v samostatném vlákně. K dispozici je také několik možností funkcí ztráty, jako je ztráta pantů a logistická ztráta. V závislosti na použité ztrátě může být trénovaný model například podpůrný vektorový stroj nebo logistická regrese. Metoda SDCA kombinuje několik z nejlepších vlastností, jako je schopnost učení streamování (bez přizpůsobení celé datové sady do paměti), dosažení přiměřeného výsledku s několika prohledáváními celé datové sady (například experimenty v tomto dokumentu) a útratou na nuly v řídkých datových sadách.
Všimněte si, že SDCA je stochastický a streamovací algoritmus optimalizace. Výsledek závisí na pořadí trénovacích dat, protože odolnost proti zastavení není dostatečně úzká. V silné konvexní optimalizaci je optimální řešení jedinečné, a proto všichni nakonec dosáhnou stejného místa. I v případě, že nejsou silně konvexní, získáte stejně dobrá řešení od běhu až po spuštění. Pro reprodukovatelné výsledky se doporučuje, aby jeden nastavil "Shuffle" na False a "NumThreads" na 1.
Tato třída používá empirické minimalizaci rizik (tj. ERM) k formulování problému optimalizace založeného na shromážděných datech. Všimněte si, že empirické riziko se obvykle měří použitím funkce ztráty na predikcích modelu na shromážděných datových bodech. Pokud trénovací data neobsahují dostatek datových bodů (například k trénování lineárního modelu v $n$-dimenzionálním prostoru, potřebujeme alespoň $n$ datových bodů), může dojít k přeurčení , aby byl model vytvořený ERM dobrý při popisu trénovacích dat, ale nemusí selhat předpovědět správné výsledky v neviditelných událostech. Regularizace je běžná technika pro zmírnění takového jevu tím, že penalizuje velikost (obvykle měřenou normou) parametrů modelu. Tento trenér podporuje elastické regularizace sítě, která penalizuje lineární kombinaci L1-norm (LASSO), $|| \textbf{w}_c || _1$ a L2-norm (ridge), $|| \textbf{w}_c || _2^2$ regularizations for $c=1,\dots,m$. Normalizace L1 norm a L2-norm mají různé účinky a použití, které se v určitých ohledech doplňují.
Společně s implementovaným optimalizačním algoritmem může normalizace L1 zvýšit sparsitu hmotností modelu, $\textbf{w}_1,\dots,\textbf{w}_m$. U vysoce dimenzionálních a řídkých datových sad je možné, pokud uživatelé pečlivě vyberou koeficient L1-normu, je možné dosáhnout dobré kvality předpovědi s modelem, který má pouze několik nenulových hmotností (např. 1 % celkové hmotnosti modelu), aniž by to ovlivnilo její predikční výkon. Naproti tomu L2-normu nemůže zvýšit sparsitu trénovaného modelu, ale přesto může zabránit přeurčení tím, že se vyhnete velkým hodnotám parametrů. Někdy použití L2-norm vede k lepší kvalitě předpovědi, takže uživatelé mohou stále chtít vyzkoušet a vyladit koeficienty L1-norm a L2-norm. Všimněte si, že použití L1-norm předpokládá, že rozdělení všech parametrů modelu je laplace rozdělení , zatímco L2-norm pro ně implikuje Gaussian rozdělení .
Agresivní regularizace (tj. přiřazení velkých koeficientů k regulárním termínům L1 nebo L2-norm) může poškodit prediktivní kapacitu vyloučením důležitých proměnných z modelu. Například velmi velký koeficient L1-norm může vynutit, aby všechny parametry byly nuly a vedly k triviálnímu modelu. Proto je v praxi důležité zvolit správné regulační koeficienty.
Další informace naleznete v tématu:
- Vertikální navýšení kapacity stochastické duální souřadnice ascent.
- Stochastic Dual Coordinate Ascent metody pro regularizovanou ztrátu minimalizace.
V části Viz také najdete odkazy na příklady použití.
Pole
FeatureColumn |
Sloupec funkcí, který trenér očekává. (Zděděno od TrainerEstimatorBase<TTransformer,TModel>) |
LabelColumn |
Sloupec popisku, který trenér očekává. Může to být |
WeightColumn |
Sloupec hmotnosti, který trenér očekává. Může to být |
Vlastnosti
Info |
Trénování IEstimator<TTransformer> binárního klasifikačního modelu logistické regrese pomocí metody stochastické duální souřadnice. Vytrénovaný model je kalibrován a může produkovat pravděpodobnost tím, že dosadí výstupní hodnotu lineární funkce do PlattCalibrator. (Zděděno od SdcaBinaryTrainerBase<TModelParameters>) |
Metody
Fit(IDataView) |
Vlaky a vrací hodnotu ITransformer. (Zděděno od TrainerEstimatorBase<TTransformer,TModel>) |
GetOutputSchema(SchemaShape) |
Trénování IEstimator<TTransformer> binárního klasifikačního modelu logistické regrese pomocí metody stochastické duální souřadnice. Vytrénovaný model je kalibrován a může produkovat pravděpodobnost tím, že dosadí výstupní hodnotu lineární funkce do PlattCalibrator. (Zděděno od TrainerEstimatorBase<TTransformer,TModel>) |
Metody rozšíření
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Připojte k řetězci estimátoru kontrolní bod ukládání do mezipaměti. Tím zajistíte, aby podřízené estimátory byly vytrénovány proti datům uloženým v mezipaměti. Před průchodem více dat je užitečné mít kontrolní bod ukládání do mezipaměti. |
WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Vzhledem k estimátoru vraťte zalamovací objekt, který zavolá delegáta jednou Fit(IDataView) . Často je důležité, aby odhadovač vrátil informace o tom, co bylo vhodné, což je důvod, proč Fit(IDataView) metoda vrací konkrétně typ objekt, nikoli jen obecné ITransformer. Ve stejnou dobu se však často vytvářejí do kanálů s mnoha objekty, takže možná budeme muset vytvořit řetězec estimátorů, kde EstimatorChain<TLastTransformer> je odhadovač, IEstimator<TTransformer> pro který chceme získat transformátor, zakopán někde v tomto řetězci. Pro tento scénář můžeme prostřednictvím této metody připojit delegáta, který bude volána po zavolání fit. |
Platí pro
Viz také
- SdcaLogisticRegression(BinaryClassificationCatalog+BinaryClassificationTrainers, String, String, String, Nullable<Single>, Nullable<Single>, Nullable<Int32>)
- SdcaLogisticRegression(BinaryClassificationCatalog+BinaryClassificationTrainers, SdcaLogisticRegressionBinaryTrainer+Options)
- SdcaLogisticRegressionBinaryTrainer.Options