Menskalakan skaler Anda
Pada latihan sebelumnya, kita melakukan min-max scaling pada satu variabel. Misalkan Anda memiliki BANYAK variabel untuk diskalakan; Anda tentu tidak ingin menulis ratusan baris kode untuk masing-masing. Mari kita kembangkan latihan sebelumnya dan menjadikannya sebuah fungsi.
Latihan ini adalah bagian dari kursus
Rekayasa Fitur dengan PySpark
Petunjuk latihan
- Definisikan fungsi bernama
min_max_scaleryang menerima parameterdfsebuah dataframe dancols_to_scaledaftar kolom yang akan diskalakan. - Gunakan loop
foruntuk mengiterasi setiap kolom dalam daftar dan lakukan min-max scaling. - Kembalikan dataframe
dfdengan kolom-kolom baru yang telah ditambahkan. - Terapkan fungsi
min_max_scaler()padadfdan daftar kolomcols_to_scale.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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()