¿Cuándo y cómo utilizar StandardScaler?
Cuando las características de un conjunto de datos determinado fluctúan significativamente dentro de sus rangos o se registran en varias unidades de medida, StandardScaler entra en escena.
Los datos se escalan a una varianza de 1 después de que la media se reduce a 0 mediante StandardScaler. Pero al determinar la media empírica de los datos y la desviación estándar, los valores atípicos presentes en los datos tienen un impacto significativo que reduce el espectro de valores característicos.
Muchos algoritmos de aprendizaje automático pueden encontrar problemas debido a estas variaciones en las funciones iniciales. Para los algoritmos que calculan la distancia, por ejemplo, si alguna de las características del conjunto de datos tiene valores que tienen rangos grandes o completamente diferentes, esa característica particular del conjunto de datos controlará el cálculo de la distancia.
La función StandardScaler de sklearn se basa en la teoría de que las variables del conjunto de datos cuyos valores se encuentran en diferentes rangos no tienen una contribución igual a los parámetros de ajuste y la función de entrenamiento del modelo e incluso pueden provocar sesgos en las predicciones realizadas con ese modelo.
clase de escáner java
Por lo tanto, antes de incluir las características en el modelo de aprendizaje automático, debemos normalizar los datos (μ = 0, σ = 1). La estandarización en la ingeniería de características se emplea comúnmente para abordar este problema potencial.
Estandarización usando Sklearn
sklearn.preprocessing.StandardScaler(*, copy = True, with_mean = True, with_std = True)
Al eliminar la media de las características y escalarlas a la varianza unitaria, las características se estandarizan mediante esta función.
La fórmula para calcular la puntuación estándar de una característica es z = (x - u) / s, donde u es la media de la característica de entrenamiento (o cero si with_mean = False) y s es la desviación estándar de la muestra (o uno si with_std = False ).
Al calcular las estadísticas pertinentes sobre las características del conjunto de entrenamiento, el centrado y el escalado se aplican de forma independiente a cada característica. Luego, para su uso con muestras posteriores usando transform(), el método fit() almacena la media y la desviación estándar.
Parámetros:
Atributos:
Métodos de la clase StandardScaler
ajuste(X[, y, peso_muestra]) | Este método calcula la media y la desviación estándar para usarlas más adelante para escalar los datos. |
fit_transform(X[,y]) | Este método ajusta los parámetros de los datos y luego los transforma. |
get_feature_names_out([características_de entrada]) | Este método obtiene los nombres de las características para la transformación. |
get_params([profundo]) | Este método proporciona los parámetros del estimador particular. |
transformación_inversa(X[, copiar]) | Reduce el tamaño de los datos para que coincidan con su forma original. |
ajuste_parcial(X[, y, peso_muestra]) | La media y la desviación estándar en X se calculan en línea para su posterior escalado. |
set_params(**parámetros) | Este método se utiliza para establecer el valor de los parámetros del estimador. |
transformar(X[, copiar]) | Este método transforma los datos utilizando parámetros ya almacenados en la clase. |
Ejemplo de escalador estándar
En primer lugar, importaremos las bibliotecas necesarias. Para utilizar la función StandardScaler, necesitamos importar la biblioteca Sklearn.
Luego cargaremos el conjunto de datos del iris. Podemos importar el conjunto de datos IRIS desde la biblioteca sklearn.datasets.
Crearemos un objeto de la clase StandardScaler.
Separar las características independientes y de destino.
Usaremos el método fit transform() para implementar la transformación al conjunto de datos.
¿Cuál es el caso en SQL?
Sintaxis:
object_ = StandardScaler() object_.fit_transform(features)
Inicialmente creamos una instancia del método StandardScaler() siguiendo la sintaxis mencionada anteriormente. Además, estandarizamos los datos usando fit_transform() junto con el objeto proporcionado.
Código
# 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_)
Producción
[[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]