logo

StandardScaler i Sklearn

När och hur använder man StandardScaler?

När funktionerna i den givna datamängden fluktuerar avsevärt inom deras intervall eller registreras i olika måttenheter, kommer StandardScaler in i bilden.

Data skalas till en varians på 1 efter att medelvärdet reducerats till 0 via StandardScaler. Men när man bestämmer det empiriska medelvärdet av data och standardavvikelse, har extremvärden som finns i data en betydande inverkan som minskar spektrumet av karakteristiska värden.

Många maskininlärningsalgoritmer kan stöta på problem på grund av dessa variationer i startfunktionerna. För algoritmer som beräknar avstånd, till exempel, om någon av datamängdens funktioner har värden som har stora eller helt olika intervall, kommer den specifika funktionen i datasetet att styra avståndsberäkningen.

StandardScaler-funktionen i sklearn bygger på teorin att datasetets variabler vars värden ligger i olika intervall inte har ett lika stort bidrag till modellens passningsparametrar och träningsfunktion och kan till och med leda till bias i de förutsägelser som görs med den modellen.

Innan vi inkluderar funktionerna i maskininlärningsmodellen måste vi därför normalisera data (µ = 0, σ = 1). Standardisering inom funktionsteknik används ofta för att lösa detta potentiella problem.

Standardisering med Sklearn

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

Genom att eliminera medelvärdet från funktionerna och skala dem till enhetsvarians, standardiseras funktionerna med denna funktion.

Formeln för att beräkna en funktions standardpoäng är z = (x - u) / s, där u är träningsfunktionens medelvärde (eller noll om with_mean = False) och s är standardavvikelsen för urvalet (eller en om with_std = False ).

Genom att beräkna relevant statistik på funktionerna i träningsuppsättningen, tillämpas centrering och skalning oberoende av varje funktion. Sedan, för användning med senare prover med transform(), lagrar metoden fit() medelvärdet och standardavvikelsen.

Parametrar:

    copy (bool, default = True):-Om den här parametern är inställd på True, försök att undvika kopior och skala proverna på plats istället. Detta är inte nödvändigtvis garanterat att fungera på plats; till exempel kan funktionen fortfarande returnera en kopia om indata inte är i form av en NumPy-matris eller scipy.sparse CSR-matris.with_mean (bool, default = True):-Om parametern är inställd på True, skala data efter centrering. När det tillämpas på glesa matriser, misslyckas detta (och ger upphov till ett undantag), eftersom centrering av dem kräver konstruktionen av en tät matris som, i de flesta användningsförhållanden, förväntas vara för stor för att passa i ram.with_std (bool, default = True):-Denna parameter skalar indata till enhetsvariansen om den är satt till sann (eller vi kan säga att den gör enhetens standardavvikelse).

Attribut:

    scale_ (ndarray som har formen av (n_features,) eller None):-Data är relativt skalade för varje funktion med noll medelvärde och enhetsvarians.mean_ (ndarray som har formen av (n_features,) eller None):-Det är träningsdatauppsättningens genomsnittliga värde för varje funktion. När argumentet with_mean är satt till False är detta värde lika med None.var_ (ndarray har formen av (n_features,) eller None):-Det är värdet av varje funktions varians i träningsdatauppsättningen. Den används för att bestämma omfattningen av funktionerna. När argumentet with_std är satt till False, är detta värde lika med None.n_features_in_ (av _int-typ):-Det här attributet anger antalet funktioner som syns vid montering.feature_names_in_ (ndarray har formen som (n_features_in_,)):-Detta attribut är de egenskaper som identifieras med namn vid montering. X definieras bara när alla dess funktionsnamn är av datatypsträng.n_samples_seen_ (av int-typ eller en ndarray som har formen som (n_features,)):-Detta ger antalet prover som skattaren undersökte för varje funktion.

Metoder för StandardScaler-klassen

passform(X[, y, provvikt]) Denna metod beräknar medelvärdet och standardavvikelsen att använda senare för att skala data.
fit_transform(X[, y]) Denna metod passar in i dataparametrarna och omvandlar den sedan.
get_feature_names_out([input_features]) Denna metod erhåller funktionsnamnen för transformationen.
get_params([djup]) Denna metod ger parametrarna för den särskilda skattaren.
invers_transform(X[, kopia]) Det minskar datastorleken för att matcha dess ursprungliga form.
partial_fit(X[, y, sample_weight]) Medelvärdet och standardavvikelsen på X beräknas online för senare skalning.
set_params(**params) Denna metod används för att ställa in värdet på estimatorns parametrar.
transform(X[, kopia]) Denna metod transformerar data genom att använda parametrar som redan är lagrade i klassen.

Exempel på StandardScaler

Först kommer vi att importera de nödvändiga biblioteken. För att använda StandardScaler-funktionen måste vi importera Sklearn-biblioteket.

Sedan kommer vi att ladda irisdatauppsättningen. Vi kan importera IRIS-datauppsättningen från sklearn.datasets-biblioteket.

Vi kommer att skapa ett objekt av klassen StandardScaler.

Separera de oberoende och målfunktionerna.

Vi kommer att använda metoden fit transform() för att implementera transformationen till datasetet.

Syntax:

 object_ = StandardScaler() object_.fit_transform(features) 

Vi byggde till en början en instans av StandardScaler()-metoden enligt syntaxen som nämns ovan. Dessutom standardiserar vi data genom att använda fit_transform() tillsammans med det angivna objektet.

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_) 

Produktion

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