Чувствительность прогноза спроса
Условие
В файле data.csv приведены продажи киоска с мороженым. Для каждой операции указаны прогноз модели о высоком спросе и фактический результат.
Модель предсказывает высокий спрос, если значение forecast_score не меньше заданного порога. Фактический высокий спрос обозначается значением actual_high_demand, равным 1.
Требуется вычислить чувствительность и специфичность прогноза. Чувствительность равна TP / (TP + FN), где TP — число операций с фактическим высоким спросом, для которых модель предсказала высокий спрос, а FN — число операций с фактическим высоким спросом, для которых модель не предсказала высокий спрос. Специфичность равна TN / (TN + FP), где TN — число операций без фактического высокого спроса, для которых модель не предсказала высокий спрос, а FP — число операций без фактического высокого спроса, для которых модель предсказала высокий спрос.
Строки с пустым значением forecast_score не учитываются ни в одной из четырёх величин. В файле гарантируется, что после исключения таких строк имеются операции обоих фактических классов, поэтому деления на ноль не происходит. При равенстве forecast_score и порога модель предсказывает высокий спрос.
Формат ввода
В первой и единственной строке stdin задано целое число threshold — порог прогноза.
Рядом с программой находится файл data.csv в кодировке UTF-8 с разделителем-запятой и заголовком. В нём содержатся столбцы transaction_id, sale_date, forecast_score, actual_high_demand, receipt_rub. Пустое значение допускается только в столбце forecast_score.
Формат вывода
Выведите в первой строке чувствительность, во второй строке специфичность.
Каждое число выводится ровно с четырьмя знаками после десятичной точки.
Ограничения
В файле от 300 до 2000 строк с данными.
1 <= transaction_id <= 2000.
sale_date имеет длину 10 символов и записана в формате YYYY-MM-DD.
forecast_score — целое число от 0 до 100 либо пустая строка.
actual_high_demand равно 0 или 1.
45.00 <= receipt_rub <= 900.00.
0 <= threshold <= 100.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- БВИ по олимпиадам: в какие вузы берут — правила приёма вузов, разобранные построчно, со ссылкой на приказ у каждой строки
- Перечневые олимпиады: что это и что дают — весь перечень Минобрнауки: уровни, срок диплома, разрезы по предметам и классам