Kada i kako koristiti StandardScaler?
Kada značajke danog skupa podataka značajno fluktuiraju unutar svojih raspona ili su zabilježene u različitim mjernim jedinicama, StandardScaler ulazi u sliku.
Podaci se skaliraju na varijancu od 1 nakon što se srednja vrijednost smanji na 0 putem StandardScalera. Ali pri određivanju empirijske sredine podataka i standardne devijacije, outlieri prisutni u podacima imaju značajan utjecaj koji smanjuje spektar karakterističnih vrijednosti.
Mnogi algoritmi strojnog učenja mogu naići na probleme zbog ovih varijacija u početnim značajkama. Za algoritme koji izračunavaju udaljenost, na primjer, ako bilo koja od značajki skupa podataka ima vrijednosti koje imaju velike ili potpuno različite raspone, ta određena značajka skupa podataka kontrolirat će izračun udaljenosti.
Funkcija StandardScaler za sklearn temelji se na teoriji da varijable skupa podataka čije vrijednosti leže u različitim rasponima nemaju jednak doprinos parametrima prilagodbe modela i funkciji obuke te čak mogu dovesti do pristranosti u predviđanjima napravljenim s tim modelom.
Stoga, prije uključivanja značajki u model strojnog učenja, moramo normalizirati podatke (µ = 0, σ = 1). Standardizacija u inženjerstvu značajki obično se koristi za rješavanje ovog potencijalnog problema.
Standardizacija pomoću Sklearna
sklearn.preprocessing.StandardScaler(*, copy = True, with_mean = True, with_std = True)
Eliminiranjem srednje vrijednosti iz značajki i njihovim skaliranjem na jediničnu varijancu, značajke se standardiziraju pomoću ove funkcije.
Formula za izračunavanje standardnog rezultata značajke je z = (x - u) / s, gdje je u srednja vrijednost značajke obuke (ili nula ako je with_mean = False), a s je standardna devijacija uzorka (ili jedan ako je with_std = False ).
Izračunavanjem odgovarajuće statistike o značajkama u skupu za obuku, centriranje i skaliranje se neovisno primjenjuju na svaku značajku. Zatim, za korištenje s kasnijim uzorcima pomoću transform(), metoda fit() pohranjuje srednju vrijednost i standardnu devijaciju.
binarni u bcd
Parametri:
Atributi:
Metode klase StandardScaler
fit(X[, y, težina_uzorka]) | Ova metoda izračunava srednju vrijednost i standardnu devijaciju za kasnije korištenje za skaliranje podataka. |
fit_transform(X[, y]) | Ova metoda prilagođava parametre podataka i zatim ih transformira. |
get_feature_names_out([input_features]) | Ova metoda dobiva nazive značajki za transformaciju. |
get_params([duboko]) | Ova metoda daje parametre određenog procjenitelja. |
inverzna_transformacija(X[, kopiraj]) | Smanjuje veličinu podataka kako bi odgovarali izvornom obliku. |
djelomično_fit(X[, y, težina_uzorka]) | Srednja vrijednost i standardna devijacija na X izračunavaju se online za kasnije skaliranje. |
set_params(**parametri) | Ova metoda se koristi za postavljanje vrijednosti parametara estimatora. |
transform(X[, kopiraj]) | Ova metoda transformira podatke pomoću parametara koji su već pohranjeni u klasi. |
Primjer StandardScalera
Prvo ćemo uvesti potrebne biblioteke. Da bismo koristili funkciju StandardScaler, moramo uvesti biblioteku Sklearn.
prioritetni red čekanja java
Zatim ćemo učitati skup podataka šarenice. Skup podataka IRIS možemo uvesti iz biblioteke sklearn.datasets.
Napravit ćemo objekt klase StandardScaler.
Razdvajanje nezavisnih i ciljnih značajki.
Koristit ćemo metodu fit transform() za implementaciju transformacije u skup podataka.
Sintaksa:
object_ = StandardScaler() object_.fit_transform(features)
U početku smo izgradili instancu metode StandardScaler() slijedeći gore spomenutu sintaksu. Osim toga, standardiziramo podatke korištenjem fit_transform() zajedno s navedenim objektom.
Kodirati
# 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_)
Izlaz
[[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]