StandardScaler, MinMaxScaler, MaxAbsScaler
Existen tres enfoques populares para escalar los datos:
MinMaxScaler
: escala las características a un rango de [0, 1];MaxAbsScaler
: escala las características de modo que el valor absoluto máximo sea 1 (por lo que los datos estarán garantizados en un rango de [-1, 1]);StandardScaler
: estandariza las características haciendo que la media sea igual a 0 y la varianza igual a 1.
Para ilustrar cómo funcionan los escaladores, considere las características 'culmen_depth_mm'
y 'body_mass_g'
del conjunto de datos de pingüinos. Estas características pueden graficarse para observar sus escalas.
MinMaxScaler
El MinMaxScaler
funciona restando el valor mínimo (para que los valores comiencen desde cero) y luego dividiendo por (x_max - x_min) para que sea menor o igual a 1.
Aquí tienes el gif que muestra cómo funciona MinMaxScaler
:
MaxAbsScaler
El MaxAbsScaler
funciona encontrando el valor absoluto máximo y dividiendo cada valor por este. Esto asegura que el valor absoluto máximo sea 1.
StandardScaler
La idea de StandardScaler
proviene de la estadística. Funciona restando la media (para centrar en torno a cero) y dividiendo por la desviación estándar (para que la varianza sea igual a 1).
Si no comprende qué son la media, la desviación estándar y la varianza, puede consultar nuestro curso Aprendiendo Estadística con Python. Sin embargo, este conocimiento no es obligatorio para continuar.
Aquí hay un ejemplo de codificación con MinMaxScaler
. Otros escaladores se aplican de la misma manera.
12345678910import pandas as pd from sklearn.preprocessing import MinMaxScaler df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_imputed_encoded.csv') # Assign X,y variables X, y = df.drop('species', axis=1), df['species'] # Initialize a MinMaxScaler object and transform the X minmax = MinMaxScaler() X = minmax.fit_transform(X) print(X)
La salida no es la más estética ya que los escaladores transforman los datos en un array de numpy
, pero con pipelines, esto no será un problema.
Solo se deben escalar las columnas de características (la variable X
). No es necesario escalar la variable objetivo, ya que esto complicaría el proceso de transformación inversa.
¿Qué escalador usar?
Un StandardScaler
es más sensible a los valores atípicos, por lo que es menos adecuado como escalador predeterminado. Si prefieres una alternativa a StandardScaler
, la elección entre MinMaxScaler
y MaxAbsScaler
depende de la preferencia personal, ya sea escalar los datos al rango [0,1] con MinMaxScaler
o a [-1,1] con MaxAbsScaler
.
1. ¿Cuál es el propósito principal de utilizar MinMaxScaler
en el preprocesamiento de datos?
2. ¿Por qué podría reconsiderar el uso de StandardScaler
para su conjunto de datos?
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Can you explain when to use each scaler in practice?
What are the main differences between MinMaxScaler and MaxAbsScaler?
Are there any drawbacks to using StandardScaler with outliers?
Awesome!
Completion rate improved to 3.13
StandardScaler, MinMaxScaler, MaxAbsScaler
Desliza para mostrar el menú
Existen tres enfoques populares para escalar los datos:
MinMaxScaler
: escala las características a un rango de [0, 1];MaxAbsScaler
: escala las características de modo que el valor absoluto máximo sea 1 (por lo que los datos estarán garantizados en un rango de [-1, 1]);StandardScaler
: estandariza las características haciendo que la media sea igual a 0 y la varianza igual a 1.
Para ilustrar cómo funcionan los escaladores, considere las características 'culmen_depth_mm'
y 'body_mass_g'
del conjunto de datos de pingüinos. Estas características pueden graficarse para observar sus escalas.
MinMaxScaler
El MinMaxScaler
funciona restando el valor mínimo (para que los valores comiencen desde cero) y luego dividiendo por (x_max - x_min) para que sea menor o igual a 1.
Aquí tienes el gif que muestra cómo funciona MinMaxScaler
:
MaxAbsScaler
El MaxAbsScaler
funciona encontrando el valor absoluto máximo y dividiendo cada valor por este. Esto asegura que el valor absoluto máximo sea 1.
StandardScaler
La idea de StandardScaler
proviene de la estadística. Funciona restando la media (para centrar en torno a cero) y dividiendo por la desviación estándar (para que la varianza sea igual a 1).
Si no comprende qué son la media, la desviación estándar y la varianza, puede consultar nuestro curso Aprendiendo Estadística con Python. Sin embargo, este conocimiento no es obligatorio para continuar.
Aquí hay un ejemplo de codificación con MinMaxScaler
. Otros escaladores se aplican de la misma manera.
12345678910import pandas as pd from sklearn.preprocessing import MinMaxScaler df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_imputed_encoded.csv') # Assign X,y variables X, y = df.drop('species', axis=1), df['species'] # Initialize a MinMaxScaler object and transform the X minmax = MinMaxScaler() X = minmax.fit_transform(X) print(X)
La salida no es la más estética ya que los escaladores transforman los datos en un array de numpy
, pero con pipelines, esto no será un problema.
Solo se deben escalar las columnas de características (la variable X
). No es necesario escalar la variable objetivo, ya que esto complicaría el proceso de transformación inversa.
¿Qué escalador usar?
Un StandardScaler
es más sensible a los valores atípicos, por lo que es menos adecuado como escalador predeterminado. Si prefieres una alternativa a StandardScaler
, la elección entre MinMaxScaler
y MaxAbsScaler
depende de la preferencia personal, ya sea escalar los datos al rango [0,1] con MinMaxScaler
o a [-1,1] con MaxAbsScaler
.
1. ¿Cuál es el propósito principal de utilizar MinMaxScaler
en el preprocesamiento de datos?
2. ¿Por qué podría reconsiderar el uso de StandardScaler
para su conjunto de datos?
¡Gracias por tus comentarios!