Ошибки прогноза времени выдачи посылок
Условие
В файле data.csv приведены сведения о посылках, поступивших в пункты выдачи. Для каждой посылки записаны прогнозируемое и фактическое время до готовности к выдаче в часах.
Для указанного пункта выдачи рассматриваются первые k его посылок в порядке строк файла. Требуется вычислить две метрики качества прогноза: среднеквадратичную ошибку MSE и среднюю абсолютную ошибку MAE.
Если для посылки прогнозируемое время равно фактическому, ошибка этой строки считается равной нулю. При равенстве прогнозируемого и фактического времени никакой дополнительный выбор не выполняется.
Пусть для выбранных посылок p_i — прогнозируемое время, а a_i — фактическое время. Тогда
MSE = ((p_1 - a_1)^2 + (p_2 - a_2)^2 + ... + (p_k - a_k)^2) / k,
MAE = (|p_1 - a_1| + |p_2 - a_2| + ... + |p_k - a_k|) / k.
Формат ввода
В каталоге с программой находится файл data.csv в кодировке UTF-8. Разделитель — запятая, первая строка содержит заголовки. В файле записаны столбцы:
parcel_id— идентификатор посылки;pickup_point— название пункта выдачи;forecast_hours— прогнозируемое время до готовности, целое число часов;actual_hours— фактическое время до готовности, целое число часов.
В первой строке стандартного ввода задано название пункта выдачи pickup_point.
Во второй строке задано целое число k.
Формат вывода
Выведите через пробел значения MSE и MAE именно в этом порядке.
Каждое значение необходимо округлить до трёх знаков после десятичной точки: выбирается ближайшее значение, а при ровно одинаковой близости последнее сохраняемое число должно быть чётным.
Ограничения
В файле от 300 до 1000 строк с данными.
Длина parcel_id составляет от 5 до 20 символов. Длина названия пункта выдачи составляет от 4 до 20 символов.
forecast_hours и actual_hours — целые числа от 1 до 120.
Название пункта выдачи во входе встречается в файле. Для него в файле есть не менее k строк.
1 ≤ k ≤ 1000.
Решить задачу с автопроверкой на Python →
Куда дальше
- С нуля до олимпиады: маршрут — сколько занимает язык, какие приёмы нужны и к какому этапу это ведёт
- Олимпиада по информатике: с чего начать — два мира олимпиад — ВсОШ и перечневые: этапы, задания и на каком языке писать
- На программиста по олимпиаде: путь по классам — что даёт диплом, куда с ним берут на ИТ-направления и почему решает 9 класс