logo

StandardScaler v Sklearne

Kedy a ako používať StandardScaler?

Keď vlastnosti daného súboru údajov výrazne kolíšu v rámci svojich rozsahov alebo sú zaznamenané v rôznych merných jednotkách, do obrazu vstupuje StandardScaler.

Údaje sú škálované na rozptyl 1 potom, čo sa priemer zníži na 0 pomocou StandardScaler. Ale pri určovaní empirického priemeru údajov a štandardnej odchýlky majú odľahlé hodnoty prítomné v údajoch významný vplyv, ktorý znižuje spektrum charakteristických hodnôt.

rýchle triedenie java

Mnoho algoritmov strojového učenia môže naraziť na problémy v dôsledku týchto variácií v počiatočných funkciách. Napríklad v prípade algoritmov, ktoré počítajú vzdialenosť, ak má niektorá z vlastností množiny údajov hodnoty s veľkými alebo úplne odlišnými rozsahmi, výpočet vzdialenosti bude riadiť táto konkrétna vlastnosť množiny údajov.

Funkcia StandardScaler sklearn je založená na teórii, že premenné súboru údajov, ktorých hodnoty ležia v rôznych rozsahoch, nemajú rovnaký príspevok k parametrom prispôsobenia modelu a trénovacej funkcii a môžu dokonca viesť k skresleniu predpovedí vytvorených s týmto modelom.

Preto pred zahrnutím funkcií do modelu strojového učenia musíme údaje normalizovať (µ = 0, σ = 1). Na riešenie tohto potenciálneho problému sa bežne používa štandardizácia v inžinierstve funkcií.

Štandardizácia pomocou Sklearnu

 sklearn.preprocessing.StandardScaler(*, copy = True, with_mean = True, with_std = True) 

Odstránením priemeru z funkcií a ich škálovaním na jednotku rozptylu sa funkcie štandardizujú pomocou tejto funkcie.

Vzorec na výpočet štandardného skóre funkcie je z = (x - u) / s, kde u je priemer trénovacieho prvku (alebo nula, ak with_mean = False) a s je štandardná odchýlka vzorky (alebo jedna, ak with_std = False ).

ako vstreknúť falošnú abstraktnú triedu

Výpočtom príslušných štatistík o funkciách v trénovacej sade sa centrovanie a mierka aplikujú nezávisle na každú funkciu. Potom, na použitie s neskoršími vzorkami pomocou transform(), metóda fit() uloží priemer a štandardnú odchýlku.

Parametre:

    kopírovať (bool, predvolená hodnota = True):-Ak je tento parameter nastavený na hodnotu True, pokúste sa vyhnúť kópiám a namiesto toho škálovať vzorky na mieste. Nie je nevyhnutne zaručené, že bude fungovať na mieste; napríklad, funkcia môže stále vrátiť kópiu, ak vstup nie je vo forme poľa NumPy alebo matice CSR scipy.sparse.with_mean (bool, predvolená hodnota = True):-Ak je parameter nastavený na hodnotu True, upravte mierku údajov po ich vycentrovaní. Pri aplikácii na riedke matice to zlyhá (a vyvolá výnimku), pretože ich centrovanie si vyžaduje konštrukciu hustej matice, o ktorej sa vo väčšine prípadov použitia očakáva, že bude príliš veľká na to, aby sa zmestila do barana.with_std (bool, predvolená hodnota = True):-Tento parameter prispôsobuje vstupné dáta jednotkovej odchýlke, ak je nastavená na hodnotu true (alebo môžeme povedať, že vytvára jednotkovú štandardnú odchýlku).

Vlastnosti:

    scale_ (ndarray má tvar (n_features,) alebo None):-Údaje sú relatívne škálované pre každý prvok s nulovým priemerom a jednotkovým rozptylom.mean_ (ndarray má tvar (n_features,) alebo None):-Je to priemerná hodnota tréningového súboru údajov pre každú funkciu. Keď je argument with_mean nastavený na False, táto hodnota sa rovná None.var_ (ndarray má tvar (n_features,) alebo None):-Je to hodnota rozptylu každej funkcie v tréningovom súbore údajov. Používa sa na určenie rozsahu funkcií. Keď je argument with_std nastavený na False, táto hodnota sa rovná None.n_features_in_ (typu _int):-Tento atribút udáva počet prvkov zistených pri montáži.feature_names_in_ (ndarray má tvar ako (n_features_in_,)):-Tento atribút predstavuje vlastnosti identifikované názvami pri montáži. X je definované iba vtedy, keď všetky jeho názvy funkcií sú reťazec dátového typu.n_samples_seen_ (typu int alebo ndarray s tvarom ako (n_features,)):-Toto udáva počet vzoriek, ktoré odhadca preskúmal pre každý prvok.

Metódy triedy StandardScaler

fit(X[, y, vzorka_váha]) Táto metóda vypočítava priemer a štandardnú odchýlku, ktoré sa neskôr použijú na škálovanie údajov.
fit_transform(X[, y]) Táto metóda vyhovuje parametrom údajov a potom ich transformuje.
get_feature_names_out([input_features]) Táto metóda získa názvy prvkov pre transformáciu.
get_params([deep]) Táto metóda poskytuje parametre konkrétneho odhadu.
inverse_transform(X[, copy]) Zmenšuje veľkosť údajov tak, aby zodpovedala ich pôvodnej podobe.
čiastočné prispôsobenie(X[, y, hmotnosť_vzorky]) Priemer a štandardná odchýlka na X sa vypočítajú online na neskoršie škálovanie.
set_params(**params) Táto metóda sa používa na nastavenie hodnoty parametrov odhadu.
transformovať(X[, kópia]) Táto metóda transformuje údaje pomocou parametrov už uložených v triede.

Príklad StandardScaler

Najprv naimportujeme požadované knižnice. Aby sme mohli použiť funkciu StandardScaler, musíme importovať knižnicu Sklearn.

úplná pravdivostná tabuľka sčítačky

Potom načítame súbor údajov o dúhovke. Súbor údajov IRIS môžeme importovať z knižnice sklearn.datasets.

Vytvoríme objekt triedy StandardScaler.

Oddelenie nezávislých a cieľových funkcií.

Na implementáciu transformácie do množiny údajov použijeme metódu fit transform().

Syntax:

 object_ = StandardScaler() object_.fit_transform(features) 

Pôvodne sme vytvorili inštanciu metódy StandardScaler() podľa syntaxe uvedenej vyššie. Okrem toho štandardizujeme údaje pomocou fit_transform() spolu s poskytnutým objektom.

linux $home

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ýkon

 [[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]