logo

StandardScaler i Sklearn

Hvornår og hvordan bruges StandardScaler?

Når funktionerne i det givne datasæt svinger betydeligt inden for deres intervaller eller er optaget i forskellige måleenheder, kommer StandardScaler ind i billedet.

Dataene skaleres til en varians på 1 efter middelværdien er reduceret til 0 via StandardScaler. Men når man bestemmer det empiriske gennemsnit af dataene og standardafvigelsen, har outliers til stede i data en betydelig indvirkning, der reducerer spektret af karakteristiske værdier.

Mange maskinlæringsalgoritmer kan støde på problemer på grund af disse variationer i startfunktionerne. For algoritmer, der beregner afstand, for eksempel, hvis nogen af ​​datasættets funktioner har værdier med store eller helt forskellige intervaller, vil den særlige funktion af datasættet styre afstandsberegningen.

StandardScaler-funktionen i sklearn er baseret på teorien om, at datasættets variabler, hvis værdier ligger i forskellige intervaller, ikke har et ligeligt bidrag til modellens tilpasningsparametre og træningsfunktion og kan endda føre til skævhed i forudsigelserne lavet med denne model.

numpy meshgrid

Derfor, før vi inkluderer funktionerne i maskinlæringsmodellen, skal vi normalisere dataene (µ = 0, σ = 1). Standardisering i feature engineering er almindeligt anvendt til at løse dette potentielle problem.

Standardisering ved hjælp af Sklearn

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

Ved at eliminere middelværdien fra funktionerne og skalere dem til enhedsvarians, standardiseres funktionerne ved hjælp af denne funktion.

Formlen til beregning af et elements standardscore er z = (x - u) / s, hvor u er træningselementets middelværdi (eller nul, hvis with_mean = False), og s er standardafvigelsen for prøven (eller en, hvis with_std = False ).

Ved at beregne den relevante statistik over funktionerne i træningssættet, anvendes centrering og skalering uafhængigt af hver funktion. Derefter, til brug med senere prøver ved hjælp af transform(), gemmer fit()-metoden middelværdien og standardafvigelsen.

Parametre:

    kopi (bool, standard = Sand):-Hvis denne parameter er indstillet til True, skal du prøve at undgå kopier og skalere prøverne på plads i stedet. Dette er ikke nødvendigvis garanteret at fungere på plads; for eksempel kan funktionen stadig returnere en kopi, hvis inputtet ikke er i form af en NumPy-array eller scipy.sparse CSR-matrix.with_mean (bool, standard = Sand):-Hvis parameteren er indstillet til True, skaler du dataene efter at have centreret dem. Når det anvendes på sparsomme matricer, mislykkes dette (og rejser en undtagelse), da centrering af dem nødvendiggør konstruktionen af ​​en tæt matrix, der i de fleste brugsforhold forventes at være for stor til at passe i ram.with_std (bool, standard = Sand):-Denne parameter skalerer inputdataene til enhedsvariansen, hvis den er sat til sand (eller vi kan sige, at den giver enhedens standardafvigelse).

Egenskaber:

    scale_ (ndarray med form af (n_features,) eller None):-Data er relativt skaleret for hver funktion med nul middelværdi og enhedsvarians.mean_ (ndarray med form af (n_features,) eller None):-Det er træningsdatasættets gennemsnitlige værdi for hver funktion. Når argumentet with_mean er sat til False, er denne værdi lig med Ingen.var_ (ndarray med form af (n_features,) eller Ingen):-Det er værdien af ​​hver funktions varians i træningsdatasættet. Det bruges til at bestemme skalaen af ​​funktionerne. Når argumentet with_std er sat til False, er denne værdi lig med Ingen.n_features_in_ (af _int type):-Denne egenskab angiver antallet af funktioner, der kan ses ved montering.feature_names_in_ (ndarray med form som (n_features_in_,)):-Denne egenskab er de funktioner, der identificeres ved navne under tilpasning. X er kun defineret, når alle dets funktionsnavne er af datatypestreng.n_samples_seen_ (af int-type eller en ndarray med form som (n_features,)):-Dette giver antallet af prøver, som estimatoren undersøgte for hver funktion.

Metoder i StandardScaler-klassen

fit(X[, y, sample_weight]) Denne metode beregner middelværdien og standardafvigelsen til senere brug til skalering af dataene.
fit_transform(X[, y]) Denne metode passer til parametrene for dataene og transformerer dem derefter.
get_feature_names_out([input_features]) Denne metode henter funktionsnavnene til transformationen.
get_params([dyb]) Denne metode giver parametrene for den bestemte estimator.
omvendt_transform(X[, kopi]) Det reducerer datastørrelsen, så den matcher dens oprindelige form.
partial_fit(X[, y, sample_weight]) Middelværdien og standardafvigelsen på X beregnes online til senere skalering.
set_params(**params) Denne metode bruges til at indstille værdien af ​​estimatorens parametre.
transform(X[, kopi]) Denne metode transformerer dataene ved at bruge parametre, der allerede er gemt i klassen.

Eksempel på StandardScaler

For det første importerer vi de nødvendige biblioteker. For at bruge StandardScaler-funktionen skal vi importere Sklearn-biblioteket.

Derefter indlæser vi iris-datasættet. Vi kan importere IRIS-datasættet fra sklearn.datasets-biblioteket.

Vi vil oprette et objekt af StandardScaler-klassen.

Adskillelse af de uafhængige og målfunktioner.

Vi vil bruge metoden fit transform() til at implementere transformationen til datasættet.

Syntaks:

 object_ = StandardScaler() object_.fit_transform(features) 

Vi byggede oprindeligt en instans af StandardScaler()-metoden efter syntaksen nævnt ovenfor. Derudover standardiserer vi dataene ved at bruge fit_transform() sammen med det angivne objekt.

Kode

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