Sdílet prostřednictvím


Normalizovat datovou součást

Tento článek popisuje komponentu v návrháři služby Azure Machine Learning.

Tato komponenta slouží k transformaci datové sady prostřednictvím normalizace.

Normalizace je technika, která se často používá jako součást přípravy dat pro strojové učení. Cílem normalizace je změnit hodnoty číselných sloupců v datové sadě tak, aby používaly společné měřítko, aniž by došlo ke zkreslení rozdílů v rozsazích hodnot nebo ztrátě informací. Normalizace se také vyžaduje, aby některé algoritmy modelují data správně.

Předpokládejme například, že vstupní datová sada obsahuje jeden sloupec s hodnotami od 0 do 1 a druhý sloupec s hodnotami v rozsahu od 10 000 do 100 000. Velký rozdíl v rozsahu čísel může způsobit problémy při pokusu o kombinování hodnot jako funkcí během modelování.

Normalizace se těmto problémům vyhne vytvořením nových hodnot, které udržují obecné rozdělení a poměry ve zdrojových datech, a přitom zachovává hodnoty ve velkém měřítku napříč všemi číselnými sloupci používanými v modelu.

Tato komponenta nabízí několik možností pro transformaci číselných dat:

  • Všechny hodnoty můžete změnit na měřítko 0–1 nebo je transformovat tak, že je označíte jako percentil, nikoli absolutní hodnoty.
  • Normalizaci můžete použít u jednoho sloupce nebo u více sloupců ve stejné datové sadě.
  • Pokud potřebujete kanál opakovat nebo použít stejný postup normalizace u jiných dat, můžete kroky uložit jako transformaci normalizace a použít ho u jiných datových sad se stejným schématem.

Upozorňující

Některé algoritmy vyžadují, aby se data před trénováním modelu normalizovala. Jiné algoritmy provádějí vlastní škálování nebo normalizaci dat. Proto když zvolíte algoritmus strojového učení, který se má použít při vytváření prediktivního modelu, nezapomeňte před použitím normalizace na trénovací data zkontrolovat požadavky na data algoritmu.

Konfigurace normalizovaných dat

Pomocí této komponenty můžete použít pouze jednu metodu normalizace najednou. Proto se stejná metoda normalizace použije u všech vybraných sloupců. Pokud chcete použít různé metody normalizace, použijte druhou instanci Normalize Data.

  1. Přidejte do kanálu komponentu Normalizovat data . Komponentu ve službě Azure Machine Learning najdete v části Transformace dat v kategorii Škálování a redukce.

  2. Připojte datovou sadu, která obsahuje alespoň jeden sloupec všech čísel.

  3. Pomocí selektoru sloupců vyberte číselné sloupce, které chcete normalizovat. Pokud nevyberete jednotlivé sloupce, budou ve výchozím nastavení zahrnuty všechny sloupce číselného typu ve vstupu a stejný proces normalizace se použije u všech vybraných sloupců.

    To může vést k podivným výsledkům, pokud zahrnete číselné sloupce, které by neměly být normalizovány! Vždy pečlivě zkontrolujte sloupce.

    Pokud nejsou zjištěny žádné číselné sloupce, zkontrolujte metadata sloupců a ověřte, že je datový typ sloupce podporovaným číselným typem.

    Tip

    Pokud chcete zajistit, aby byly sloupce určitého typu zadány jako vstup, zkuste před normalizovat data pomocí komponenty Select Columns in Dataset (Vybrat sloupce v datové sadě).

  4. Při zaškrtnutí použijte hodnotu 0 pro konstantní sloupce: Tuto možnost vyberte, pokud libovolný číselný sloupec obsahuje jedinou neměnnou hodnotu. Tím se zajistí, že se tyto sloupce nebudou používat v operacích normalizace.

  5. V rozevíracím seznamu Metoda transformace zvolte jednu matematickou funkci, která se použije u všech vybraných sloupců.

    • Zscore: Převede všechny hodnoty na skóre z.

      Hodnoty ve sloupci se transformují pomocí následujícího vzorce:

      normalizace pomocí skóre z

      Střední a směrodatná odchylka se vypočítávají pro každý sloupec samostatně. Použije se směrodatná odchylka základního souboru.

    • MinMax: Normalizátor min-max lineárně rescales every feature to the [0,1] interval.

      Změna měřítka na interval [0,1] se provádí posunutím hodnot jednotlivých funkcí tak, aby minimální hodnota byla 0, a pak se vydělí novou maximální hodnotou (což je rozdíl mezi původním maximálním a minimálními hodnotami).

      Hodnoty ve sloupci se transformují pomocí následujícího vzorce:

      normalizace pomocí funkce min-max

    • Logistická: Hodnoty ve sloupci se transformují pomocí následujícího vzorce:

      vzorec pro normalizaci podle logistické funkce

    • LogNormal: Tato možnost převede všechny hodnoty na lognormální měřítko.

      Hodnoty ve sloupci se transformují pomocí následujícího vzorce:

      Normální rozdělení vzorce

      Tady μ a σ jsou parametry rozdělení vypočítané empiricky z dat jako odhady maximální pravděpodobnosti pro každý sloupec samostatně.

    • TanH: Všechny hodnoty se převedou na hyperbolický tangens.

      Hodnoty ve sloupci se transformují pomocí následujícího vzorce:

      normalizace pomocí funkce tanh

  6. Odešlete kanál nebo poklikejte na součást Normalizovat data a vyberte Spustit vybrané.

Výsledky

Komponenta Normalizovat data generuje dva výstupy:

  • Pokud chcete zobrazit transformované hodnoty, klikněte pravým tlačítkem myši na komponentu a vyberte Vizualizovat.

    Ve výchozím nastavení se hodnoty transformují. Pokud chcete porovnat transformované hodnoty s původními hodnotami, použijte komponentu Přidat sloupce k opětovnému zkombinování datových sad a zobrazení sloupců vedle sebe.

  • Pokud chcete uložit transformaci, abyste mohli použít stejnou metodu normalizace na jinou datovou sadu, vyberte komponentu a na pravém panelu vyberte Zaregistrovat datovou sadu na kartě Výstupy .

    Uložené transformace pak můžete načíst ze skupiny Transforms v levém navigačním podokně a použít je u datové sady se stejným schématem pomocí použití transformace.

Další kroky

Podívejte se na sadu komponent dostupných pro Azure Machine Learning.