Grupare în intervale (Bucketing)
Dacă ești proprietar, contează foarte mult dacă o casă are 1, 2, 3 sau 4 dormitoare. Însă, la fel ca în cazul băilor, după un anumit punct nu mai contează dacă locuința are 7 sau 8. În acest exercițiu vom vedea cum identificăm punctele de valoare potrivite pentru gruparea în intervale.
Acest exercițiu face parte din cursul
Feature Engineering cu PySpark
Instrucțiuni pentru exercițiu
- Trasează un grafic de distribuție pentru dataframe-ul
pandassample_dffolosinddistplot()dinSeaborn. - Deoarece pare să existe o coadă lungă de valori rare după 5, creează intervalele
splitsde 1, 2, 3, 4, 5+ - Creează transformatorul
buckinstanțiindBucketizer()cu intervalele definite, setând coloana de intrare caBEDROOMSși coloana de ieșire cabedrooms. - Aplică transformarea Bucketizer pe
dffolosindtransform()și atribuie rezultatul variabileidf_bucket. Verifică apoi rezultatele cushow().
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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']].____()