Grouped डेटा पर Feature engineering
अब आप पिछले अभ्यास पर आगे बढ़ते हुए एक अतिरिक्त फीचर जोड़ेंगे: हर source कंप्यूटर द्वारा उपयोग किए गए यूनिक protocols की संख्या. ध्यान दें कि grouped डेटा के साथ, इस तरह फीचर्स बनाना हमेशा संभव होता है: शुरुआती बिंदु के रूप में आप सभी categorical कॉलम्स के यूनिक एलिमेंट्स की संख्या ले सकते हैं, और सभी numeric कॉलम्स का mean ले सकते हैं. पहले की तरह, flows प्रीलोडेड है, सटीकता मापने के लिए cross_val_score(), AdaBoostClassifier(), और pandas pd के रूप में तथा numpy np के रूप में उपलब्ध हैं.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में मशीन लर्निंग वर्कफ़्लो डिज़ाइन करना
अभ्यास निर्देश
- दिए गए group iterator पर एक
lambdaफंक्शन लगाइए, ताकि हर source कंप्यूटर द्वारा उपयोग किए गए यूनिक protocols की संख्या निकले. यूनिक वैल्यूज़ पाने के लिए आपprotocolकॉलम परset()का उपयोग कर सकते हैं. - परिणाम को सही आकार वाले डेटा फ्रेम में बदलिए, यानी एक index दीजिए और कॉलम का नाम
protocolरखिए. - नए डेटा फ्रेम को पुराने वाले, जो
Xके रूप में उपलब्ध है, के साथ concatenate कीजिए. cross_val_score()का उपयोग करके इस नए डेटासेट परAdaBoostClassifier()की accuracy जाँचिए.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Create a feature counting unique protocols per source
protocols = flows.groupby('source_computer').apply(
lambda df: ____)
# Convert this feature into a dataframe, naming the column
protocols_DF = pd.DataFrame(
protocols, index=____, columns=____)
# Now concatenate this feature with the previous dataset, X
X_more = pd.concat([X, ____], axis=____)
# Refit the classifier and report its accuracy
print(____(____(
AdaBoostClassifier(), ____, y)))