Ajuster vos échelles
Dans l'exercice précédent, nous avons appliqué un min-max scaling à une seule variable. Supposez que vous ayez BEAUCOUP de variables à mettre à l'échelle : vous ne voulez pas des centaines de lignes de code pour chacune. Développons l'exercice précédent et transformons-le en fonction.
Cette activité fait partie du cours
Ingénierie des caractéristiques avec PySpark
Instructions de l’exercice
- Définissez une fonction appelée
min_max_scalerqui prend les paramètresdf, un dataframe, etcols_to_scale, la liste des colonnes à mettre à l'échelle. - Utilisez une boucle
forpour parcourir chaque colonne de la liste et appliquer le min-max scaling. - Retournez le dataframe
dfavec les nouvelles colonnes ajoutées. - Appliquez la fonction
min_max_scaler()àdfet à la liste de colonnescols_to_scale.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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()