ПочатиПочніть безкоштовно

Робота з шумом у мітках

Одна з ваших аналітикинь з кібербезпеки повідомляє, що багато міток для перших 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, ____))
Редагувати та запускати код