El escalado de datos es un paso de preprocesamiento de datos para características numéricas. Muchos algoritmos de aprendizaje automático, como los métodos de descenso de gradiente, el algoritmo KNN, la regresión lineal y logística, etc., requieren escalado de datos para producir buenos resultados. Se definen varios escaladores para este propósito. Este artículo se concentra en Standard Scaler y Min-Max scaler. La tarea aquí es discutir lo que significan y cómo se implementan utilizando las funciones integradas que vienen con este paquete.
Además de admitir funciones de biblioteca, otras funciones que se utilizarán para lograr la funcionalidad son:
- El método de ajuste (datos) se usa para calcular la media y la desviación estándar para una función determinada, de modo que se pueda usar más para escalar.
- El método transform(data) se utiliza para realizar el escalado utilizando la media y la desviación estándar calculadas mediante el método .fit().
- El método fit_transform() ajusta y transforma.
Escalador estándar
Standard Scaler ayuda a obtener una distribución estandarizada, con una media cero y una desviación estándar de uno (varianza unitaria). Estandariza las características restando el valor medio de la característica y luego dividiendo el resultado por la desviación estándar de la característica.
La escala estándar se calcula como:
z = (x - u) / s
Dónde,
- z son datos escalados.
- x debe ser un dato escalado.
- u es la media de las muestras de entrenamiento
- s es la desviación estándar de las muestras de entrenamiento.
El preprocesamiento de Sklearn es compatible con el método StandardScaler() para lograr esto directamente en solo 2 o 3 pasos.
Sintaxis: clase sklearn.preprocessing.StandardScaler(*, copy=True, with_mean=True, with_std=True)
Parámetros:
- copy: si es False, se realiza el escalado in situ. Si es True , se crea una copia en lugar de una escala in situ.
- with_mean: si es True, los datos se centran antes de escalar.
- with_std: si es verdadero, los datos se escalan a la varianza de la unidad.
Acercarse:
- Módulo de importación
- Crear datos
- Calcule los valores requeridos
- Imprimir datos procesados
Ejemplo:
Python3
# import module from sklearn.preprocessing import StandardScaler # create data data = [[11, 2], [3, 7], [0, 10], [11, 8]] # compute required values scaler = StandardScaler() model = scaler.fit(data) scaled_data = model.transform(data) # print scaled data print(scaled_data)
Producción:
[[ 0.97596444 -1.61155897]
[-0.66776515 0.08481889]
[-1.28416374 1.10264561]
[ 0.97596444 0.42409446]]
Escalador MinMax
Hay otra forma de escalar datos, donde el mínimo de características se hace igual a cero y el máximo de características igual a uno. MinMax Scaler reduce los datos dentro del rango dado, generalmente de 0 a 1. Transforma los datos escalando las características a un rango dado. Escala los valores a un rango de valores específico sin cambiar la forma de la distribución original.
El escalado MinMax se realiza mediante:
x_std = (x – x.min(eje=0)) / (x.max(eje=0) – x.min(eje=0))
x_scaled = x_std * (max – min) + min
Dónde,
- mín, máx = intervalo_de_características
- x.min(axis=0) : Valor mínimo de característica
- x.max(axis=0):Valor máximo de característica
El preprocesamiento de Sklearn define el método MinMaxScaler() para lograr esto.
Sintaxis: clase sklearn.preprocessing.MinMaxScaler(feature_range=0, 1, *, copy=True, clip=False)
Parámetros:
- feature_range: rango deseado de datos escalados. El rango predeterminado para la característica devuelta por MinMaxScaler es de 0 a 1. El rango se proporciona en forma de tupla como (min, max).
- copy: si es False, se realiza el escalado in situ. Si es True , se crea una copia en lugar de una escala in situ.
- clip: si es verdadero, los datos escalados se recortan al rango de características proporcionado.
Acercarse:
- Módulo de importación
- Crear datos
- Datos de escala
- imprimir datos a escala
Ejemplo:
Python3
# import module from sklearn.preprocessing import MinMaxScaler # create data data = [[11, 2], [3, 7], [0, 10], [11, 8]] # scale features scaler = MinMaxScaler() model=scaler.fit(data) scaled_data=model.transform(data) # print scaled features print(scaled_data)
Producción:
[[1. 0. ]
[0.27272727 0.625 ]
[0. 1. ]
[1. 0.75 ]]
Publicación traducida automáticamente
Artículo escrito por hemavatisabu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA