शुरू करेंमुफ़्त में शुरू करें

कम ऑब्ज़र्वेशन वाले कॉलम हटाना

बहुत सारा फीचर इंजीनियरिंग करने के बाद एक कदम पीछे हटकर यह देखना अच्छा रहता है कि आपने क्या बनाया है. अगर आपने अपनी कैटेगोरिकल फीचर्स पर exploding या OneHot Encoding जैसी automation तकनीकें इस्तेमाल की हैं, तो संभव है कि अब आपके पास सैकड़ों नए binary फीचर्स हों. फीचर सिलेक्शन अपने आप में एक अलग कोर्स का विषय है, लेकिन कुछ तेज़ कदम हैं जिनसे आप अपने डेटासेट की dimensionality घटा सकते हैं.

इस अभ्यास में, हम वे कॉलम हटाएँगे जिनमें 30 से कम ऑब्ज़र्वेशन हैं. 30, सांख्यिकीय महत्व (statistical significance) के लिए एक आम न्यूनतम संख्या मानी जाती है. इससे कम होने पर रिश्ते महज़ संयोग के कारण overfitting कराते हैं!

NOTE: डेटा df नाम के dataframe में उपलब्ध है.

यह अभ्यास पाठ्यक्रम का हिस्सा है

PySpark के साथ Feature Engineering

पाठ्यक्रम देखें

अभ्यास निर्देश

  • दिए गए for लूप का उपयोग करते हुए, जो binary कॉलम्स की सूची पर इटरेट करता है, agg फ़ंक्शन से उस कॉलम के मानों का sum निकालिए. collect() का उपयोग करके गणना तुरंत चलाइए और परिणाम obs_count में सेव कीजिए.
  • obs_count की तुलना obs_threshold से कीजिए; if स्टेटमेंट true होना चाहिए अगर obs_count obs_threshold से कम या बराबर है.
  • cols_to_remove सूची में जो कॉलम जोड़े गए हैं, उन्हें drop() से हटाइए. याद रखें, * सूची को अनपैक करने देता है.
  • PySpark dataframes के शुरुआती और अंतिम shape को प्रिंट कीजिए: रिकॉर्ड्स की संख्या के लिए count() और कॉलम्स की संख्या जानने के लिए df.columns या new_df.columns पर len() इस्तेमाल कीजिए.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

obs_threshold = 30
cols_to_remove = list()
# Inspect first 10 binary columns in list
for col in binary_cols[0:10]:
  # Count the number of 1 values in the binary column
  obs_count = df.____({col: ____}).____()[0][0]
  # If less than our observation threshold, remove
  if ____ ____ ____:
    cols_to_remove.append(col)
    
# Drop columns and print starting and ending dataframe shapes
new_df = df.____(*____)

print('Rows: ' + str(df.____()) + ' Columns: ' + str(____(df.____)))
print('Rows: ' + str(new_df.____()) + ' Columns: ' + str(____(new_df.____)))
कोड संपादित करें और चलाएँ