Kdy a jak používat StandardScaler?
Když vlastnosti daného datového souboru výrazně kolísají v rámci svých rozsahů nebo jsou zaznamenány v různých měrných jednotkách, vstupuje do obrazu StandardScaler.
Data jsou škálována na rozptyl 1 poté, co se průměr sníží na 0 pomocí StandardScaler. Ale při určování empirického průměru dat a směrodatné odchylky mají odlehlé hodnoty přítomné v datech významný dopad, který snižuje spektrum charakteristických hodnot.
Mnoho algoritmů strojového učení může narazit na problémy kvůli těmto odchylkám ve výchozích funkcích. U algoritmů, které počítají vzdálenost, například pokud má některá z vlastností datové sady hodnoty s velkým nebo zcela odlišným rozsahem, bude výpočet vzdálenosti řídit tato konkrétní funkce datové sady.
Funkce StandardScaler sklearn je založena na teorii, že proměnné datové sady, jejichž hodnoty leží v různých rozmezích, nemají stejný příspěvek k parametrům přizpůsobení modelu a trénovací funkci a mohou dokonce vést ke zkreslení předpovědí vytvořených s tímto modelem.
Proto před zahrnutím funkcí do modelu strojového učení musíme data normalizovat (µ = 0, σ = 1). Standardizace v inženýrství funkcí se běžně používá k řešení tohoto potenciálního problému.
Standardizace pomocí Sklearn
sklearn.preprocessing.StandardScaler(*, copy = True, with_mean = True, with_std = True)
Odstraněním průměru z funkcí a jejich škálováním na jednotkovou odchylku jsou funkce standardizovány pomocí této funkce.
Vzorec pro výpočet standardního skóre prvku je z = (x - u) / s, kde u je průměr trénovacího prvku (nebo nula, pokud with_mean = False) a s je standardní odchylka vzorku (nebo jedna, pokud with_std = False ).
Výpočtem příslušných statistik o funkcích v trénovací sadě se centrování a škálování aplikují nezávisle na každý prvek. Poté, pro použití s pozdějšími vzorky pomocí transform(), metoda fit() uloží střední hodnotu a standardní odchylku.
Parametry:
Atributy:
Metody třídy StandardScaler
fit(X[, y, váha_vzorku]) | Tato metoda vypočítá průměr a směrodatnou odchylku pro pozdější použití pro škálování dat. |
fit_transform(X[, y]) | Tato metoda vyhovuje parametrům dat a následně je transformuje. |
get_feature_names_out([input_features]) | Tato metoda získává názvy prvků pro transformaci. |
get_params([deep]) | Tato metoda poskytuje parametry konkrétního odhadu. |
inverzní_transformace(X[, kopie]) | Zmenšuje velikost dat tak, aby odpovídala jejich původní podobě. |
částečné_fit(X[, y, váha_vzorku]) | Průměr a směrodatná odchylka na X jsou vypočítány online pro pozdější škálování. |
set_params(**params) | Tato metoda se používá k nastavení hodnoty parametrů estimátoru. |
transform(X[, kopie]) | Tato metoda transformuje data pomocí parametrů již uložených ve třídě. |
Příklad StandardScaler
Nejprve naimportujeme požadované knihovny. Pro použití funkce StandardScaler musíme importovat knihovnu Sklearn.
Poté načteme datovou sadu duhovky. Dataset IRIS můžeme importovat z knihovny sklearn.datasets.
Vytvoříme objekt třídy StandardScaler.
Oddělení nezávislých a cílových prvků.
K implementaci transformace do datové sady použijeme metodu fit transform().
Syntax:
object_ = StandardScaler() object_.fit_transform(features)
Původně jsme vytvořili instanci metody StandardScaler() podle výše uvedené syntaxe. Data navíc standardizujeme pomocí fit_transform() spolu s poskytnutým objektem.
Kód
# Python program to standardize the data # Importing the required library from sklearn.preprocessing import StandardScaler from sklearn.datasets import load_iris # Loading the dataset X, Y = load_iris(return_X_y = True) # Printing 3 rows of original data print(X[:3, :]) # Creating an object of the StandardScaler class std_scaler = StandardScaler() # Printing 3 rows of the transformed data print(std_scaler.fit_transform(X)[:3, :]) print(std_scaler.mean_)
Výstup
[[5.1 3.5 1.4 0.2] [4.9 3. 1.4 0.2] [4.7 3.2 1.3 0.2]] [[-0.90068117 1.01900435 -1.34022653 -1.3154443 ] [-1.14301691 -0.13197948 -1.34022653 -1.3154443 ] [-1.38535265 0.32841405 -1.39706395 -1.3154443 ]] [5.84333333 3.05733333 3.758 1.19933333]