Сравнение прогноза выдач по MSE
Условие
Библиотека сравнивает модель прогноза числа выдач книг с базовой моделью. Данные поступают двумя таблицами: в первой указано фактическое число выдач каждой книги за месяц, во второй — прогноз модели для тех же книг.
Базовая модель для каждой книги предсказывает среднее фактическое число выдач среди книг, для которых прогноз модели не пропущен. Пропуск прогноза обозначается строкой NA; такие книги не участвуют ни в ошибке модели, ни в вычислении среднего базовой модели.
Среднеквадратичная ошибка называется MSE и вычисляется по формуле MSE = (1 / k) * Σ(y_i - p_i)^2, где k — число книг с числовым прогнозом, y_i — фактическое число выдач, p_i — прогноз. Требуется найти, во сколько раз MSE базовой модели больше MSE модели: MSE_базы / MSE_модели.
Все идентификаторы книг в каждой таблице различны. При равенстве идентификаторов строка из первой таблицы сопоставляется со строкой из второй таблицы, имеющей тот же идентификатор. Гарантируется, что числовой прогноз есть хотя бы у одной книги и MSE_модели строго больше нуля.
Выведите ответ с двумя знаками после точки. Если при округлении третья цифра после точки равна 5, второй знак после точки увеличивается на единицу.
Формат ввода
В первой строке даны два целых числа n и m — число строк в таблице фактических выдач и число строк в таблице прогнозов.
В следующих n строках находятся идентификатор книги book_id и целое число issued — фактическое число её выдач за месяц.
В следующих m строках находятся идентификатор книги book_id и значение forecast — целочисленный прогноз модели или строка NA.
Порядок строк во второй таблице может отличаться от порядка строк в первой таблице.
Формат вывода
Выведите одно число: отношение MSE_базы / MSE_модели, округлённое до двух знаков после точки.
Ограничения
1 ≤ n = m ≤ 2000.
Длина каждого идентификатора книги — от 2 до 12 символов. Идентификатор состоит из латинских букв, цифр и символа _.
0 ≤ issued ≤ 10000.
Числовой прогноз удовлетворяет условию 0 ≤ forecast ≤ 10000.
В каждой из двух таблиц все идентификаторы различны, а множества идентификаторов таблиц совпадают.
Число строк с числовым прогнозом не меньше 1. MSE модели строго больше 0.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- Родителям: подготовка бесплатно — сколько стоит репетитор, что даёт бесплатный маршрут и как понять, что ребёнок занимается
- БВИ и льготы при поступлении — какой диплом что даёт и сколько лет он действует