Проверка модели прогноза срока выдачи

тема: Валидация и переобучение · уровень: средний

Условие

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

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

Базовая модель для любой посылки всегда выдаёт одно и то же число 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 →

Куда дальше