Saltar al contenido

Escala

Los modelos de aprendizaje automático se entrenan utilizando grandes conjuntos de datos, que pueden contener una amplia gama de valores para cada característica. En muchos casos, estas características pueden tener escalas muy diferentes, lo que puede dificultar que el modelo aprenda de manera efectiva. El escalado de características es el proceso de estandarizar el rango de las características, lo que facilita que el modelo aprenda patrones.

¿Por qué usar el escalado de características?

El escalado de características es crucial por varias razones:

  • Mejora el rendimiento del modelo al reducir los efectos de las diferentes escalas de características.
  • También ayuda a acelerar el proceso de entrenamiento.
  • Garantiza que ninguna característica individual domine el modelo debido a su magnitud.

Técnicas para el escalado de características

Existen varias técnicas para el escalado de características, entre ellas:

  • Escalador Estándar
  • Escalador MinMax
  • Escalador Robusto
  • Escalador MaxAbs

Escalador Estándar

El Escalador Estándar es una de las técnicas de escalado más utilizadas en el aprendizaje automático. Escala los datos para que tengan una media de 0 y una desviación estándar de 1. Este método funciona bien para conjuntos de datos con distribuciones normales.

Escalador MinMax

El Escalador MinMax escala los datos a un rango fijo entre 0 y 1. Este método funciona bien para conjuntos de datos con una distribución uniforme.

Escalador Robusto

El Escalador Robusto escala los datos eliminando la mediana y escalando al rango intercuartílico. Este método es menos sensible a los valores atípicos que las otras técnicas de escalado.

Escalador MaxAbs

El Escalador MaxAbs escala los datos al rango [-1, 1] dividiendo cada valor por el valor absoluto máximo. Este método funciona bien para conjuntos de datos que contienen tanto valores positivos como negativos.

Escalado de características en Python

En Python, el escalado de características se puede realizar fácilmente utilizando la biblioteca scikit-learn. A continuación, se muestra un ejemplo de cómo escalar un conjunto de datos usando el Escalador Estándar, siguiendo las mejores prácticas para evitar la fuga de datos ajustando el escalador únicamente en los datos de entrenamiento:

Escalar un conjunto de datos usando el Escalador Estándar en Python

python
from sklearn.preprocessing import StandardScaler
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

data = load_iris()
X = data.data
y = data.target

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

Escalar un conjunto de datos usando otros escaladores

python
from sklearn.preprocessing import MinMaxScaler, RobustScaler, MaxAbsScaler

# MinMax Scaler
min_max_scaler = MinMaxScaler()
X_train_minmax = min_max_scaler.fit_transform(X_train)

# Robust Scaler
robust_scaler = RobustScaler()
X_train_robust = robust_scaler.fit_transform(X_train)

# MaxAbs Scaler
maxabs_scaler = MaxAbsScaler()
X_train_maxabs = maxabs_scaler.fit_transform(X_train)

Conclusión

El escalado de características es un paso crítico para construir modelos de aprendizaje automático precisos y eficientes. Al estandarizar los rangos de las características, previene la dominancia de escala, acelera la convergencia del entrenamiento y mejora el rendimiento general del modelo. Elija el escalador que mejor se adapte a la distribución de sus datos y a la sensibilidad ante valores atípicos.

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.