CommencezCommencez gratuitement

Regroupement en intervalles

Si vous êtes propriétaire, il est très important de savoir si une maison a 1, 2, 3 ou 4 chambres. Mais, comme pour les salles de bain, passé un certain point, vous ne vous souciez plus vraiment de savoir si la maison en a 7 ou 8. Dans cet exemple, nous allons voir comment déterminer de bons points de coupure pour créer des groupes (buckets).

Cette activité fait partie du cours

Ingénierie des caractéristiques avec PySpark

Voir le cours

Instructions de l’exercice

  • Tracez la distribution du dataframe pandas sample_df en utilisant Seaborn distplot().
  • Étant donné qu'il semble y avoir une longue traîne de valeurs peu fréquentes après 5, créez les « splits » de regroupement 1, 2, 3, 4, 5+.
  • Créez le transformeur buck en instanciant Bucketizer() avec ces splits pour définir les groupes, puis définissez la colonne d'entrée comme BEDROOMS et la colonne de sortie comme bedrooms.
  • Appliquez la transformation Bucketizer sur df avec transform() et assignez le résultat à df_bucket. Vérifiez ensuite les résultats avec show().

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

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']].____()
Modifier et exécuter le code