Algunos desarrolladores de ML tienden a estandarizar sus datos a ciegas antes de «cada» modelo de Aprendizaje Automático sin tomarse el esfuerzo de entender por qué debe ser utilizado, o incluso si es necesario o no. Así que el objetivo de este post es explicar cómo, por qué y cuándo estandarizar los datos.
- Estandarización
- ¿Cómo estandarizar los datos?
- Z-score
- ¿Cuándo estandarizar los datos y por qué?
- 1- Antes de PCA:
- 2- Antes de Clustering:
- 3- Antes de KNN:
- 4- Antes de SVM
- 5- Antes de medir la importancia de las variables en los modelos de regresión
- 6- Antes de la regresión Lasso y Ridge
- ¿Casos en los que no es necesaria la estandarización?
- Regresión logística y modelos basados en árboles
- Resumiendo la estandarización de los datos
Estandarización
La estandarización entra en escena cuando las características del conjunto de datos de entrada tienen grandes diferencias entre sus rangos, o simplemente cuando se miden en diferentes unidades de medida (por ejemplo, Libras, Metros, Millas … etc).
Estas diferencias en los rangos de las características iniciales causa problemas a muchos modelos de aprendizaje automático. Por ejemplo, para los modelos que se basan en el cálculo de la distancia, si una de las características tiene un amplio rango de valores, la distancia se regirá por esta característica particular.
Para ilustrar esto con un ejemplo : digamos que tenemos un conjunto de datos de 2 dimensiones con dos características, Altura en Metros y Peso en Libras, que van respectivamente de Metros y Libras. No importa qué modelo basado en la distancia se realice en este conjunto de datos, la característica Peso dominará sobre la característica Altura y tendrá más contribución al cálculo de la distancia, sólo porque tiene valores más grandes en comparación con la Altura. Por lo tanto, para evitar este problema, la solución es transformar las características a escalas comparables utilizando la estandarización.
¿Cómo estandarizar los datos?
Z-score
Z-score es uno de los métodos más populares para estandarizar los datos, y se puede hacer restando la media y dividiendo por la desviación estándar para cada valor de cada característica.
Una vez realizada la estandarización, todas las características tendrán una media de cero, una desviación estándar de uno, y por lo tanto, la misma escala.
Existen otros métodos de estandarización, pero en aras de la simplicidad, en esta historia me conformo con el método Z-score.
¿Cuándo estandarizar los datos y por qué?
Como se ha visto anteriormente, para los modelos basados en la distancia, la estandarización se realiza para evitar que las características con rangos más amplios dominen la métrica de la distancia. Pero la razón por la que estandarizamos los datos no es la misma para todos los modelos de aprendizaje automático, y difiere de un modelo a otro.
Entonces, ¿ante qué modelos y métodos de ML hay que estandarizar los datos y por qué?
1- Antes de PCA:
En el Análisis de Componentes Principales, las características con altas varianzas/rangos amplios, obtienen más peso que las de baja varianza, y en consecuencia, acaban dominando ilegítimamente los Primeros Componentes Principales (Componentes con máxima varianza). Utilicé la palabra «ilegítimamente» aquí, porque la razón por la que estas características tienen altas varianzas en comparación con las otras es simplemente porque se midieron en diferentes escalas.
La estandarización puede evitar esto, dando el mismo wheightage a todas las características.
2- Antes de Clustering:
Los modelos de Clustering son algoritmos basados en la distancia, con el fin de medir las similitudes entre las observaciones y formar clusters que utilizan una métrica de distancia. Por lo tanto, las características con rangos altos tendrán una mayor influencia en el clustering. Por lo tanto, la estandarización es necesaria antes de construir un modelo de clustering.
3- Antes de KNN:
k-nearest neighbors es un clasificador basado en la distancia que clasifica las nuevas observaciones basándose en medidas de similitud (por ejemplo, métricas de distancia) con las observaciones etiquetadas del conjunto de entrenamiento. La normalización hace que todas las variables contribuyan por igual a las medidas de similitud.
4- Antes de SVM
La máquina de vectores de soporte intenta maximizar la distancia entre el plano de separación y los vectores de soporte. Si una característica tiene valores muy grandes, dominará sobre otras características al calcular la distancia. Así que la normalización da a todas las características la misma influencia en la métrica de la distancia.
5- Antes de medir la importancia de las variables en los modelos de regresión
Se puede medir la importancia de las variables en el análisis de regresión, ajustando un modelo de regresión utilizando las variables independientes estandarizadas y comparando el valor absoluto de sus coeficientes estandarizados. Pero, si las variables independientes no están estandarizadas, la comparación de sus coeficientes carece de sentido.
6- Antes de la regresión Lasso y Ridge
Las regresiones Lasso y Ridge penalizan la magnitud de los coeficientes asociados a cada variable. Y la escala de las variables afectará a la cantidad de penalización que se aplicará sobre sus coeficientes. Porque los coeficientes de las variables con gran varianza son pequeños y, por tanto, se penalizan menos. Por lo tanto, se requiere la estandarización antes de ajustar ambas regresiones.
¿Casos en los que no es necesaria la estandarización?
Regresión logística y modelos basados en árboles
La regresión logística y los algoritmos basados en árboles, como el árbol de decisión, el bosque aleatorio y el refuerzo de gradiente, no son sensibles a la magnitud de las variables. Por lo tanto, la estandarización no es necesaria antes de ajustar este tipo de modelos.
Resumiendo la estandarización de los datos
Como hemos visto en este post, cuándo estandarizar y cuándo no, depende del modelo que quieras utilizar y de lo que quieras hacer con él. Por lo tanto, es muy importante para un desarrollador de ML entender el funcionamiento interno de los algoritmos de aprendizaje automático, para poder saber cuándo estandarizar los datos y construir un modelo de aprendizaje automático exitoso.
N.B: La lista de modelos y métodos cuando se requiere la estandarización, presentada en este post no es exhaustiva.