Kdaj in kako uporabljati StandardScaler?
Ko značilnosti danega nabora podatkov znatno nihajo znotraj svojih razponov ali so zabeležene v različnih merskih enotah, nastopi StandardScaler.
Podatki so prilagojeni na varianco 1, potem ko se povprečje zmanjša na 0 prek StandardScaler. Toda pri določanju empirične srednje vrednosti podatkov in standardnega odklona imajo izstopajoči podatki, ki so prisotni v podatkih, pomemben vpliv, ki zmanjša spekter značilnih vrednosti.
java pridobi trenutni datum
Mnogi algoritmi strojnega učenja lahko naletijo na težave zaradi teh razlik v začetnih funkcijah. Pri algoritmih, ki na primer izračunajo razdaljo, če ima katera koli značilnost nabora podatkov vrednosti z velikimi ali popolnoma različnimi razponi, bo ta določena značilnost nabora podatkov nadzorovala izračun razdalje.
Funkcija StandardScaler za sklearn temelji na teoriji, da spremenljivke nabora podatkov, katerih vrednosti ležijo v različnih razponih, nimajo enakega prispevka k parametrom prileganja modela in funkciji usposabljanja in lahko celo povzročijo pristranskost v napovedih, narejenih s tem modelom.
Zato moramo pred vključitvijo funkcij v model strojnega učenja podatke normalizirati (µ = 0, σ = 1). Za reševanje te morebitne težave se običajno uporablja standardizacija v inženirstvu funkcij.
Standardizacija z uporabo Sklearn
sklearn.preprocessing.StandardScaler(*, copy = True, with_mean = True, with_std = True)
Z izločitvijo povprečja iz funkcij in njihovo skaliranjem na varianco enote so funkcije standardizirane s to funkcijo.
Formula za izračun standardne ocene funkcije je z = (x - u) / s, kjer je u povprečje funkcije usposabljanja (ali nič, če with_mean = False), s pa standardni odklon vzorca (ali ena, če with_std = False ).
Z izračunom ustreznih statističnih podatkov o funkcijah v učnem nizu se centriranje in skaliranje uporabita neodvisno za vsako funkcijo. Nato za uporabo s kasnejšimi vzorci z uporabo transform() metoda fit() shrani povprečje in standardni odklon.
Parametri:
Lastnosti:
Metode razreda StandardScaler
prileganje (X[, y, teža_vzorca]) | Ta metoda izračuna povprečje in standardno odstopanje, ki se pozneje uporabi za skaliranje podatkov. |
fit_transform(X[, y]) | Ta metoda se prilega parametrom podatkov in jih nato preoblikuje. |
get_feature_names_out([input_features]) | Ta metoda pridobi imena funkcij za transformacijo. |
get_params([globoko]) | Ta metoda daje parametre določenega ocenjevalca. |
inverzna_transformacija(X[, kopiraj]) | Zmanjša velikost podatkov, da se ujemajo z izvirno obliko. |
delno_fit(X[, y, teža_vzorca]) | Povprečna vrednost in standardni odklon na X se izračunata na spletu za kasnejše skaliranje. |
set_params(**params) | Ta metoda se uporablja za nastavitev vrednosti parametrov ocenjevalca. |
preobrazba (X[, kopiraj]) | Ta metoda pretvori podatke z uporabo parametrov, ki so že shranjeni v razredu. |
Primer StandardScaler
Najprej bomo uvozili zahtevane knjižnice. Za uporabo funkcije StandardScaler moramo uvoziti knjižnico Sklearn.
Nato bomo naložili nabor podatkov šarenice. Nabor podatkov IRIS lahko uvozimo iz knjižnice sklearn.datasets.
Ustvarili bomo objekt razreda StandardScaler.
dereference kazalec
Ločevanje neodvisnih in ciljnih lastnosti.
Za implementacijo transformacije v nabor podatkov bomo uporabili metodo fit transform().
Sintaksa:
object_ = StandardScaler() object_.fit_transform(features)
Sprva smo zgradili primerek metode StandardScaler() po zgoraj omenjeni sintaksi. Poleg tega standardiziramo podatke z uporabo fit_transform() skupaj s podanim objektom.
Koda
# 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_)
Izhod
[[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]