SdcaNonCalibratedBinaryTrainer 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í.
Pro IEstimator<TTransformer> trénování binárního modelu klasifikace logistické regrese pomocí metody stochastické duální souřadnice.
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)
- Dědičnost
-
SdcaTrainerBase<SdcaBinaryTrainerBase<TModelParameters>.BinaryOptionsBase,BinaryPredictionTransformer<TModelParameters>,TModelParameters>SdcaNonCalibratedBinaryTrainer
Poznámky
K vytvoření tohoto trenéra použijte SdcaNonCalibrated nebo SdcaNonCalibrated(Options).
Vstupní a výstupní sloupce
Vstupní data sloupce štítku musí být Boolean. Vstupními funkcemi musí být data sloupců známým vektorem Singlevelikosti . 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 | Předpovězený popisek, který je založen na znaménku skóre. Záporné skóre se mapuje na false a pozitivní skóre se mapuje na true. |
Charakteristiky trenéra
| Úloha strojového učení | Binární klasifikace |
| Vyžaduje se normalizace? | Ano |
| Vyžaduje se ukládání do mezipaměti? | No |
| Požadovaný NuGet kromě Microsoft.ML | None |
| Exportovatelné do ONNX | Ano |
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 lze š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 závěsu 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 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 viz experimenty v tomto dokumentu) a neutratí žádné výpočty na nulách 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řípadech, které 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 z nich nastavil hodnotu "Shuffle" na False (Nepravda) a NumThreads (NumThreads) na 1.
Tato třída používá empirické minimalizaci rizik (tj. ERM) k formulovat problém optimalizace založený 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 model vytvořený nástrojem ERM byl dobrý při popisu trénovacích dat, ale nemusí předpovědět správné výsledky v nezobřených událostech. Regularizace je běžnou technikou zmírnění takového jevu tím, že penalizuje velikost (obvykle měřenou standardní funkcí) parametrů modelu. Tento trenér podporuje elastické regularizace net, což postihuje lineární kombinaci L1-norm (LASSO), $|| \textbf{w}_c ||_1$ a L2-norm (ridge), $|| \textbf{w}_c ||_2^2$ regularizace pro $c=1,\dots,m$. Regularizace L1-norm a L2-norm mají různé účinky a používají doplňky v určitých ohledech.
Společně s implementovaným optimalizačním algoritmem může regularizace L1 zvýšit sparsitu váhy modelu, $\textbf{w}_1,\dots,\textbf{w}_m$. Pokud uživatelé pečlivě vyberou koeficient L1-norm, je možné dosáhnout dobré kvality předpovědi pomocí modelu, který má pouze několik nenulových hmotností (např. 1% celkových hmotností modelu), aniž by to ovlivnilo její predikční výkon. Naproti tomu L2-norm nemůže zvýšit sparsitu natrénovaného modelu, ale přesto může zabránit přeurčení tím, že zabrání 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 znamená, že rozdělení všech parametrů modelu je laplace rozdělení , zatímco L2-norm znamená Gaussian rozdělení pro ně.
Agresivní regularizace (tj. přiřazení velkých koeficientů k termínům regularizace L1 nebo L2) 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 volba správných regulárních koeficientů důležitá v praxi.
Další informace najdete tady:
- 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
| Name | Description |
|---|---|
| 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 |
Váhový sloupec, který trenér očekává. Může být |
Vlastnosti
| Name | Description |
|---|---|
| Info |
Pro IEstimator<TTransformer> trénování binárního modelu klasifikace logistické regrese pomocí metody stochastické duální souřadnice. (Zděděno od SdcaBinaryTrainerBase<TModelParameters>) |
Metody
| Name | Description |
|---|---|
| Fit(IDataView) |
Vlaky a vrací .ITransformer (Zděděno od TrainerEstimatorBase<TTransformer,TModel>) |
| GetOutputSchema(SchemaShape) |
Pro IEstimator<TTransformer> trénování binárního modelu klasifikace logistické regrese pomocí metody stochastické duální souřadnice. (Zděděno od TrainerEstimatorBase<TTransformer,TModel>) |
Metody rozšíření
| Name | Description |
|---|---|
| AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Připojte kontrolní bod ukládání do mezipaměti do řetězu odhadce. Tím zajistíte, aby podřízené estimátory byly natré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 objekt obtékání, který jednou zavolá delegáta Fit(IDataView) . Často je důležité, aby estimátor vrátil informace o tom, co bylo vhodné, což je důvod, proč Fit(IDataView) metoda vrací konkrétní typ objekt, spíše než 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ěz odhadců prostřednictvím IEstimator<TTransformer> místa, kde odhadovač, EstimatorChain<TLastTransformer> pro který chceme získat transformátor, je někde v tomto řetězu. 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é
- SdcaNonCalibratedBinaryTrainer.Options
- SdcaNonCalibrated(BinaryClassificationCatalog+BinaryClassificationTrainers, String, String, String, ISupportSdcaClassificationLoss, Nullable<Single>, Nullable<Single>, Nullable<Int32>)
- SdcaNonCalibrated(BinaryClassificationCatalog+BinaryClassificationTrainers, SdcaNonCalibratedBinaryTrainer+Options)