Podział na przedziały
Dla właściciela domu ma duże znaczenie, czy nieruchomość ma 1, 2, 3 czy 4 sypialnie. Jednak podobnie jak w przypadku łazienek – po przekroczeniu pewnego progu nie robi już różnicy, czy dom ma 7, czy 8. W tym ćwiczeniu sprawdzimy, jak wyznaczyć sensowne punkty podziału do grupowania wartości w przedziały.
To ćwiczenie jest częścią kursu
Inżynieria cech z PySpark
Instrukcje do ćwiczenia
- Narysuj wykres rozkładu ramki danych
pandaso nazwiesample_df, używając funkcjidistplot()z bibliotekiSeaborn. - Ponieważ rozkład ma długi ogon rzadkich wartości powyżej 5, utwórz podziały
splitsna przedziały: 1, 2, 3, 4, 5+ - Utwórz transformer
buck, tworząc instancjęBucketizer()z podanymi podziałami, a następnie ustaw kolumnę wejściową jakoBEDROOMSi kolumnę wyjściową jakobedrooms. - Zastosuj transformację Bucketizer na
dfza pomocątransform()i przypisz wynik dodf_bucket. Następnie zweryfikuj rezultaty, używającshow().
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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']].____()