विंडो साइज ट्यून करना
आप खुद जाँचना चाहते हैं कि arrhythmia डेटासेट के लिए optimal विंडो साइज 50 है। आपको यह डेटासेट pandas डेटा फ़्रेम arrh के रूप में दिया गया है, और आप समय t_now तक के डेटा का एक subset उपयोग करना चाहते हैं। आपका टेस्ट डेटा X_test, y_test के रूप में उपलब्ध है। आप 10 से 100 तक कई विंडो साइज आज़माएँगे, हर विंडो पर एक naive Bayes classifier फिट करेंगे, टेस्ट डेटा पर उसका F1 स्कोर आँकेंगे, और फिर सबसे अच्छा प्रदर्शन करने वाला विंडो साइज चुनेंगे। आपके पास numpy np के रूप में उपलब्ध है, और फ़ंक्शन f1_score() पहले से इम्पोर्ट किया गया है। अंत में, accuracies नाम की एक खाली लिस्ट आपके लिए इन विंडो के accuracies स्टोर करने के लिए इनिशियलाइज़ कर दी गई है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में मशीन लर्निंग वर्कफ़्लो डिज़ाइन करना
अभ्यास निर्देश
.loc()मेथड का उपयोग करते हुएt_nowपर रुकने वालीw_sizeसाइज की एक sliding window का इंडेक्स परिभाषित करें.- sliding window से
classकॉलम हटाकरXबनाएँ। उसी कॉलम कोyके रूप में स्टोर करें. Xऔरyपर एक naive Bayes classifier फिट करें, और उससे टेस्ट डेटाX_testके लेबल predict करें.- हर विंडो साइज के लिए इन प्रेडिक्शंस का F1 स्कोर निकालें, और सबसे अच्छा प्रदर्शन करने वाला विंडो साइज खोजें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Loop over window sizes
for w_size in wrange:
# Define sliding window
sliding = arrh.____[____:t_now]
# Extract X and y from the sliding window
X, y = sliding.____('class', ____), sliding[____]
# Fit the classifier and store the F1 score
preds = GaussianNB().fit(____, ____).____(X_test)
accuracies.append(____(____, ____))
# Estimate the best performing window size
optimal_window = ____[np.____(accuracies)]