F-мера для предупреждений парковки
Условие
На въездах и выездах парковки торгового центра камера отмечает события, которые могут требовать проверки оператором. После проверки для каждого события известен правильный признак тревоги: 1, если тревога действительно требовалась, и 0 иначе.
Во входных данных приведены две таблицы. Первая таблица содержит результаты ручной проверки, вторая — прогноз системы камер. Строки таблиц могут идти в разном порядке, поэтому их необходимо сопоставлять по идентификатору события.
Требуется вычислить F-меру с параметром beta = 2. Пусть TP — число событий, для которых и правильный признак, и прогноз равны 1; FP — число событий с прогнозом 1 и правильным признаком 0; FN — число событий с прогнозом 0 и правильным признаком 1. Тогда
F_2 = 5 * TP / (5 * TP + 4 * FN + FP).
Если знаменатель формулы равен нулю, значение F-меры считается равным 0. При совпадении идентификаторов в двух таблицах записи относятся к одному и тому же событию. Внутри каждой таблицы одинаковые идентификаторы не встречаются, а наборы идентификаторов в таблицах совпадают.
Формат ввода
В первой строке даны два целых числа n и m — число строк в таблице ручной проверки и число строк в таблице прогнозов.
В следующих n строках записаны результаты ручной проверки в формате:
event_id actual_alert
где event_id — идентификатор события, а actual_alert равен 0 или 1.
В следующих m строках записаны прогнозы системы в формате:
event_id predicted_alert
где event_id — идентификатор события, а predicted_alert равен 0 или 1.
Формат вывода
Выведите значение F-меры с beta = 2 ровно с тремя знаками после десятичной точки.
Значение округляется до ближайшего числа с тремя знаками после точки. Если отбрасываемая часть ровно равна половине единицы последнего сохраняемого разряда, сохраняемый разряд выбирается чётным.
Ограничения
1 <= n = m <= 2000.
Общее число строк двух таблиц не превосходит 4000.
Длина event_id составляет от 1 до 16 символов. Идентификатор состоит только из строчных латинских букв, цифр и символа -.
actual_alert и predicted_alert принадлежат множеству {0, 1}.
Решить задачу с автопроверкой на Python →
Куда дальше
- Python на олимпиадах — где языка хватает с запасом, а где начинают значить лимиты — с замерами
- Олимпиада по информатике: с чего начать — два мира олимпиад — ВсОШ и перечневые: этапы, задания и на каком языке писать
- На программиста по олимпиаде: путь по классам — что даёт диплом, куда с ним берут на ИТ-направления и почему решает 9 класс