Ответ
F1-Score — это метрика для оценки бинарной классификации, которая объединяет Precision (точность) и Recall (полноту) в одно число. Это гармоническое среднее, которое особенно полезно при работе с несбалансированными классами, где accuracy может вводить в заблуждение.
Формула:
F1 = 2 * (Precision * Recall) / (Precision + Recall)
Почему это важно?
- Баланс: F1 не позволяет жертвовать одним показателем (например, Recall) ради другого (Precision).
- Несбалансированные данные: Если у вас 95% объектов одного класса и 5% другого, модель, всегда предсказывающая мажоритарный класс, будет иметь accuracy 95%, но F1-Score для миноритарного класса будет 0.
Пример расчета в Python:
from sklearn.metrics import f1_score
y_true = [0, 1, 1, 0, 1, 1, 0] # Фактические метки
# Модель пропустила один положительный случай (второй) и сделала одну ложную тревогу (последний)
y_pred = [0, 0, 1, 0, 1, 1, 1]
score = f1_score(y_true, y_pred)
print(f"F1-Score: {score:.4f}") # Output: F1-Score: 0.6667
Варианты для многоклассовой классификации:
macro: Усредняет F1 для каждого класса без учета дисбаланса.micro: Глобально подсчитывает TP, FP, FN и вычисляет общий F1.weighted: Усредняет F1 по классам с весом, равным поддержке класса (количеству истинных экземпляров).