लेबल नॉइज़ से निपटना
आपकी साइबर एनालिस्ट में से एक आपको बताती हैं कि आपके ट्रेनिंग डेटा में पहले 100 सोर्स कंप्यूटर्स के कई लेबल डेटाबेस एरर के कारण गलत हो सकते हैं. वह चाहती हैं कि आप डेटा फिर भी इस्तेमाल करें, क्योंकि अधिकतर लेबल अब भी सही हैं, लेकिन आपसे अनुरोध है कि इन 100 लेबल्स को "noisy" मानें. सौभाग्य से, आप weighted learning के ज़रिए ऐसा करना जानते हैं. दूषित डेटा आपके वर्कस्पेस में X_train, X_test, y_train_noisy, y_test के रूप में उपलब्ध है. आप देखना चाहते हैं कि क्या आप GaussianNB() क्लासिफायर के प्रदर्शन को weighted learning से बेहतर कर सकते हैं. आप वैकल्पिक पैरामीटर sample_weight का उपयोग कर सकते हैं, जिसे ज़्यादातर लोकप्रिय क्लासिफायर की .fit() मेथड सपोर्ट करती है. फ़ंक्शन accuracy_score() पहले से लोड है. मार्गदर्शन के लिए आप नीचे दी गई इमेज देख सकते हैं.

यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में मशीन लर्निंग वर्कफ़्लो डिज़ाइन करना
अभ्यास निर्देश
- दूषित लेबल्स वाले ट्रेनिंग डेटा पर
GaussianNB()का एक इंस्टेंस फिट करें. accuracy_score()का उपयोग करके टेस्ट डेटा पर इसकी accuracy रिपोर्ट करें.- ऐसे वेट्स बनाएँ जो ground truth लेबल्स को noisy लेबल्स की तुलना में दोगुना वेट दें. याद रखें कि वेट्स ट्रेनिंग डेटा के लिए होते हैं.
- ऊपर दिए वेट्स का उपयोग करके क्लासिफायर को दोबारा फिट करें और उसकी accuracy रिपोर्ट करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Fit a Gaussian Naive Bayes classifier to the training data
clf = ____.____(____, y_train_noisy)
# Report its accuracy on the test data
print(accuracy_score(y_test, ____.____(X_test)))
# Assign half the weight to the first 100 noisy examples
weights = [____]*100 + [1.0]*(len(____)-100)
# Refit using weights and report accuracy. Has it improved?
clf_weights = GaussianNB().fit(X_train, y_train_noisy, ____=____)
print(accuracy_score(y_test, ____))