Kdy a proč standardizovat data?

Source:

Někteří vývojáři ML mají tendenci standardizovat svá data naslepo před „každým“ modelem strojového učení, aniž by se snažili pochopit, proč je to nutné, nebo dokonce zda je to potřeba či nikoli. Cílem tohoto příspěvku je tedy vysvětlit, jak, proč a kdy data standardizovat.

Standardizace

Standardizace přichází ke slovu, když funkce vstupního souboru dat mají velké rozdíly mezi svými rozsahy, nebo když jsou jednoduše měřeny v různých měrných jednotkách (např. libry, metry, míle … atd.).

Tyto rozdíly v rozsazích výchozích funkcí způsobují potíže mnoha modelům strojového učení. Například u modelů, které jsou založeny na výpočtu vzdálenosti, platí, že pokud má některý z rysů široký rozsah hodnot, bude se vzdálenost řídit právě tímto rysem.

Ukážeme si to na příkladu : řekněme, že máme dvourozměrný soubor dat se dvěma rysy, Výška v Metrech a Hmotnost v Librách, které mají rozsah Metrů, resp. Bez ohledu na to, jaký model založený na vzdálenosti na tomto souboru dat provedete, bude rys Hmotnost dominovat nad rysem Výška a bude mít větší příspěvek k výpočtu vzdálenosti jen proto, že má větší hodnoty ve srovnání s Výškou. Řešením, jak tomuto problému předejít, je tedy transformace prvků na srovnatelné váhy pomocí standardizace.

Jak standardizovat data?

Z-skóre

Z-skóre je jednou z nejoblíbenějších metod standardizace dat a lze ji provést odečtením průměru a vydělením směrodatnou odchylkou pro každou hodnotu každého prvku.

Po provedení standardizace budou mít všechny funkce průměr nula, směrodatnou odchylku jedna, a tedy stejné měřítko.

Existují i jiné metody standardizace, ale pro zjednodušení se v tomto příběhu spokojím s metodou Z-skóre.

Kdy standardizovat data a proč?“

Jak je patrné z výše uvedeného, u modelů založených na vzdálenosti se standardizace provádí proto, aby se zabránilo tomu, že rysy s větším rozsahem budou dominovat metrice vzdálenosti. Důvod, proč data standardizujeme, však není u všech modelů strojového učení stejný a liší se model od modelu.

Takže před jakými modely a metodami ML je třeba data standardizovat a proč?

1- Před PCA:

Při analýze hlavních komponent dostávají rysy s vysokými rozptyly/širokými rozsahy větší váhu než rysy s nízkými rozptyly, a v důsledku toho nakonec neoprávněně dominují prvním hlavním komponentám (komponentám s maximálními rozptyly). Použil jsem zde slovo „nelegitimně“, protože důvodem, proč mají tyto rysy vysoké rozptyly ve srovnání s ostatními, je pouze to, že byly měřeny v různých měřítkách.

Standardizace tomu může zabránit tím, že všem rysům přidělí stejnou váhu.

2- Před shlukováním:

Shlukovací modely jsou algoritmy založené na vzdálenosti, k měření podobností mezi pozorováními a vytváření shluků používají metriku vzdálenosti. Na shlukování tedy budou mít větší vliv rysy s velkým rozsahem. Proto je před sestavením shlukovacího modelu nutná standardizace.

3- Před KNN:

k-nejbližší sousedé je klasifikátor založený na vzdálenosti, který klasifikuje nová pozorování na základě míry podobnosti (např. metriky vzdálenosti) s označenými pozorováními trénovací množiny. Díky standardizaci přispívají všechny proměnné k mírám podobnosti stejně .

4- Před SVM

Support Vector Machine se snaží maximalizovat vzdálenost mezi separační rovinou a podpůrnými vektory. Pokud má jeden rys velmi velké hodnoty, bude při výpočtu vzdálenosti dominovat nad ostatními rysy. Standardizace tedy dává všem rysům stejný vliv na metriku vzdálenosti.

Zdroj: Arun Manglick: arun-aiml.blogspot.com

5- Před měřením důležitosti proměnných v regresních modelech

Důležitost proměnných v regresní analýze můžete měřit tak, že sestavíte regresní model pomocí standardizovaných nezávislých proměnných a porovnáte absolutní hodnoty jejich standardizovaných koeficientů. Nejsou-li však nezávislé proměnné standardizovány, ztrácí porovnání jejich koeficientů smysl.

6- Před Lasso a Ridge regresí

LASSO a Ridge regrese kladou postih na velikost koeficientů přiřazených každé proměnné. A měřítko proměnných ovlivní, jak velká penalizace bude uplatněna na jejich koeficienty. Protože koeficienty proměnných s velkým rozptylem jsou malé, a tudíž méně penalizované. Proto je před fitováním obou regresí nutná standardizace.

Případy, kdy standardizace není nutná?

Logistická regrese a modely založené na stromech

Logistická regrese a algoritmy založené na stromech, jako je rozhodovací strom, náhodný les a gradient boosting, nejsou citlivé na velikost proměnných. Standardizace tedy není před fitováním tohoto typu modelů nutná.

Závěr standardizace dat

Jak jsme viděli v tomto příspěvku, kdy standardizovat a kdy ne, závisí na tom, jaký model chcete použít a co s ním chcete dělat. Pro vývojáře ML je tedy velmi důležité, aby rozuměl vnitřnímu fungování algoritmů strojového učení, dokázal poznat, kdy data standardizovat, a dokázal vytvořit úspěšný model strojového učení.

N.B: Seznam modelů a metod, kdy je standardizace nutná, uvedený v tomto příspěvku není vyčerpávající.

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.