Робота з шумом у мітках
Одна з ваших аналітикинь з кібербезпеки повідомляє, що багато міток для перших 100 вихідних комп'ютерів у ваших тренувальних даних можуть бути неправильними через помилку в базі даних. Вона сподівається, що ви все ще зможете використати ці дані, адже більшість міток лишаються коректними, але просить вважати ці 100 міток «шумними». На щастя, ви знаєте, як з цим упоратися, — за допомогою зваженого навчання. Забруднені дані доступні у вашому робочому середовищі як X_train, X_test, y_train_noisy, y_test. Ви хочете перевірити, чи можна поліпшити продуктивність класифікатора GaussianNB() за допомогою зваженого навчання. Ви можете використати додатковий параметр sample_weight, який підтримується методами .fit() більшості популярних класифікаторів. Функцію accuracy_score() вже завантажено. Для орієнтиру ви можете звернутися до зображення нижче.

Ця вправа є частиною курсу
Проєктування робочих процесів машинного навчання в Python
Інструкції до вправи
- Навчіть екземпляр
GaussianNB()на тренувальних даних із забрудненими мітками. - Визначте його точність на тестових даних за допомогою
accuracy_score(). - Створіть ваги, які надають істинним міткам удвічі більшу вагу, ніж шумним. Пам'ятайте, що ваги стосуються тренувальних даних.
- Перенавчіть класифікатор із зазначеними вагами та повідомте його точність.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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, ____))