Escala de datos en Python
Cuando trabajamos con datos que tienen diferentes valores y unidades de medida, puede ser complicado compararlos directamente. ¿Cómo comparamos kilogramos con metros, o altitud con tiempo? La solución a este problema es la escala de datos , que nos permite transformar los valores originales en nuevos valores que sean más fáciles de comparar.
Como en la lección anterior de regresión múltiple, tenemos un conjunto de datos con tres columnas: Presupuesto (EUR) , Clics y Conversiones . Echemos un vistazo a una parte de estos datos:
| Presupuesto (EUR) | Clics | Conversiones |
|---|---|---|
| 5000 | 12000 | 450 |
| 3500 | 8000 | 320 |
| 6000 | 15000 | 580 |
| 4500 | 10000 | 390 |
| 5500 | 11000 | 420 |
| 4200 | 9200 | 350 |
| 6800 | 16000 | 620 |
| 3200 | 7500 | 290 |
| 4900 | 10500 | 400 |
| 3800 | 8200 | 315 |
| 6100 | 14500 | 560 |
| 4300 | 9500 | 365 |
| 4700 | 11000 | 420 |
| 6900 | 15700 | 605 |
| 3300 | 7600 | 295 |
| 5000 | 10800 | 410 |
| 3600 | 8200 | 315 |
| 5200 | 12600 | 480 |
| 4400 | 8400 | 375 |
| 5600 | 14400 | 430 |
| 6100 | 9000 | 565 |
| 4100 | 7500 | 345 |
| 3400 | 9000 | 290 |
| 5000 | 7500 | 435 |
| 4800 | 11300 | 410 |
| 6700 | 10700 | 590 |
| 3500 | 15200 | 310 |
| 5300 | 8000 | 445 |
| 5100 | 11600 | 475 |
| 3700 | 12400 | 320 |
| 5900 | 8400 | 550 |
Podrás comprobar que la columna de " Presupuesto (EUR) " tiene valores como 5000 y la columna de " Clics " tiene valores como 12000. Estos valores son difíciles de comparar directamente debido a sus diferencias en magnitud.
¿Qué es la Estandarización?
Para resolver este problema, podemos utilizar un método llamado estandarización , que nos permite transformar los datos para que tengan una media de 0 y una desviación estándar de 1. Esto hace que los datos sean más comparables. La fórmula de estandarización es:
Ejemplo
x = 10
z = (x - u) / s
print(z)
Donde:
- z es el nuevo valor escalado.
- x es el valor original.
- u es la media de la columna.
- s es la desviación estándar de la columna.
Ejemplo de Estandarización
Supongamos que queremos estandarizar el valor 5000 en la columna de " Presupuesto (EUR) ". Primero, calculamos la media y la desviación estándar de esa columna. Supongamos que la media (u) es 4500 y la desviación estándar (s) es 1000. Aplicando la fórmula:
Ejemplo
z = (5000 - 4500) / 1000 = 0.5
Entonces, el valor estandarizado de 5000 es 0.5.
Del mismo modo, si queremos estandarizar el valor 12000 en la columna de" Clics ", aplicamos la fórmula:
Ejemplo
media_de_clics = 5000
desviacion_estandar_de_clics = 1200
z = (12000 - media_de_clics) / desviacion_estandar_de_clics
print(z)
Estandarización en Python
No es necesario realizar este cálculo manualmente para cada valor. En Python, puedes utilizar la librería
scikit-learn
para realizar la estandarización de manera eficiente. Aquí hay un ejemplo de cómo hacerlo:
Ejemplo
import pandas as pd
datos = pd.DataFrame({
"categoria": ["A", "B", "A", "C"],
"valor": [10, 20, 15, 30],
})
# Importar la clase Standar
# # Importar la clase StandardScaler desde sklearn.preprocessing
from sklearn.preprocessing import StandardScaler
# Crear un ob
# Crear un objeto Scaler
scaler = StandardScaler()
# Ajustar el objeto Scaler a tus datos
scaler.fit(datos)
# Transformar tus da
# Transformar tus datos usando el Scaler
datos_estandarizados = scaler.transform(datos)
print(datos_estandarizados)
Cuando utilices estos datos estandarizados para entrenar modelos de aprendizaje automático, también deberás aplicar la misma transformación a los datos de entrada cuando realices predicciones.
La estandarización de datos es una técnica importante para comparar y trabajar con conjuntos de datos que tienen diferentes escalas. Python, con su librería
scikit-learn
, facilita la aplicación de esta técnica y mejora la capacidad de tus modelos para aprender y hacer predicciones precisas.
Practica Escala de datos en Python en el editor
Pon en práctica lo aprendido con nuestro editor Python interactivo. Cada ejercicio incluye el código de partida y un botón para abrirlo en una nueva pestaña, donde puedes modificarlo y ejecutarlo.
Ejercicio: Usar print()
Para resolver este problema, podemos utilizar un método llamado estandarización , que nos permite transformar los datos para que tengan una media de 0 y.
Ejercicio: Usar print() (2)
Del mismo modo, si queremos estandarizar el valor 12000 en la columna de" Clics ", aplicamos la fórmula.
Ejercicio: Usar print() (3)
No es necesario realizar este cálculo manualmente para cada valor. En Python, puedes utilizar la librería scikit-learn para realizar la estandarización de maner.
Ejemplo
import pandas as pd
datos = pd.DataFrame({
"categoria": ["A", "B", "A", "C"],
"valor": [10, 20, 15, 30],
})
# Importar la clase Standar
# # Importar la clase StandardScaler desde sklearn.preprocessing
from sklearn.preprocessing import StandardScaler
# Crear un ob
# Crear un objeto Scaler
scaler = StandardScaler()
# Ajustar el objeto Scaler a tus datos
scaler.fit(datos)
# Transformar tus da
# Transformar tus datos usando el Scaler
datos_estandarizados = scaler.transform(datos)
print(datos_estandarizados)