Bucketing
अगर आप मकान मालिक हैं, तो यह बहुत मायने रखता है कि घर में 1, 2, 3 या 4 बेडरूम हैं। लेकिन बाथरूम की तरह, एक सीमा के बाद आपको सच में परवाह नहीं रहती कि घर में 7 हैं या 8। इस उदाहरण में हम देखेंगे कि अच्छे वैल्यू पॉइंट्स कहाँ हो सकते हैं ताकि हम उन्हें बकेट कर सकें।
यह अभ्यास पाठ्यक्रम का हिस्सा है
PySpark के साथ Feature Engineering
अभ्यास निर्देश
Seabornकेdistplot()का उपयोग करते हुएpandasडेटाफ़्रेमsample_dfका डिस्ट्रीब्यूशन प्लॉट बनाइए.- चूँकि ऐसा लगता है कि 5 के बाद कम-आवृत्ति वाले मानों की एक लंबी टेल है, तो 1, 2, 3, 4, 5+ के लिए बकेट
splitsबनाइए. - बकेट सेट करने के लिए इन स्प्लिट्स के साथ
Bucketizer()को इंस्टैंशिएट करके ट्रांसफॉर्मरbuckबनाइए, फिर इनपुट कॉलमBEDROOMSऔर आउटपुट कॉलमbedroomsसेट कीजिए. transform()का उपयोग करकेdfपर Bucketizer ट्रांसफॉर्मेशन लागू कीजिए और परिणाम कोdf_bucketमें असाइन कीजिए। फिरshow()से परिणाम जाँचिए.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
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']].____()