Задача курса

Accuracy при дисбалансе классов: сравнение с baseline

Курс «Машинное обучение с нуля на Python: первая модель» · урок «Accuracy и ловушка большинства»

Условие

Accuracy модели и постоянного ответа

Когда задержки редки, высокая accuracy модели может выглядеть убедительно даже рядом с классификатором, который никогда не обнаруживает задержку. Проверьте, даёт ли модель преимущество перед таким постоянным ориентиром на данном тестовом наборе. Вывод относится только к accuracy на этих строках: он не доказывает, что модель хорошо находит редкий класс.

В видимом коде есть y_train, y_test и model_predictions; истинные метки и прогнозы тестовых строк стоят в одном порядке. Реализуйте compare_accuracy(y_train, y_test, model_predictions). Ориентир использует метку большинства из y_train и не зависит от истинных меток теста. Сравнение должно оценивать оба набора прогнозов на одном y_test.

Функция возвращает словарь: majority_label — метка ориентира, baseline_predictions — его прогнозы в порядке тестовых строк, accuracy_model и accuracy_baseline — подписанные значения accuracy, higher_accuracy — model, baseline или equal согласно результату сравнения. Вызов внизу сохраняет словарь в comparison; проверка также вызовет функцию на других наборах с однозначным большинством в train. stdin и вывод в stdout не нужны.

Попробуйте решить

РешениеPython
Без регистрации · результат не сохраняется