NormalizingEstimator Třída

Definice

public sealed class NormalizingEstimator : Microsoft.ML.IEstimator<Microsoft.ML.Transforms.NormalizingTransformer>
type NormalizingEstimator = class
    interface IEstimator<NormalizingTransformer>
Public NotInheritable Class NormalizingEstimator
Implements IEstimator(Of NormalizingTransformer)
Dědičnost
NormalizingEstimator
Implementuje

Poznámky

Charakteristiky estimátoru

Potřebuje tento estimátor podívat se na data, aby vytrénovala jeho parametry? Yes
Datový typ vstupního sloupce Single nebo Double známý vektor těchto typů.
Datový typ výstupního sloupce Stejný datový typ jako vstupní sloupec
Exportovatelné do ONNX Yes

Výsledný NormalizingEstimator normalizuje data jedním z následujících způsobů na základě toho, jak byla vytvořena:

  • Min Max – lineární změna měřítka, která je založená na minimální a maximální hodnotě pro každý řádek.
  • Střední odchylka – Změna měřítka každého řádku na jednotkovou odchylku a volitelně nulovou střední hodnotu
  • Log Mean Variance - Rescale each row to unit variance, optionally, zero mean based on computations in log scale.
  • Binning – Bucketizes the data in each row and performs linear rescale based on the calculated bins.
  • Binning pod dohledem – Kontejnerizujte data v jednotlivých řádcích a provádí lineární rescale na základě počítaných intervalů. Výpočet intervalu je založen na korelaci sloupce Popisek.
  • Robustní škálování – Volitelně zacentruje data a škáluje se na základě rozsahu dat a zadaných minimálních a maximálních hodnot kvantit. Tato metoda je robustnější pro odlehlé hodnoty.

Podrobnosti o estimátoru

Interval normalizovaných dat závisí na tom, jestli je zadána hodnota fixZero, nebo ne. FixZero výchozí hodnota je true. Pokud je fixZero false, normalizovaný interval je $[0,1]$ a rozdělení normalizovaných hodnot závisí na režimu normalizace. Například s minimálním maxem se minimální a maximální hodnoty mapují na 0 a 1 a zbývající hodnoty spadají mezi. Při nastavení fixZero je normalizovaný interval $[-1,1]$ s rozdělením normalizovaných hodnot v závislosti na režimu normalizace, ale chování se liší. Při použití hodnoty Min Max závisí rozdělení na to, jak daleko je číslo od 0. Výsledkem je číslo s největší vzdáleností mapovanou na 1, pokud se jedná o kladné číslo nebo -1, pokud se jedná o záporné číslo. Vzdálenost od 0 ovlivní rozdělení s většinou čísel, která jsou blíže k normalizaci směrem k 0. Robustní škálování nepoužívá fixZero a jeho hodnoty nejsou omezeny na $[0,1]$ nebo $[-1,1]$. Škálování je založené na rozsahu dat a zadaném minimálním a maximálním kvantilím.

Rovnice pro výstupní $y$ použití střední odchylky i střední odchylky protokolu pro vstupní $x$ bez použití možnosti CDF je: $y = (x - \text{posun}) \text{scale}$. Při trénování se vypočítá posun a škálování.

Pomocí možnosti CDF je to: $y = 0,5 * (1 + \text{ERF}((x - \text{mean}) / (\text{směrodatná odchylka} * sqrt(2)))$. Kde ERF je chybová funkce použitá k odhadu CDF náhodné proměnné, která se předpokládá pro normální distribuci. Střední a směrodatná odchylka se při trénování počítá.

K vytvoření tohoto estimátoru použijte jednu z následujících možností:

Příklady použití najdete na výše uvedených odkazech.

Metody

Fit(IDataView)

Vlaky a vrací hodnotu NormalizingTransformer.

GetOutputSchema(SchemaShape)

SchemaShape Vrátí schéma, které bude vytvořen transformátorem. Používá se pro šíření a ověřování schématu v kanálu.

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