Bucketování
Pro kupce nemovitosti je klíčové, jestli má dům 1, 2, 3 nebo 4 ložnice. Jenže podobně jako u koupelen – od určitého bodu už nezáleží na tom, jestli jich je 7 nebo 8. V tomto příkladu se podíváme na to, jak najít vhodné hranice pro rozdělení hodnot do skupin (bucketů).
Toto cvičení je součástí kurzu
Feature Engineering with PySpark
Pokyny k cvičení
- Vykresli distribuční graf
pandasdatového rámcesample_dfpomocí funkcedistplot()z knihovnySeaborn. - Protože se zdá, že po hodnotě 5 následuje dlouhý ocas s řídkými hodnotami, vytvoř hranice
splitspro skupiny 1, 2, 3, 4, 5+ - Vytvoř transformátor
bucktak, že vytvoříš instanciBucketizer()s definovanými hranicemi pro skupiny, vstupní sloupec nastav naBEDROOMSa výstupní sloupec nabedrooms. - Aplikuj transformaci Bucketizer na
dfpomocítransform()a výsledek ulož dodf_bucket. Potom ověř výsledky pomocíshow()
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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']].____()