Сравнение планов кормления по MSE

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

Условие

В зоопарке проверяют точность графика кормления животных. Для части записей известны фактическая масса корма и масса, указанная в плане. Значение -1 в поле плана означает, что план для этой записи отсутствует.

Нужно сравнить две модели предсказания фактической массы корма. Первая модель ПЛАН предсказывает массу из плана. Вторая модель СРЕДНЕЕ для каждой записи предсказывает среднюю фактическую массу корма среди всех записей, у которых план указан.

Качество измеряется среднеквадратичной ошибкой MSE: MSE = ((y1 - p1)^2 + (y2 - p2)^2 + ... + (yk - pk)^2) / k, где y — фактическая масса корма, p — предсказание модели, а k — число записей с указанным планом. Записи с планом -1 не участвуют ни в вычислении среднего, ни в вычислении MSE. Требуется вывести название модели с меньшей MSE и значение этой MSE.

Если MSE двух моделей равны точно, следует вывести СРЕДНЕЕ.

Формат ввода

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

В следующих n строках даны три значения: код животного animal_code, фактическая масса корма actual_grams и плановая масса корма planned_grams.

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

Выведите через пробел название лучшей модели — ПЛАН или СРЕДНЕЕ — и её MSE.

MSE выводится ровно с двумя знаками после точки. Значение округляется до ближайшей сотой, а при ровно одинаковом расстоянии от двух сотых выбирается большая сотая.

Ограничения

1 ≤ n ≤ 2000.

Длина animal_code составляет от 1 до 20 символов. Код состоит из строчных латинских букв, цифр и символа _.

0 ≤ actual_grams ≤ 50000.

planned_grams равно -1 либо является целым числом от 0 до 50000.

Гарантируется, что хотя бы в одной записи planned_grams не равно -1.

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

Куда дальше