Raggruppamento in bucket
Se sei proprietario di casa è molto importante se un immobile ha 1, 2, 3 o 4 camere da letto. Ma, come per i bagni, superata una certa soglia non ti interessa più di tanto se la casa ne ha 7 o 8. In questo esempio vediamo come individuare buoni punti di valore per creare i bucket.
Questo esercizio fa parte del corso
Feature Engineering con PySpark
Istruzioni dell'esercizio
- Traccia un grafico di distribuzione del dataframe
pandassample_dfusandoSeaborndistplot(). - Dato che sembra esserci una lunga coda di valori rari dopo 5, crea gli
splitsdei bucket come 1, 2, 3, 4, 5+ - Crea il trasformatore
buckistanziandoBucketizer()con gli split per impostare i bucket, poi imposta la colonna di input comeBEDROOMSe la colonna di output comebedrooms. - Applica la trasformazione del Bucketizer su
dfusandotransform()e assegna il risultato adf_bucket. Poi verifica i risultati conshow()
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
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']].____()