अपने स्केलर्स को स्केल करना
पिछले अभ्यास में, हमने एक ही वैरिएबल पर minmax स्केलिंग की थी। मान लीजिए आपको बहुत सारे वैरिएबल्स को स्केल करना है — आप हर एक के लिए सैकड़ों लाइनें कोड नहीं लिखना चाहेंगे। आइए पिछले अभ्यास को आगे बढ़ाएँ और इसे एक फंक्शन के रूप में बनाएँ।
यह अभ्यास पाठ्यक्रम का हिस्सा है
PySpark के साथ Feature Engineering
अभ्यास निर्देश
min_max_scalerनाम का एक फंक्शन डिफ़ाइन करें जो पैरामीटर्सdf(एक डेटाफ़्रेम) औरcols_to_scale(स्केल करने वाले कॉलम्स की सूची) लेता है.- एक
forलूप का उपयोग करके सूची के हर कॉलम पर इटरेट करें और उन पर minmax स्केलिंग लागू करें. - नए कॉलम्स जुड़ने के साथ डेटाफ़्रेम
dfको रिटर्न करें. - फंक्शन
min_max_scaler()कोdfऔर कॉलम्स की सूचीcols_to_scaleपर अप्लाई करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
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()