EmpezarEmpieza gratis

Agrupación en intervalos (Bucketing)

Si eres propietario de una vivienda, es muy importante si una casa tiene 1, 2, 3 o 4 dormitorios. Pero, como con los baños, a partir de cierto punto no te importa tanto si la casa tiene 7 u 8. En este ejemplo veremos cómo encontrar buenos puntos de corte para crear intervalos (buckets).

Este ejercicio forma parte del curso

Ingeniería de características con PySpark

Ver curso

Instrucciones del ejercicio

  • Dibuja un gráfico de distribución del pandas dataframe sample_df usando Seaborn distplot().
  • Dado que parece haber una cola larga de valores poco frecuentes después de 5, crea los splits de los buckets: 1, 2, 3, 4, 5+
  • Crea el transformador buck instanciando Bucketizer() con los splits para definir los buckets; luego establece la columna de entrada como BEDROOMS y la columna de salida como bedrooms.
  • Aplica la transformación de Bucketizer sobre df usando transform() y asigna el resultado a df_bucket. Después, verifica los resultados con show()

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

from pyspark.ml.feature import Bucketizer

# Plot distribution of sample_df
sns.____(____, axlabel='BEDROOMS')
plt.show()

# Create the bucket splits and bucketizer
splits = [____, ____, ____, ____, ____, ____, float('Inf')]
buck = ____(splits=____, inputCol=____, outputCol=____)

# Apply the transformation to df: df_bucket
df_bucket = ____.____(____)

# Display results
df_bucket[['BEDROOMS', 'bedrooms']].____()
Editar y ejecutar código