Метрики прогноза въезда на парковку

тема: Метрики классификации · уровень: средний

Условие

На въездах и выездах парковки торгового центра работает модель, оценивающая вероятность того, что автомобиль направляется на въезд. Для каждой записи известны фактическое направление движения и целочисленная оценка модели от 0 до 100.

После списка записей указан запрос: порог T. Если оценка модели не меньше T, модель считает направление IN — въезд. Иначе модель считает направление OUT — выезд. При равенстве оценки модели и порога T предсказывается направление IN.

Требуется для указанного порога вывести accuracy и balanced accuracy в процентах. Accuracy — доля верных предсказаний:

accuracy = correct / n.

Для направления IN определяется полнота TPR = TP / (TP + FN), а для направления OUT определяется специфичность TNR = TN / (TN + FP). Если во входных данных встречаются оба направления, то

balanced_accuracy = (TPR + TNR) / 2.

Если во входных данных встречается только одно направление, balanced accuracy равна метрике для имеющегося направления: TPR для IN или TNR для OUT. Поэтому деления на ноль не возникает. Повторяющиеся записи учитываются по отдельности.

Формат ввода

В первой строке дано целое число n — количество записей камер парковки.

В следующих n строках даны три значения: код точки контроля gate, фактическое направление fact и оценка модели score.

В последней строке дано целое число T — порог из запроса.

Формат вывода

Выведите два числа через пробел: accuracy и balanced accuracy в процентах.

Каждое значение выводится с двумя знаками после точки. Округление выполняется до ближайшей сотой процента, а при точном равенстве расстояний выбирается большее по модулю значение.

Ограничения

1 ≤ n ≤ 2000.

Длина строки gate составляет от 2 до 12 символов и содержит только латинские буквы, цифры и символ _.

fact равно IN или OUT.

0 ≤ score ≤ 100.

0 ≤ T ≤ 100.

Решить задачу с автопроверкой на Python →

Куда дальше