Метрики датчика выезда парковки

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

Условие

В файле data.csv хранятся сведения о парковочных местах торгового центра. Каждому месту соответствует зона парковки, этаж и количество мест в ряду.

В файле events.csv хранятся результаты работы датчика. Каждая строка описывает один автомобиль, замеченный около парковочного места. Поле actual_exit равно 1, если автомобиль действительно выехал с парковки в течение 15 минут, и равно 0 в противном случае. Поле exit_score содержит оценку датчика от 0 до 100.

Для указанной зоны и порога нужно оценить качество датчика. Запись считается предсказанием выезда, если exit_score не меньше порога. Чувствительность равна TP / (TP + FN), а специфичность равна TN / (TN + FP), где TP — число верно предсказанных выездов, FN — число пропущенных выездов, TN — число верно распознанных невыездов, FP — число ложных предсказаний выезда.

При равенстве оценки датчика и порога запись считается предсказанием выезда. Для каждой зоны в данных есть хотя бы один настоящий выезд и хотя бы один настоящий невыезд, поэтому деления на ноль не возникает.

Формат ввода

Рядом с программой находятся два UTF-8 CSV-файла с разделителем запятая.

Файл data.csv содержит от 300 до 2000 строк данных после заголовка. Его столбцы: space_id — целочисленный идентификатор парковочного места, zone — строка из одной заглавной латинской буквы, level — номер этажа, row_capacity — число мест в ряду.

Файл events.csv содержит от 300 до 2000 строк данных после заголовка. Его столбцы: event_id — целочисленный идентификатор события, space_id — идентификатор парковочного места из файла data.csv, actual_exit — число 0 или 1, exit_score — целое число от 0 до 100.

В стандартном вводе записаны две строки. В первой строке указана зона zone. Во второй строке указан целый порог p.

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

Выведите через пробел чувствительность и специфичность в процентах.

Каждое число выводится ровно с двумя знаками после точки.

Ограничения

Количество строк в data.csv: от 300 до 2000.

Количество строк в events.csv: от 300 до 2000.

space_id, event_id: целые числа от 1 до 1000000.

zone: одна заглавная латинская буква от A до Z.

level: целое число от -3 до 20.

row_capacity: целое число от 1 до 200.

actual_exit: 0 или 1.

exit_score и порог p: целые числа от 0 до 100.

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

Куда дальше