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
Instructions de l’exercice
- Tracez la distribution du dataframe
pandassample_dfen utilisantSeaborndistplot(). - É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
bucken instanciantBucketizer()avec ces splits pour définir les groupes, puis définissez la colonne d'entrée commeBEDROOMSet la colonne de sortie commebedrooms. - Appliquez la transformation Bucketizer sur
dfavectransform()et assignez le résultat àdf_bucket. Vérifiez ensuite les résultats avecshow().
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']].____()