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:
Attribut:
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]