सब कुछ एक साथ लाना
पिछले अभ्यास में बनाए गए distance-based learning anomaly detection पाइपलाइन के अलावा, आप one-class SVM के साथ feature-based learning को भी सपोर्ट करना चाहते हैं। आप दो फीचर निकालने का निर्णय लेते हैं: पहला, स्ट्रिंग की लंबाई; और दूसरा, स्ट्रिंग के पहले अक्षर का संख्यात्मक एन्कोडिंग, जिसे Chapter 1 में वर्णित LabelEncoder() फंक्शन से प्राप्त किया जाएगा। निष्पक्ष तुलना सुनिश्चित करने के लिए, आप outlier स्कोर को AUC कैलकुलेशन में इनपुट देंगे। निम्नलिखित इम्पोर्ट किए गए हैं: LabelEncoder(), roc_auc_score() as auc() और OneClassSVM. डेटा proteins नाम के pandas डेटा फ़्रेम के रूप में उपलब्ध है, जिसमें दो कॉलम हैं, label और seq, और दो classes हैं, IMMUNE SYSTEM और VIRUS. एक फिट किया हुआ LoF डिटेक्टर lof_detector के रूप में उपलब्ध है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में मशीन लर्निंग वर्कफ़्लो डिज़ाइन करना
अभ्यास निर्देश
- किसी स्ट्रिंग
sके लिए,len(s)उसकी लंबाई लौटाता है। इसेseqकॉलम पर लागू करके नया कॉलमlenप्राप्त करें. - किसी स्ट्रिंग
sके लिए,list(s)उसके characters की सूची लौटाता है। इसका उपयोग करके प्रत्येक sequence का पहला अक्षर निकालें, और उसेLabelEncoder()से एन्कोड करें. - LoF स्कोर
negative_outlier_factor_एट्रिब्यूट में होते हैं। उनका AUC निकालें. - केवल
lenऔरfirstकॉलम वाले डेटा फ़्रेम पर 1-class SVM फिट करें। स्कोर निकालें और AUC का उपयोग करके LoF स्कोर तथा SVM स्कोर दोनों का आकलन करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Create a feature that contains the length of the string
proteins['len'] = proteins['seq'].apply(____)
# Create a feature encoding the first letter of the string
proteins['first'] = ____.____(
proteins['seq'].apply(____))
# Extract scores from the fitted LoF object, compute its AUC
scores_lof = lof_detector.____
print(____(proteins['label']==____, scores_lof))
# Fit a 1-class SVM, extract its scores, and compute its AUC
svm = ____.____(proteins[['len', 'first']])
scores_svm = svm.____(proteins[['len', 'first']])
print(____(proteins['label']==____, scores_svm))