Метрики датчика выезда парковки
Условие
В файле 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 →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- Перечневые олимпиады: что это и что дают — весь перечень Минобрнауки: уровни, срок диплома, разрезы по предметам и классам
- Олимпиада по информатике: с чего начать — два мира олимпиад — ВсОШ и перечневые: этапы, задания и на каком языке писать