НачатьНачать бесплатно

Работа с зашумлёнными метками

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