logo

StandardScaler u Sklearnu

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:

    kopija (bool, default = True):-Ako je ovaj parametar postavljen na True, pokušajte se kloniti kopija i umjesto toga mjeriti uzorke na mjestu. Nije nužno zajamčeno da će ovo funkcionirati na mjestu; na primjer, funkcija bi ipak mogla vratiti kopiju ako unos nije u obliku NumPy polja ili scipy.sparse CSR matrice.with_mean (bool, default = True):-Ako je parametar postavljen na True, skalirajte podatke nakon centriranja. Kada se primijeni na rijetke matrice, ovo ne uspijeva (i stvara iznimku), budući da njihovo centriranje zahtijeva konstrukciju guste matrice za koju se u većini slučajeva očekuje da bude prevelika da stane u ram.with_std (bool, default = True):-Ovaj parametar mjeri ulazne podatke na varijancu jedinice ako je postavljen na istinito (ili možemo reći da čini standardnu ​​devijaciju jedinice).

Atributi:

    scale_ (ndarray ima oblik (n_features,) ili None):-Podaci su relativno skalirani za svaku značajku s nultom sredinom i jediničnom varijancom.mean_ (ndarray ima oblik (n_features,) ili None):-To je prosječna vrijednost skupa podataka za obuku za svaku značajku. Kada je argument with_mean postavljen na False, ova vrijednost je jednaka Ništa.var_ (ndarray ima oblik (n_features,) ili None):-To je vrijednost varijance svake značajke u skupu podataka za obuku. Koristi se za određivanje razmjera značajki. Kada je argument with_std postavljen na False, ova vrijednost je jednaka Ništa.n_features_in_ (od _int tipa):-Ovaj atribut daje broj značajki uočenih prilikom uklapanja.feature_names_in_ (ndarray ima oblik kao (n_features_in_,)):-Ovaj atribut su značajke identificirane imenima tijekom ugradnje. X je definiran samo kada su sva njegova imena obilježja niza tipa podataka.n_samples_seen_ ( int tipa ili ndarray oblika kao (n_features,)):-To daje broj uzoraka koje je procjenitelj ispitao za svaku značajku.

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]