Ошибка прогноза числа ходов
Условие
В файле data.csv приведена статистика партий шахматного турнира. Каждая строка соответствует одной партии и содержит имя игрока, фактическое число ходов в партии и прогноз этого числа, сделанный моделью до начала партии.
Требуется вычислить среднюю абсолютную процентную ошибку прогноза, MAPE, для игрока, указанного во входных данных. В расчёт входят только строки, где известен прогноз и фактическое число ходов строго больше нуля. Строки с пропуском фактического числа ходов, пропуском прогноза или фактическим числом ходов, равным нулю, пропускаются.
Если для игрока осталось m учитываемых строк, а в них фактические значения равны y_i, прогнозы равны p_i, то вычисляется
MAPE = (100 / m) * Σ(|y_i - p_i| / y_i).
Если несколько строк имеют одинаковые значения, каждая такая строка учитывается отдельно. Гарантируется, что после пропуска неподходящих строк для указанного игрока остаётся хотя бы одна строка.
Формат ввода
В текущей папке находится файл data.csv в кодировке UTF-8. Разделитель в файле — запятая, первая строка содержит заголовки:
player,actual_moves,predicted_moves
В столбце player записано имя игрока. В столбцах actual_moves и predicted_moves записано целое число либо пустая строка, обозначающая пропуск.
Стандартный ввод содержит одну строку с именем игрока, для которого требуется найти MAPE.
Формат вывода
Выведите значение MAPE в процентах с двумя знаками после точки.
Округление выполняется до ближайшего числа с двумя знаками после точки. Если следующая цифра равна 5 и далее нет значащих цифр, округление выполняется в большую сторону.
Ограничения
В файле от 300 до 2000 строк с данными.
Длина имени игрока — от 4 до 7 символов. Имя во входных данных совпадает с именем хотя бы одной строки файла.
Если значение в actual_moves не пропущено, оно является целым числом от 0 до 120. Если значение в predicted_moves не пропущено, оно является целым числом от 0 до 130.
Количество строк, участвующих в вычислении MAPE, не меньше 1.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- С нуля до олимпиады: маршрут — сколько занимает язык, какие приёмы нужны и к какому этапу это ведёт
- Python на олимпиадах — где языка хватает с запасом, а где начинают значить лимиты — с замерами