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)
  
Abrir en editor

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)
  
Abrir en editor

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.

Ejemplo

    x = 10
u = 5
s = 2
z = (x - u) / s
print(z)
  
Abrir en editor

Ejercicio: Usar print() (2)

Del mismo modo, si queremos estandarizar el valor 12000 en la columna de" Clics ", aplicamos la fórmula.

Ejemplo

    x = 10

z = (x - u) / s
print(z)
  
Abrir en editor

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)
  
Abrir en editor