Метрики качества в машинном обучении
🎯 Зачем это нужно?
Представь, что ты разрабатываешь систему распознавания лиц для разблокировки телефона 📱. Как понять, насколько хорошо работает твоя модель? Пустить в продакшн и ждать жалоб пользователей? 😅
Или возьмём 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ᵢ - ŷᵢ| R² (Коэффициент детерминации) = 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
💪 Начать тренировку