“¿Por qué la normalización es clave e importante en Machine Learning y Ciencia de Datos?
Descubre cómo la normalización ayuda a escalar los valores de los atributos a una escala común y evitar problemas como la dominancia de un atributo sobre los demás.
La normalización es una técnica de pre-procesamiento de datos que se utiliza para ajustar las características o atributos de los datos dentro de un rango específico y mejorar su interpretación. Por lo tanto, la normalización es un proceso esencial en la ciencia de datos y el aprendizaje automático que se utiliza para mejorar la eficiencia y la precisión de los algoritmos.
En términos simples, la normalización es una forma de escalar y transformar los datos para que estén en un rango común, independientemente de la escala original de los datos. Esta técnica se utiliza para estandarizar los datos y reducir el impacto de las diferencias en la escala y la magnitud de los atributos de los datos. Por ejemplo, si una característica tiene valores en el rango de 1 a 1000 y otra característica tiene valores en el rango de 1 a 5, la característica con valores más grandes tendrá una influencia dominante en el modelo de aprendizaje automático.
En el aprendizaje automático, la normalización es importante porque muchos algoritmos de aprendizaje automático, como la regresión logística, los árboles de decisión y las redes neuronales, requieren que los datos estén normalizados para funcionar correctamente.
Además, la normalización también es importante porque ayuda a mejorar la interpretación de los resultados del análisis de datos. La normalización permite a los investigadores comparar las características de diferentes conjuntos de datos y hacer inferencias sobre su distribución. Esto es especialmente útil en el análisis estadístico y la visualización de datos.
Existen varias técnicas de normalización comunes en la ciencia de datos y el aprendizaje automático, como la normalización de z-score, la normalización min-max y la normalización por desviación estándar. Cada una de estas técnicas tiene sus propias ventajas y desventajas, y la elección de la técnica adecuada depende del conjunto de datos específico y los requisitos del modelo. Una técnica importante que hay que comprender en el pre-procesamiento de datos. Cuando echamos un vistazo al conjunto de datos de automóviles usados, observamos en los datos que la característica de longitud oscila entre 150-250, mientras que la característica de anchura y altura oscila entre 50-100. Puede que queramos normalizar estas variables para que el rango de los valores sea consistente.
A continuación vamos a mostrar a través de un ejemplo el uso de la normalización como técnica indiscutible en el pre-procesamiento de datos.
Creamos un conjunto de datos sobre automóviles usados con tres atributos, estos son: “Longitud”, “Ancho”, “Altura”, utilizando la librería Pandas de Python.
import pandas as pd # importamos la librería Pandas
columnas = ['Longitud', 'Ancho','Altura']
valores = [[168.8, 64.1, 48.8],
[168.8, 64.1, 48.8],
[172.2, 65.5, 52.4],
[17.6, 66.2, 54.3],
[17.6, 66.2, 54.3],
[177.3, 66.3, 53.1],
[192.7, 71.4, 55.7],
[192.7, 71.4, 55.7],
[192.7, 71.4, 55.9]]
df = pd.DataFrame(valores, columns=columnas)
df
Cuando echamos un vistazo al conjunto de datos de automóviles usados, observamos en los datos que la característica de longitud oscila entre 168–192.7, mientras que la característica de anchura y altura oscila entre 48 –71. Aunque los rangos entre las tres variables no es notoriamente grande, es un buen ejemplo para entender la importancia de la normalización en sus tres métodos:
- Normalización de z-score: también conocida como estandarización, es una técnica de normalización utilizada en estadísticas y en el campo del aprendizaje automático. Consiste en transformar los valores de una característica en un conjunto de datos de tal manera que tengan una media de cero y una desviación estándar de uno. Esto se logra restando la media de los datos y dividiendo el resultado por la desviación estándar.
La normalización de z-score es útil porque permite comparar características con diferentes unidades y rangos de valores en un mismo conjunto de datos. Además, los datos normalizados son más robustos a los valores atípicos (outliers) que otros métodos de normalización. Esta técnica se utiliza a menudo en la fase de preprocesamiento de datos en el aprendizaje automático, antes de aplicar un modelo de machine learning a los datos.
El siguiente código Python calcula la normalización Z-Score, sobre el atributo “Longitud”
df['Longitud'] = df['Longitud']/df['Longitud'].max()
df
Longitud Ancho Altura
0 0.875973 64.1 48.8
1 0.875973 64.1 48.8
2 0.893617 65.5 52.4
3 0.091334 66.2 54.3
4 0.091334 66.2 54.3
5 0.920083 66.3 53.1
6 1.000000 71.4 55.7
7 1.000000 71.4 55.7
8 1.000000 71.4 55.9
2. La normalización Min-Max: es una técnica de normalización utilizada en estadísticas y en el campo del aprendizaje automático. Consiste en transformar los valores de una característica en un conjunto de datos de tal manera que estén en un rango de valores específico, típicamente entre 0 y 1.
La normalización Min-Max es útil porque permite comparar características con diferentes unidades y rangos de valores en un mismo conjunto de datos, y también es una técnica de normalización muy simple de implementar. Sin embargo, la normalización Min-Max puede ser sensible a los valores atípicos (outliers) en los datos, lo que puede afectar la distribución de los valores normalizados. En general, se recomienda utilizar la normalización Min-Max junto con otras técnicas de preprocesamiento de datos, como la detección y eliminación de valores atípicos, para obtener los mejores resultados en el análisis de datos y el aprendizaje automático.
df['Longitud'] = (df['Longitud']-df['Longitud'].min())/(df['Longitud'].max()-df['Longitud'].min())
df
Longitud Ancho Altura
0 0.863507 64.1 48.8
1 0.863507 64.1 48.8
2 0.882924 65.5 52.4
3 0.000000 66.2 54.3
4 0.000000 66.2 54.3
5 0.912050 66.3 53.1
6 1.000000 71.4 55.7
7 1.000000 71.4 55.7
8 1.000000 71.4 55.9
3. Escalado simple es una técnica de preprocesamiento de datos utilizada en estadísticas y en el campo del aprendizaje automático. Consiste en transformar los valores de una característica en un conjunto de datos de tal manera que estén en un nuevo rango de valores específico. Es decir, sólo divide cada valor por el valor máximo de esa característica. Esto hace que los nuevos valores oscilen entre cero y uno.
df['Longitud'] = df['Longitud']/df['Longitud'].max()
df
Longitud Ancho Altura
0 0.875973 64.1 48.8
1 0.875973 64.1 48.8
2 0.893617 65.5 52.4
3 0.091334 66.2 54.3
4 0.091334 66.2 54.3
5 0.920083 66.3 53.1
6 1.000000 71.4 55.7
7 1.000000 71.4 55.7
8 1.000000 71.4 55.9
En resumen, la normalización es un proceso importante en la organización de datos para garantizar que sean coherentes y estén estructurados de manera adecuada para su uso y análisis. A menudo se confunde con la estandarización, pero estas son dos conceptos diferentes.
La normalización se refiere a la organización de datos de manera coherente para reducir la redundancia y mejorar la integridad de los datos, lo que a su vez ayuda a evitar errores y mejorar la eficiencia. La normalización también ayuda a garantizar la consistencia en la entrada y el análisis de datos, lo que es fundamental para la toma de decisiones informadas.
Por otro lado, la estandarización se refiere al establecimiento de normas comunes para procesos, productos o servicios en una industria o área específica. La estandarización es importante para garantizar la calidad y la interoperabilidad de los productos y servicios, y para asegurar la seguridad y la eficiencia en los procesos.
En resumen, la normalización es esencial para la organización de datos y la toma de decisiones informadas, mientras que la estandarización es importante para la calidad y la interoperabilidad en una industria o área específica. Es importante no confundir estos dos conceptos, ya que tienen objetivos y enfoques diferentes.