Проверка модели прогноза срока выдачи
Условие
В пункте выдачи проверяют модель, которая прогнозирует число дней до получения посылки. Для проверки собраны две таблицы одной и той же валидационной выборки.
В первой таблице указано фактическое число дней ожидания каждой посылки. Во второй таблице указаны прогнозы модели. Строки второй таблицы могут идти в другом порядке, поэтому их необходимо сопоставить с первой таблицей по идентификатору посылки.
Базовая модель для любой посылки всегда выдаёт одно и то же число c. Если прогноз модели для посылки записан как NA, вместо него используется прогноз базовой модели c.
Качество прогноза измеряется средней абсолютной ошибкой MAE:
MAE = (|y1 - q1| + |y2 - q2| + ... + |yn - qn|) / n,
где yi — фактическое число дней, а qi — прогноз проверяемой модели или базовой модели. Необходимо вывести название модели с меньшим значением MAE и её значение MAE.
Если значения MAE совпадают, необходимо вывести BASELINE.
Формат ввода
В первой строке записаны два целых числа n и c: число посылок и постоянный прогноз базовой модели.
Следующие n строк образуют первую таблицу. В каждой строке записаны два целых числа parcel_id и actual_days: идентификатор посылки и фактическое число дней ожидания.
Следующие n строк образуют вторую таблицу. В каждой строке записаны parcel_id и model_prediction: идентификатор посылки и прогноз модели. Вместо прогноза может быть записано слово NA.
Идентификаторы посылок в каждой таблице не повторяются. Множества идентификаторов в двух таблицах совпадают, поэтому для каждой посылки есть ровно одна строка в каждой таблице.
Формат вывода
Выведите через пробел название выбранной модели MODEL или BASELINE и её MAE.
MAE необходимо округлить до двух знаков после точки по обычному правилу: при третьем знаке 5 или больше второй знак увеличивается на 1.
Ограничения
1 <= n <= 2000.
0 <= c <= 365.
1 <= parcel_id <= 1000000000.
0 <= actual_days <= 365.
Прогноз model_prediction — целое число от 0 до 365 или строка NA длины 2.
Длина каждого числового идентификатора не превышает 10 символов.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- На программиста по олимпиаде: путь по классам — что даёт диплом, куда с ним берут на ИТ-направления и почему решает 9 класс
- С нуля до олимпиады: маршрут — сколько занимает язык, какие приёмы нужны и к какому этапу это ведёт