🔴 Сложный ⏱️ 25 минут

Метрики качества в машинном обучении

Метрики качества в машинном обучении

🎯 Зачем это нужно?

Представь, что ты разрабатываешь систему распознавания лиц для разблокировки телефона 📱. Как понять, насколько хорошо работает твоя модель? Пустить в продакшн и ждать жалоб пользователей? 😅

Или возьмём Netflix - как они понимают, что их рекомендательная система стала лучше? По количеству досмотренных фильмов? По времени в приложении? А может по оценкам фильмов?

Вот для этого и нужны метрики качества! Они как спидометр в машине - показывают, едешь ли ты в правильном направлении и с нужной скоростью.

📚 История вопроса

Забавно, но многие метрики пришли не из ML! Precision и Recall изначально использовались в библиотечном деле 📚 для оценки качества поисковых систем в 1950х. А ROC-кривые придумали во время Второй мировой для анализа радарных сигналов - как отличить вражеский самолёт от стаи птиц? 🛩️

💡 Интуиция

Метрики качества = способ честно оценить работу модели

Это как оценки в школе, только намного сложнее! В школе есть одна оценка по предмету. А в ML нужно оценивать модель с разных сторон:

🎯 Accuracy (Точность) - “Сколько ответов правильных из всех?” 🔍 Precision (Правильность) - “Когда модель сказала ‘ДА’, сколько раз она была права?” 🎣 Recall (Полнота) - “Сколько истинных ‘ДА’ модель смогла найти?”

[МЕДИА: image_01] Описание: Диаграмма с аналогией стрельбы в тир, показывающая разницу между точностью и полнотой Промпт: “educational illustration showing archery target analogy for precision and recall concepts, arrows hitting different areas, colorful diagram, modern infographic style, white background”

📐 Формальное определение

Матрица ошибок (Confusion Matrix)

Основа всех классификационных метрик:

              Предсказано
Реальность   |  1  |  0  |
-------------|-----|-----|
     1       | TP  | FN  |
     0       | FP  | TN  |
  • TP (True Positive) - правильно предсказали 1
  • TN (True Negative) - правильно предсказали 0
  • FP (False Positive) - ошибочно предсказали 1 (Ошибка I рода)
  • FN (False Negative) - ошибочно предсказали 0 (Ошибка II рода)

Основные метрики классификации

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

  • “Доля правильных ответов”

Precision = TP / (TP + FP)

  • “Из всех положительных предсказаний, сколько правильных?”

Recall = TP / (TP + FN)

  • “Из всех положительных объектов, сколько мы нашли?”

F₁-score = 2 × (Precision × Recall) / (Precision + Recall)

  • “Гармоническое среднее между Precision и Recall”

🔍 Примеры с разбором

Пример 1: Диагностика COVID-19

У нас есть модель для диагностики COVID по симптомам. Протестировали на 1000 человек:

           Предсказано
Болен?   | Болен | Здоров |
---------|-------|--------|
Болен    |  85   |   15   | ← 100 больных
Здоров   |  10   |  890   | ← 900 здоровых

Считаем метрики:

  • Accuracy = (85 + 890) / 1000 = 97.5%
  • Precision = 85 / (85 + 10) = 89.5%
  • Recall = 85 / (85 + 15) = 85%
  • F₁ = 2 × (0.895 × 0.85) / (0.895 + 0.85) = 87.2%

[МЕДИА: image_02] Описание: Визуализация confusion matrix для примера с COVID, с цветовой кодировкой Промпт: “confusion matrix visualization for COVID diagnosis example, color-coded cells, clear numbers and labels, medical theme, professional infographic style”

Что это значит?

  • Модель правильна в 97.5% случаев (высокая Accuracy)
  • Но из тех, кого модель считает больными, только 89.5% действительно больны
  • И модель находит только 85% реально больных людей

Пример 2: Рекомендации YouTube

YouTube тестирует новый алгоритм рекомендаций. Показали 1000 видео разным пользователям:

           Предсказано
Посмотрел?| Да  | Нет |
----------|-----|-----|
   Да     | 180 |  70 | ← 250 посмотрели
   Нет    | 120 | 630 | ← 750 не посмотрели
  • Accuracy = (180 + 630) / 1000 = 81%
  • Precision = 180 / (180 + 120) = 60%
  • Recall = 180 / (180 + 70) = 72%

Метрики регрессии

Для задач предсказания чисел (цена квартиры, температура) используем другие метрики:

MSE (Mean Squared Error) = (1/n) × Σ(yᵢ - ŷᵢ)² MAE (Mean Absolute Error) = (1/n) × Σ|yᵢ - ŷᵢ| (Коэффициент детерминации) = 1 - MSE/Var(y)

🎮 Практика

Базовый уровень 🟢

Задание 1: Антиспам фильтр проверил 500 писем. Результаты:

  • Правильно определил 45 спам-писем из 50
  • Правильно определил 430 обычных писем из 450
  • Ошибочно пометил как спам 20 обычных писем

Найди Accuracy, Precision и Recall.

Задание 2: У модели предсказания погоды MSE = 4. Что это значит в градусах Цельсия?

Задание 3: Модель A имеет Precision=0.9, Recall=0.6. Модель B: Precision=0.7, Recall=0.8. Какая лучше для поиска редких заболеваний?

Продвинутый уровень 🟡

Задание 4: Банк использует ML для одобрения кредитов. За месяц:

  • Одобрили 200 кредитов, из них 180 будут возвращены
  • Отклонили 800 заявок, из них 50 были от надёжных клиентов

Построй confusion matrix и найди все метрики.

Задание 5: Две модели предсказания цен акций:

  • Модель A: MAE=5$, MSE=100
  • Модель B: MAE=8$, MSE=80

Какая модель лучше и почему?

Задание 6: Система распознавания лиц в аэропорту должна найти всех террористов (высокий Recall) и не задерживать обычных пассажиров. Как настроить порог модели?

Челлендж 🔴

Задание 7: У тебя несбалансированный датасет: 950 отрицательных примеров, 50 положительных. Модель всегда предсказывает “отрицательный”. Какая будет Accuracy? Почему эта метрика плохая для таких данных?

Задание 8: Создай свою метрику для оценки качества рекомендательной системы TikTok. Учти: время просмотра, лайки, репосты, досмотр до конца.

Задание 9: ROC-AUC модели равна 0.85. Модель предсказывает вероятности заболевания. При каком пороге достигается максимальный F₁-score, если данные сбалансированы 50/50?

⚠️ Частые ошибки

Ошибка: Используют только Accuracy для всех задач ✅ Правильно: Выбирают метрику под задачу бизнеса
💡 Почему: Accuracy не показывает проблемы с несбалансированными классами

Ошибка: Максимизируют Precision, игнорируя Recall ✅ Правильно: Находят баланс через F₁ или F₂ score 💡 Почему: В медицине пропустить болезнь хуже ложной тревоги

Ошибка: Сравнивают MSE моделей с разными единицами измерения ✅ Правильно: Нормализуют метрики или используют MAPE 💡 Почему: MSE=100 для температуры ≠ MSE=100 для цены квартиры

Ошибка: Считают метрики на тренировочной выборке ✅ Правильно: Используют валидационную или тестовую выборку 💡 Почему: Иначе получаем переобучение и завышенные оценки

Ошибка: Думают, что R²=0.7 означает “70% точность” ✅ Правильно: R²=0.7 значит “объясняем 70% дисперсии” 💡 Почему: R² измеряет качество объяснения, а не точность предсказаний

🎓 Главное запомнить

✅ Выбор метрики зависит от бизнес-задачи, а не от удобства ✅ Для медицины важен Recall, для рекламы - Precision
✅ Несбалансированные данные убивают Accuracy ✅ MSE штрафует большие ошибки сильнее MAE ✅ Всегда оценивай метрики на тестовой выборке

🔗 Связь с другими темами

Откуда пришли: Основы классификации (урок 306), теория вероятности Куда ведут: Выбор модели и гиперпараметров, интерпретация моделей, A/B тестирование Используется в: Всех задачах ML - от компьютерного зрения до NLP

Понял тему? Закрепи в боте! 🚀

Попрактикуйся на задачах и получи персональные рекомендации от AI

💪 Начать тренировку
💬 Есть вопрос? Спроси бота!