Quan i com utilitzar StandardScaler?
Quan les característiques del conjunt de dades donat fluctuen significativament dins dels seus rangs o es registren en diverses unitats de mesura, StandardScaler entra a la imatge.
Les dades s'escalen a una variància d'1 després que la mitjana es redueixi a 0 mitjançant StandardScaler. Però quan es determina la mitjana empírica de les dades i la desviació estàndard, els valors atípics presents a les dades tenen un impacte significatiu que redueix l'espectre de valors característics.
Molts algorismes d'aprenentatge automàtic poden trobar problemes a causa d'aquestes variacions en les funcions inicials. Per als algorismes que calculen la distància, per exemple, si alguna de les característiques del conjunt de dades té valors amb rangs grans o completament diferents, aquesta característica concreta del conjunt de dades controlarà el càlcul de la distància.
La funció StandardScaler de sklearn es basa en la teoria que les variables del conjunt de dades els valors de les quals es troben en diferents intervals no tenen una contribució igual als paràmetres d'ajust del model i a la funció d'entrenament i fins i tot poden provocar un biaix en les prediccions fetes amb aquest model.
Per tant, abans d'incloure les característiques en el model d'aprenentatge automàtic, hem de normalitzar les dades (µ = 0, σ = 1). L'estandardització en l'enginyeria de característiques s'utilitza habitualment per abordar aquest problema potencial.
Estandardització amb Sklearn
sklearn.preprocessing.StandardScaler(*, copy = True, with_mean = True, with_std = True)
En eliminar la mitjana de les característiques i escalar-les a la variància de la unitat, les característiques s'estandarditzen mitjançant aquesta funció.
declaració java if else
La fórmula per calcular la puntuació estàndard d'una característica és z = (x - u) / s, on u és la mitjana de la característica d'entrenament (o zero si with_mean = False) i s és la desviació estàndard de la mostra (o una si with_std = False). ).
En calcular les estadístiques pertinents sobre les característiques del conjunt d'entrenament, el centratge i l'escala s'apliquen de manera independent a cada característica. Aleshores, per utilitzar-lo amb mostres posteriors amb transform(), el mètode fit() emmagatzema la mitjana i la desviació estàndard.
Paràmetres:
Atributs:
Mètodes de la classe StandardScaler
ajustar(X[, y, pes_de_mostra]) | Aquest mètode calcula la mitjana i la desviació estàndard per utilitzar més endavant per escalar les dades. |
fit_transform(X[, y]) | Aquest mètode ajusta els paràmetres de les dades i després les transforma. |
get_feature_names_out([input_features]) | Aquest mètode obté els noms de les característiques per a la transformació. |
get_params([profund]) | Aquest mètode proporciona els paràmetres de l'estimador particular. |
transformació_inversa(X[, còpia]) | Redueix la mida de les dades perquè coincideixin amb la seva forma original. |
ajust_parcial(X[, y, pes_de_mostra]) | La mitjana i la desviació estàndard de X es calculen en línia per a una escala posterior. |
set_params(**params) | Aquest mètode s'utilitza per establir el valor dels paràmetres de l'estimador. |
transformar(X[, copiar]) | Aquest mètode transforma les dades utilitzant paràmetres ja emmagatzemats a la classe. |
Exemple de StandardScaler
En primer lloc, importarem les biblioteques necessàries. Per utilitzar la funció StandardScaler, hem d'importar la biblioteca Sklearn.
A continuació, carregarem el conjunt de dades de l'iris. Podem importar el conjunt de dades IRIS des de la biblioteca sklearn.datasets.
Crearem un objecte de la classe StandardScaler.
Separació de les característiques independents i objectiu.
Utilitzarem el mètode fit transform() per implementar la transformació al conjunt de dades.
Sintaxi:
object_ = StandardScaler() object_.fit_transform(features)
Inicialment vam crear una instància del mètode StandardScaler() seguint la sintaxi esmentada anteriorment. A més, estandarditzem les dades utilitzant fit_transform() juntament amb l'objecte proporcionat.
hiba bukhari
Codi
# 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_)
Sortida
[[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]