Точность прогноза наблюдений птиц
Условие
В файле data.csv хранятся прогнозы модели для видов птиц, замеченных в городском парке. Для каждой птицы указана вероятность того, что её присутствие в наблюдении затем будет подтверждено специалистом.
В файле visits.csv хранятся отдельные посещения птиц. Одна птица может встретиться в нескольких строках этого файла. Требуется оставить птиц заданного вида, у которых число посещений не меньше заданного порога, отсортировать их по убыванию вероятности прогноза и вычислить точность среди первых k птиц.
Используется метрика precision@k. Если среди первых k птиц подтверждённое присутствие имеют c птиц, то precision@k = c / k. Поле confirmed равно 1, если присутствие подтверждено, и равно 0 иначе. При равенстве вероятностей раньше располагается птица с меньшим bird_id.
Гарантируется, что после фильтрации остаётся не менее k птиц. Во всех значимых столбцах пропусков нет.
Формат ввода
Рядом с программой находятся два файла в кодировке UTF-8 с разделителем-запятой.
Файл data.csv содержит от 300 до 4000 строк данных и заголовок:
bird_id,species,forecast_probability,confirmed
bird_id— целочисленный идентификатор птицы;species— название вида;forecast_probability— вероятность от0.000до1.000;confirmed— целое число0или1.
Файл visits.csv содержит от 300 до 4000 строк данных и заголовок:
visit_id,bird_id,visit_date
visit_id— целочисленный идентификатор посещения;bird_id— идентификатор птицы из файлаdata.csv;visit_date— дата наблюдения в форматеYYYY-MM-DD.
В стандартный ввод подаются три строки:
- в первой строке — значение
species; - во второй строке — минимальное число посещений
min_visits; - в третьей строке — число
k.
Формат вывода
Выведите значение precision@k с тремя знаками после точки.
Ограничения
- Число строк данных в каждом файле: от 300 до 4000.
1 <= bird_id <= 1000000.- Длина названия вида: от 3 до 20 символов английского алфавита.
0.000 <= forecast_probability <= 1.000.confirmedравно0или1.1 <= visit_id <= 10000000.- Дата имеет длину 10 символов и формат
YYYY-MM-DD. 1 <= min_visits <= 100.1 <= k <= 1000.- После отбора птиц указанного вида с не менее чем
min_visitsпосещениями их количество не меньшеk.
Решить задачу с автопроверкой на Python →
Куда дальше
- Python на олимпиадах — где языка хватает с запасом, а где начинают значить лимиты — с замерами
- БВИ по олимпиадам: в какие вузы берут — правила приёма вузов, разобранные построчно, со ссылкой на приказ у каждой строки
- Перечневые олимпиады: что это и что дают — весь перечень Минобрнауки: уровни, срок диплома, разрезы по предметам и классам