Normalizace dat
Důležité
Podpora studia Machine Learning (Classic) skončí 31. srpna 2024. Doporučujeme do tohoto data přejít na službu Azure Machine Learning.
Od 1. prosince 2021 nebude možné vytvářet nové prostředky studia Machine Learning (Classic). Do 31. srpna 2024 můžete pokračovat v používání stávajících prostředků studia Machine Learning (Classic).
- Přečtěte si informace o přesouvání projektů strojového učení z ML Studia (classic) na Azure Machine Learning.
- Přečtěte si další informace o Azure Machine Learning.
Dokumentace ke studiu ML (Classic) se vyřazuje z provozu a v budoucnu se nemusí aktualizovat.
Změna měřítka číselných dat za účelem omezení hodnot datové sady na standardní oblast
Kategorie: Transformace dat / Škálování a redukce
Poznámka
Platí jenom pro: Machine Learning Studio (jenom Classic)
Podobné moduly pro přetažení jsou k dispozici v návrháři Azure Machine Learning.
Přehled modulu
Tento článek popisuje, jak pomocí modulu Normalizovat data v Machine Learning Studiu (classic) transformovat datovou sadu 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 rozsahech 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 od 10 000 do 100 000. Velký rozdíl v rozsahu čísel může způsobovat 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ávají hodnoty ve velkém měřítku napříč všemi číselnými sloupci používanými v modelu.
Tento modul nabízí několik možností transformace číselných dat:
- Všechny hodnoty můžete změnit na měřítko 0–1 nebo hodnoty transformovat tak, že je představují jako pořadí percentilu, a ne absolutní hodnoty.
- Normalizaci můžete použít u jednoho sloupce nebo u více sloupců ve stejné datové sadě.
- Pokud potřebujete experiment opakovat nebo použít stejný postup normalizace u jiných dat, můžete kroky uložit jako normalizaci transformace a použít ho u jiných datových sad, které mají stejné schéma.
Upozornění
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 při výběru algoritmu strojového učení, který se má použít při sestavování prediktivního modelu, nezapomeňte před použitím normalizace na trénovací data zkontrolovat požadavky na data dat algoritmu.
Jak nakonfigurovat normalizovaná data
Pomocí tohoto modulu můžete použít pouze jednu metodu normalizace najednou. Proto se stejná metoda normalizace použije u všech vybraných sloupců. Chcete-li použít různé metody normalizace, použijte druhou instanci Normal Data.
Přidejte do experimentu modul Normalizovat data . Modul najdete v Machine Learning Studiu (classic) v kategorii Transformace dat v kategorii Škálování a redukce.
Připojení datovou sadu, která obsahuje alespoň jeden sloupec všech čísel.
Pomocí selektoru sloupců vyberte číselné sloupce, které chcete normalizovat. Pokud nevyberete jednotlivé sloupce, ve výchozím nastavení se zahrnou 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 datový typ sloupce je podporovaným číselným typem.
Tip
Pokud chcete zajistit, aby sloupce konkrétního typu byly zadány jako vstup, zkuste před normalizací dat použít modul Vybrat sloupce v datové sadě.
Při zaškrtnutí použijte hodnotu 0 pro konstantní sloupce: Tuto možnost vyberte, pokud libovolný číselný sloupec obsahuje jednu nezměněnou hodnotu. Tím zajistíte, že se tyto sloupce nebudou používat v operacích normalizace.
V rozevíracím seznamu Metody 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:
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ě reškálí každou funkci do intervalu [0,1].
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 potom se vydělí novou maximální hodnotou (což je rozdíl mezi původním maximem a minimálními hodnotami).
Hodnoty ve sloupci se transformují pomocí následujícího vzorce:
Logistická: Hodnoty ve sloupci se transformují pomocí následujícího vzorce:
LogNormal: Tato možnost převede všechny hodnoty na logaritmicko-normální měřítko.
Hodnoty ve sloupci se transformují pomocí následujícího vzorce:
Tady μ a σ jsou parametry rozdělení vypočítané empiricky z dat jako odhad 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:
Spusťte experiment nebo poklikejte na modul Normalizovat data a vyberte Spustit vybrané.
Výsledky
Modul Normalizovat data generuje dva výstupy:
Pokud chcete zobrazit transformované hodnoty, klikněte pravým tlačítkem na modul, vyberte Transformovanou datovou sadu a klikněte na Vizualizovat.
Ve výchozím nastavení se hodnoty transformují. Pokud chcete porovnat transformované hodnoty s původními hodnotami, použijte modul Přidat sloupce k opětovnému zkombinování datových sad a zobrazení sloupců vedle sebe.
Chcete-li uložit transformaci, abyste mohli použít stejnou metodu normalizace na jinou podobnou datovou sadu, klikněte pravým tlačítkem myši na modul, vyberte transformační funkci a klikněte na Uložit jako transformaci.
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.
Příklady
Příklady použití normalizace ve strojovém učení najdete v galerii Azure AI:
- Predikce úvěrového rizika: V této ukázce se normalizace použije na všechna číselná data s výjimkou sloupce třídy, skóre úvěrového rizika. V tomto příkladu se používá transformace tanh , která převede všechny číselné funkce na hodnoty v rozsahu 0 až 1.
Technické poznámky
Tento modul podporuje pouze standardní metody normalizace uvedené v části Postupy a nepodporuje normalizaci matice ani jiné složité transformace.
Pokud potřebujete vytvořit vlastní metodu normalizace, můžete k výpočtu a použití transformace použít moduly Execute R Script nebo Execute Python Script .
Algoritmy, které používají normalizaci
Normalizace funkcí tak, aby používaly společné škálování, je obecným požadavkem pro mnoho algoritmů strojového učení.
V algoritmech lineární klasifikace se instance zobrazují jako vektory v multidimenzionálním prostoru. Vzhledem k tomu, že rozsah hodnot nezpracovaných dat se značně liší, některé objektivní funkce nefungují správně bez normalizace. Pokud má například jedna z funkcí širokou škálu hodnot, řídí se vzdálenosti mezi body tato konkrétní funkce.
Číselné funkce by proto měly být normalizovány tak, aby každá funkce přispěla přibližně úměrně konečné vzdálenosti. To může poskytovat významné výhody zrychlení a přesnosti.
Při použití algoritmů Logistic Regrese a Averaged Perceptron se ve výchozím nastavení funkce před trénováním normalizují.
Další informace a zdroje informací
Pokud si nejste jistí, jaký typ normalizace vyhovuje vašim datům, podívejte se na tyto zdroje informací:
Doporučené moduly pro moje data: Tento vlastní modul člena týmu Azure ML vyhodnotí vaši datovou sadu a doporučí kroky pro čištění a škálování dat.
Škálování funkcí: Tento článek na Wikipedii vysvětluje základní metody používané pro normalizaci číselných dat.
Příprava dat pro dolování dat zahrnuje mnoho podrobných kroků přípravy dat. Viz kapitola 7, kde najdete diskuzi o normalizaci dat.
Očekávané vstupy
Název | Typ | Description |
---|---|---|
Datová sada | Tabulka dat | Vstupní datová sada |
Parametry modulu
Name | Rozsah | Typ | Výchozí | Description |
---|---|---|---|---|
Metoda transformace | Libovolný | TransformaceMethods | ZScore | Volba matematické metody použité pro škálování |
Sloupce, které se mají transformovat | Libovolný | ColumnSelection | NumericAll | Vyberte všechny sloupce, u kterých se má vybraná transformace použít. |
Výstupy
Název | Typ | Description |
---|---|---|
Transformovaná datová sada | Tabulka dat | Transformovaná datová sada |
Transformační funkce | ITransform – rozhraní | Definice transformační funkce, kterou lze použít u jiných datových sad |
Výjimky
Výjimka | Description |
---|---|
Chyba 0001 | K výjimce dochází v případě, že se nepodařilo najít jeden nebo více zadaných sloupců datové sady. |
Chyba 0003 | K výjimce dochází v případě, že jeden nebo více vstupů má hodnotu null nebo je prázdné. |
Chyba 0017 | K výjimce dochází v případě, že jeden nebo více zadaných sloupců má typ nepodporovaný aktuálním modulem. |
Chyba 0020 | K výjimce dochází, pokud je počet sloupců v některých datových sadách předaných modulu příliš malý. |
Chyba 0021 | K výjimce dochází, pokud je počet řádků v některých datových sadách předaných modulu příliš malý. |
Seznam chyb specifických pro moduly Studio (Classic) najdete v tématu Machine Learning kódy chyb.
Seznam výjimek rozhraní API najdete v tématu Machine Learning kódy chyb rozhraní REST API.