Проверка прогноза солнечной выработки

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

Условие

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

Базовый прогноз всегда выдаёт одно и то же значение: среднюю фактическую выработку по всем n строкам измерений. Если фактические выработки равны y_1, y_2, ..., y_n, то базовый прогноз равен c = (y_1 + y_2 + ... + y_n) / n.

В конце входа приведён запрос: несколько значений освещённости. Для проверки берутся только строки, чья освещённость совпадает хотя бы с одним значением запроса и где прогноз модели не пропущен. Для этих строк вычисляется средняя абсолютная ошибка MAE:

MAE = (|p_1 - y_1| + |p_2 - y_2| + ... + |p_m - y_m|) / m,

где y_i — фактическая выработка, а p_i — прогноз проверяемого способа. Для базового прогноза вместо каждого p_i используется число c.

Требуется определить, чей MAE на строках запроса меньше: модели или базового прогноза. В первой части ответа нужно вывести MODEL или BASELINE, затем через пробел вывести MAE выбранного способа.

Если значения MAE равны, нужно вывести BASELINE.

Формат ввода

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

В следующих n строках даны три значения: irradiance, actual, prediction — освещённость в Вт/м², фактическая выработка в Вт и прогноз модели в Вт. Вместо прогноза может стоять символ -.

В последней строке даны q целых чисел — значения освещённости из запроса.

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

Выведите слово MODEL или BASELINE, затем через пробел MAE выбранного способа с двумя знаками после десятичной точки.

Дробное значение MAE округляется до двух знаков после десятичной точки по обычному правилу: при ровно половине сотой округление производится в большую сторону.

Ограничения

1 ≤ n ≤ 2000.

1 ≤ q ≤ 50.

0 ≤ irradiance ≤ 1200.

0 ≤ actual ≤ 10000.

Если прогноз не пропущен, то 0 ≤ prediction ≤ 10000.

Все значения освещённости в последней строке находятся от 0 до 1200 включительно.

В запросе нет повторяющихся значений освещённости.

Гарантируется, что среди строк, подходящих под запрос, есть хотя бы одна строка с известным прогнозом модели.

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

Куда дальше