Матрица ошибок наблюдений птиц по зоне

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

Условие

В парке проверяют модель, которая по фотографии определяет, есть ли на ней птица редкого вида. Для каждого снимка известны зона парка, истинная метка и предсказание модели.

Истинная метка 1 означает, что редкая птица действительно была на снимке, а 0 означает её отсутствие. Предсказание модели задаётся теми же значениями. Иногда истинная метка или предсказание неизвестны и записаны как -1.

В последней строке входа указана зона парка — запрос. Нужно построить для снимков только из этой зоны матрицу ошибок модели. Снимки, у которых хотя бы одна из двух меток равна -1, не учитываются.

Обозначим TP количество снимков с истинной меткой 1 и предсказанием 1, FP — с истинной меткой 0 и предсказанием 1, FN — с истинной меткой 1 и предсказанием 0, TN — с истинной меткой 0 и предсказанием 0.

Если значения количеств совпадают, никакого выбора между ними не производится: они выводятся в фиксированном порядке TP FP FN TN.

Формат ввода

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

В следующих n строках записаны через пробел три значения: название зоны парка zone, истинная метка true_label и предсказание модели pred_label.

В последней строке записано название зоны query_zone, для которой требуется построить матрицу ошибок.

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

Выведите четыре целых числа через пробел: TP FP FN TN для зоны из запроса.

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

Ограничения

1 ≤ n ≤ 1000.

Длина названия каждой зоны составляет от 1 до 20 символов латинского алфавита в нижнем регистре.

true_label и pred_label принадлежат множеству {-1, 0, 1}.

Зона из последней строки встречается хотя бы в одной из n строк.

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

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

Куда дальше