Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende StandardScaler, MinMaxScaler, MaxAbsScaler | Preprocesamiento de Datos con Scikit-learn
Introducción al Aprendizaje Automático con Python

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, considera las características 'culmen_depth_mm' y 'body_mass_g' del penguins dataset. Estas características pueden graficarse para observar sus escalas.

sin escalado

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 el resultado sea menor o igual a 1.

MinMax
MinMaxScaler

Aquí tienes el gif que muestra cómo funciona MinMaxScaler:

Escalado MinMax

MaxAbsScaler

MaxAbsScaler funciona encontrando el valor absoluto máximo y dividiendo cada valor por este. Esto asegura que el valor absoluto máximo sea 1.

Valor absoluto máximo
Escalador MaxAbs
Escalado MaxAbs

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).

Note
Nota

Si no comprendes qué son la media, la desviación estándar y la varianza, puedes consultar nuestro curso Learning Statistics with Python. Sin embargo, este conocimiento no es obligatorio para continuar.

Fórmula de StandardScaler
StandardScaler
Estandarización

Ejemplo de código con MinMaxScaler. Otros escaladores se aplican de la misma manera.

12345678910
import 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 los pipelines, esto no será un problema.

Note
Nota

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 utilizar?

Un StandardScaler es más sensible a los valores atípicos, lo que lo hace 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 usar MinMaxScaler en el preprocesamiento de datos?

2. ¿Por qué podrías reconsiderar el uso de StandardScaler para tu conjunto de datos?

question mark

¿Cuál es el propósito principal de usar MinMaxScaler en el preprocesamiento de datos?

Selecciona la respuesta correcta

question mark

¿Por qué podrías reconsiderar el uso de StandardScaler para tu conjunto de datos?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 10

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 2. Capítulo 10
some-alt