Сравнение прогнозов рейтинга по жанру

тема: Метрики регрессии и МНК · уровень: средний

Условие

Онлайн-кинотеатр хранит оценки фильмов, поставленные зрителями. Для части фильмов оценка ещё не собрана и обозначена словом NA.

Базовая модель для любого фильма предсказывает среднюю оценку всех фильмов с известной оценкой. Модель жанра для фильма предсказывает среднюю оценку фильмов того же жанра с известной оценкой.

Для каждого жанра из запроса нужно сравнить модели только на фильмах этого жанра с известной оценкой. Среднеквадратичная ошибка называется MSE и вычисляется по формуле MSE = ((y1 - p1)^2 + (y2 - p2)^2 + ... + (yk - pk)^2) / k, где yi — настоящая оценка фильма, pi — прогноз модели, а k — число фильмов жанра с известной оценкой.

Для каждого жанра из запроса следует вывести ЛУЧШЕ, если MSE модели жанра строго меньше MSE базовой модели, и РАВНЫ, если ошибки равны. После слова выводится разность MSE_базовой - MSE_жанра. При равенстве MSE выводится слово РАВНЫ и число 0.00.

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

Формат ввода

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

В следующих n строках даны жанр и оценка фильма через пробел. Оценка является целым числом или словом NA.

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

В следующих q строках дано по одному жанру. Для каждого из них требуется вывести результат сравнения.

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

Выведите q строк. В каждой строке выведите слово ЛУЧШЕ или РАВНЫ, затем пробел и разность MSE с двумя знаками после точки.

Ограничения

1 ≤ n ≤ 2000.

1 ≤ q ≤ 50.

Длина названия жанра составляет от 1 до 20 символов. Название содержит только строчные латинские буквы.

Если оценка не равна NA, то это целое число от 1 до 10.

Каждый жанр из запроса имеет хотя бы одну известную оценку.

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

Куда дальше