Точность прогноза наблюдений птиц

тема: Метрики классификации · уровень: продвинутый

Условие

В файле 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

Файл visits.csv содержит от 300 до 4000 строк данных и заголовок:

visit_id,bird_id,visit_date

В стандартный ввод подаются три строки:

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

Выведите значение precision@k с тремя знаками после точки.

Ограничения

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

Куда дальше