Criação de faixas (Bucketing)
Se você é proprietário, é muito importante se a casa tem 1, 2, 3 ou 4 quartos. Mas, como acontece com banheiros, depois de certo ponto você não liga tanto se a casa tem 7 ou 8. Neste exemplo, vamos ver como identificar bons pontos de corte para criar faixas (buckets).
Este exercício faz parte do curso
Feature Engineering com PySpark
Instruções do exercício
- Plote a distribuição do
dataframedopandassample_dfusandodistplot()doSeaborn. - Como parece haver uma cauda longa de valores pouco frequentes após 5, crie as
splitsde buckets em 1, 2, 3, 4, 5+ - Crie o transformador
buckinstanciandoBucketizer()com as splits para definir os buckets; depois, defina a coluna de entrada comoBEDROOMSe a coluna de saída comobedrooms. - Aplique a transformação do Bucketizer em
dfusandotransform()e atribua o resultado adf_bucket. Em seguida, verifique os resultados comshow()
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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']].____()