Меры качества классификации: accuracy, precision, recall, F1-score

Что такое матрица ошибок и зачем она нужна

Представьте, что вы врач 🩺 и пытаетесь определить, болен пациент или здоров. Ваш диагноз может быть четырёх типов:

  • ✅ Верно определить болезнь (True Positive)
  • ✅ Верно определить отсутствие болезни (True Negative)
  • ❌ Ошибочно диагностировать болезнь (False Positive)
  • ❌ Пропустить болезнь (False Negative)

Матрица ошибок — это таблица, которая показывает все эти четыре варианта. Давайте построим её на примере!

Предсказано: "Да" Предсказано: "Нет"
Факт: "Да" True Positive (TP) False Negative (FN)
Факт: "Нет" False Positive (FP) True Negative (TN)

🧠 Запомните: Positive/Negative — это предсказание модели, а True/False — насколько оно соответствует истине.

Accuracy (Точность) — общая доля верных ответов

Это самая простая метрика — сколько всего правильных предсказаний сделала модель.

Accuracy = (TP + TN) / (TP + TN + FP + FN)

Представьте, что из 100 пациентов мы правильно определили 90. Тогда:

Accuracy = 90 / 100 = 0.9 (или 90%)

Но у accuracy есть большая проблема! 😱 Если у нас 95 здоровых и 5 больных, и модель всегда говорит "здоров", то:

Accuracy = (95 + 0) / (95 + 0 + 5 + 0) = 95%

Кажется, что всё отлично, но мы пропустили всех больных! Поэтому нужны другие метрики.

📌 Accuracy хороша только при сбалансированных классах. В реальности часто встречаются перекошенные данные!

Precision (Точность) — сколько из предсказанных "да" действительно верны

Также называется "precision положительного класса". Это мера того, насколько мы можем доверять нашему положительному предсказанию.

Precision = TP / (TP + FP)

Пример: мы сказали "болен" 10 людям. Из них действительно больны 8. Тогда:

Precision = 8 / (8 + 2) = 0.8 (80%)

Высокий precision означает, что когда мы говорим "да", мы редко ошибаемся. 🎯

💡 Precision важна, когда ложные срабатывания (False Positive) дорого обходятся. Например, когда мы не хотим напрасно тревожить человека.

Recall (Полнота) — сколько реальных "да" мы нашли

Показывает, какую долю реально больных людей мы смогли обнаружить.

Recall = TP / (TP + FN)

Пример: всего больных 20 человек, мы нашли 15. Тогда:

Recall = 15 / (15 + 5) = 0.75 (75%)

Высокий recall означает, что мы пропускаем мало реальных случаев. 🔍

⚠️ Recall критически важен, когда пропуск реального случая (False Negative) опасен. Например, при диагностике тяжелых заболеваний.

F1-score — гармония между precision и recall

Часто precision и recall conflicting: улучшая один, ухудшаешь другой. F1-score — это гармоническое среднее, которое учитывает обе метрики.

F1 = 2 * (Precision * Recall) / (Precision + Recall)

F1-score достигает максимума только когда обе метрики высоки. 📊

Пример: precision = 0.8, recall = 0.75

F1 = 2 * (0.8 * 0.75) / (0.8 + 0.75) = 2 * 0.6 / 1.55 ≈ 0.774

🎯 F1-score — отличный выбор, когда нужно сбалансировать важность precision и recall!

Практические задачи

Задача 1: Диагностика заболевания

Модель предсказала заболевание у 50 пациентов. Из них действительно больны 40. Всего в данных было 60 больных людей.

Вычислите precision и recall.

Решение:

Дано: TP = 40, FP = 50 - 40 = 10, FN = 60 - 40 = 20

Precision = TP / (TP + FP) = 40 / (40 + 10) = 40/50 = 0.8 (80%)

Recall = TP / (TP + FN) = 40 / (40 + 20) = 40/60 ≈ 0.667 (66.7%)

Задача 2: Спам-фильтр

Фильтр пометил 100 писем как спам. Из них 90 действительно спам. Всего в почте было 120 спам-писем.

Вычислите precision, recall и F1-score.

Решение:

Дано: TP = 90, FP = 100 - 90 = 10, FN = 120 - 90 = 30

Precision = 90 / (90 + 10) = 90/100 = 0.9 (90%)

Recall = 90 / (90 + 30) = 90/120 = 0.75 (75%)

F1 = 2 * (0.9 * 0.75) / (0.9 + 0.75) = 2 * 0.675 / 1.65 ≈ 0.818

Как выбрать метрику для вашей задачи?

  • 🎯 Accuracy: когда классы сбалансированы и все ошибки одинаково важны
  • ⚠️ Precision: когда False Positive дорого обходится (например, ложная тревога)
  • 🔍 Recall: когда False Critical (например, пропуск заболевания)
  • ⚖️ F1-score: когда нужен баланс между precision и recall

🌟 Помните: не существует "универсальной лучшей метрики". Выбор зависит от конкретной задачи и стоимости ошибок!

Теперь вы знаете основные метрики качества классификации и понимаете, в каких ситуациях применять каждую из них. Практикуйтесь на реальных задачах, и эти знания станут вашим надежным инструментом! 🚀

Скрыть рекламу навсегда

🧠 Учёба без воды и зубрёжки

Закрытый Boosty с наработками опытного преподавателя.

Объясняю сложное так, чтобы щелкнуло.

🚀 Забрать доступ к Boosty