logo

StandardScaler i Sklearn

Når og hvordan bruker du StandardScaler?

Når funksjonene til det gitte datasettet svinger betydelig innenfor deres områder eller registreres i ulike måleenheter, kommer StandardScaler inn i bildet.

Dataene skaleres til en varians på 1 etter at gjennomsnittet er redusert til 0 via StandardScaler. Men når man bestemmer det empiriske gjennomsnittet av dataene og standardavviket, har uteliggere tilstede i data en betydelig innvirkning som reduserer spekteret av karakteristiske verdier.

Mange maskinlæringsalgoritmer kan støte på problemer på grunn av disse variasjonene i startfunksjonene. For algoritmer som beregner avstand, for eksempel, hvis noen av datasetts funksjoner har verdier som har store eller helt andre områder, vil den spesielle funksjonen i datasettet kontrollere avstandsberegningen.

StandardScaler-funksjonen til sklearn er basert på teorien om at datasetts variabler hvis verdier ligger i ulike områder ikke har et like stort bidrag til modellens tilpasningsparametere og treningsfunksjon og kan til og med føre til skjevheter i prediksjonene som er gjort med den modellen.

svever i css

Derfor, før vi inkluderer funksjonene i maskinlæringsmodellen, må vi normalisere dataene (µ = 0, σ = 1). Standardisering i funksjonsteknikk brukes ofte for å løse dette potensielle problemet.

Standardisering ved hjelp av Sklearn

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

Ved å eliminere gjennomsnittet fra funksjonene og skalere dem til enhetsvarians, standardiseres funksjonene ved å bruke denne funksjonen.

Formelen for å beregne en funksjons standardpoengsum er z = (x - u) / s, der u er treningsfunksjonens gjennomsnitt (eller null hvis with_mean = False) og s er standardavviket til prøven (eller en hvis with_std = False ).

Ved å beregne den relevante statistikken på funksjonene i treningssettet, brukes sentrering og skalering uavhengig av hver funksjon. Deretter, for bruk med senere prøver ved bruk av transform(), lagrer fit()-metoden gjennomsnittet og standardavviket.

Parametere:

    kopi (bool, standard = True):-Hvis denne parameteren er satt til True, prøv å unngå kopier og skaler prøvene på plass i stedet. Dette er ikke nødvendigvis garantert å fungere på plass; funksjonen kan for eksempel fortsatt returnere en kopi hvis inndata ikke er i form av en NumPy-matrise eller scipy.sparse CSR-matrise.with_mean (bool, default = True):-Hvis parameteren er satt til True, skaler du dataene etter å ha sentrert dem. Når det brukes på sparsomme matriser, mislykkes dette (og gir et unntak), ettersom sentrering av dem krever konstruksjon av en tett matrise som, i de fleste bruksomstendigheter, forventes å være for stor til å passe inn i ram.with_std (bool, default = True):-Denne parameteren skalerer inndataene til enhetsvariansen hvis den er satt til sann (eller vi kan si at den gir enhetsstandardavvik).

Attributter:

    skala_ (ndarray har form av (n_funksjoner,) eller ingen):-Data er relativt skalert for hver funksjon med null gjennomsnitt og enhetsvarians.mean_ (ndarray har form av (n_features,) eller None):-Det er treningsdatasettets gjennomsnittsverdi for hver funksjon. Når argumentet with_mean er satt til False, er denne verdien lik Ingen.var_ (ndarray har form av (n_funksjoner,) eller ingen):-Det er verdien av hver funksjons varians i opplæringsdatasettet. Den brukes til å bestemme skalaen til funksjonene. Når argumentet with_std er satt til False, er denne verdien lik Ingen.n_features_in_ (av _int type):-Dette attributtet gir antall funksjoner oppdaget ved montering.feature_names_in_ (ndarray har form som (n_features_in_,)):-Dette attributtet er funksjonene identifisert med navn under tilpasning. X er bare definert når alle funksjonsnavnene er av datatypestreng.n_samples_seen_ (av int-type eller en ndarray som har form som (n_features,)):-Dette gir antall prøver som estimatoren undersøkte for hver funksjon.

Metoder for StandardScaler-klassen

fit(X[, y, sample_weight]) Denne metoden beregner gjennomsnittet og standardavviket for å bruke senere for å skalere dataene.
passe_transform(X[, y]) Denne metoden passer til parametrene til dataene og transformerer dem deretter.
get_feature_names_out([input_features]) Denne metoden henter funksjonsnavnene for transformasjonen.
get_params([dyp]) Denne metoden gir parametrene til den bestemte estimatoren.
invers_transform(X[, kopi]) Den reduserer datastørrelsen for å matche den opprinnelige formen.
delvis_tilpasning(X[, y, prøvevekt]) Gjennomsnittet og standardavviket på X beregnes online for senere skalering.
set_params(**params) Denne metoden brukes til å angi verdien av estimatorens parametere.
transform(X[, kopi]) Denne metoden transformerer dataene ved å bruke parametere som allerede er lagret i klassen.

Eksempel på StandardScaler

Først vil vi importere de nødvendige bibliotekene. For å bruke StandardScaler-funksjonen må vi importere Sklearn-biblioteket.

Deretter vil vi laste iris-datasettet. Vi kan importere IRIS-datasettet fra sklearn.datasets-biblioteket.

Vi vil lage et objekt av StandardScaler-klassen.

Skille de uavhengige og målfunksjonene.

Vi vil bruke metoden fit transform() for å implementere transformasjonen til datasettet.

Syntaks:

 object_ = StandardScaler() object_.fit_transform(features) 

Vi bygde først en forekomst av StandardScaler()-metoden etter syntaksen nevnt ovenfor. I tillegg standardiserer vi dataene ved å bruke fit_transform() sammen med det oppgitte objektet.

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

Produksjon

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