Precision, recall и F1
Содержание курса
F1-score: гармоническое среднее и чувствительность к дисбалансу метрик
Precision и recall нередко движутся в противоположных направлениях: модель, которая предсказывает «1» очень часто, как правило, охватывает больше реальных положительных (recall растёт), но при этом может генерировать много ложных тревог (precision падает). Осторожная модель, срабатывающая редко, может давать меньше ложных тревог — но пропускать больше реальных положительных. Это типичный сценарий, а не гарантированное свойство: фактическое соотношение precision и recall зависит от состава данных и качества модели, и его нужно измерять, а не предсказывать интуитивно.
Нужна одна цифра, которая штрафует оба крайних случая — и провал precision, и провал recall.
F1 — это гармоническое среднее двух метрик:
F1 = 2 * (precision * recall) / (precision + recall)
Почему именно гармоническое, а не арифметическое? Арифметическое среднее (p + r) / 2 нечувствительно к провалу одной из составляющих. Например, precision = 0.9, recall = 0.1 дают арифметическое среднее 0.5 — звучит терпимо. F1 при тех же числах:
F1 = 2 * 0.9 * 0.1 / (0.9 + 0.1) = 0.18 / 1.0 = 0.18
0.18 против 0.5 — разница почти в три раза. Гармоническое среднее всегда не превышает арифметического, и разрыв тем больше, чем сильнее расходятся слагаемые. Это математическое свойство, а не дизайнерское решение.
Граничные случаи:
- F1 = 1 достигается тогда и только тогда, когда precision = 1 и recall = 1 одновременно, то есть TP = все реальные положительные и FP = FN = 0.
- F1 = 0 наступает, если хотя бы одна из двух метрик равна нулю — модель либо ни разу не предсказала «1» (TP + FP = 0, precision неопределена и считается 0), либо не нашла ни одного реального положительного (TP = 0, recall = 0).
Ещё один числовой пример для интуиции: precision = 0.6, recall = 0.6. Арифметическое среднее = 0.6, F1 тоже = 0.6. Как только метрики расходятся — precision = 0.8, recall = 0.4 — арифметическое среднее остаётся 0.6, а F1 падает до 2 * 0.8 * 0.4 / 1.2 ≈ 0.533. F1 «замечает» асимметрию, арифметическое среднее — нет.
