ComeçarComece de graça

Escalando seus scalers

No exercício anterior, aplicamos Min-Max scaling a uma única variável. Suponha que você tenha MUITAS variáveis para escalar — você não vai querer centenas de linhas de código para cada uma. Vamos ampliar o exercício anterior e transformar isso em uma função.

Este exercício faz parte do curso

Feature Engineering com PySpark

Ver curso

Instruções do exercício

  • Defina uma função chamada min_max_scaler que receba os parâmetros df, um dataframe, e cols_to_scale, a lista de colunas a serem escaladas.
  • Use um loop for para iterar por cada coluna da lista e aplicar o Min-Max scaling.
  • Retorne o dataframe df com as novas colunas adicionadas.
  • Aplique a função min_max_scaler() em df e na lista de colunas cols_to_scale.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

def ____(____, ____):
  # Takes a dataframe and list of columns to minmax scale. Returns a dataframe.
  for col in ____:
    # Define min and max values and collect them
    max_days = df.agg({col: 'max'}).collect()[0][0]
    min_days = df.agg({____: 'min'}).collect()[0][0]
    new_column_name = 'scaled_' + col
    # Create a new column based off the scaled data
    df = df.withColumn(____, 
                      (df[____] - min_days) / (max_days - min_days))
  return ____
  
df = min_max_scaler(____, ____)
# Show that our data is now between 0 and 1
df[['DAYSONMARKET', 'scaled_DAYSONMARKET']].show()
Editar e executar o código