Матрица ошибок прогноза отмены заказа

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

Условие

Служба доставки еды сохраняет журнал заказов и прогноз модели отмены. Для каждого заказа известна фактическая метка отмены и метка, предсказанная моделью.

Метка 1 означает, что заказ был отменён, а метка 0 означает, что заказ был доставлен. Иногда фактический статус или прогноз ещё не поступил в журнал. В такой строке стоит символ -.

Необходимо построить матрицу ошибок для строк, в которых известны обе метки. Используются следующие значения: TP — число строк с фактической и предсказанной метками 1; FP — число строк с фактической меткой 0 и предсказанной меткой 1; FN — число строк с фактической меткой 1 и предсказанной меткой 0; TN — число строк с фактической и предсказанной метками 0.

Строки, содержащие символ - хотя бы в одной из двух меток, не учитываются ни в одном из четырёх чисел. При равенстве истинной и предсказанной меток строка учитывается как правильный прогноз: в TP для пары 1 1 и в TN для пары 0 0.

Формат ввода

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

В следующих n строках записаны три значения через пробел: идентификатор заказа order_id, фактическая метка actual и предсказанная метка predicted.

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

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

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

Ограничения

1 ≤ n ≤ 1000.

1 ≤ order_id ≤ 10^9. Идентификаторы заказов могут повторяться и не влияют на расчёт.

Каждая из строк actual и predicted имеет длину 1 и равна одному из символов: 0, 1, -.

Количество строк с известными обеими метками может быть равно нулю. В этом случае все четыре числа матрицы ошибок равны нулю.

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

Куда дальше