Теория вероятности

Метрики моделей и основы машинного обучения

Задачи про модели машинного обучения: «какой датчик выбрать для склада» или «что важнее для спам-фильтра».

Матрица ошибок

Модель сказала «да»Модель сказала «нет»
На самом деле «да»TP — верно нашлиFN — пропустили
На самом деле «нет»FP — ложная тревогаTN — верно отклонили

Основные метрики

Accuracy = (TP + TN) / всего — доля верных ответов Precision = TP / (TP + FP) — из того, что модель назвала «да», сколько правда «да» Recall = TP / (TP + FN) — из настоящих «да», сколько модель нашла F1 = 2·P·R / (P + R) — среднее гармоническое precision и recall FPR = FP / (FP + TN) — доля «нет», ошибочно названных «да»

Пример

TP = 80, FP = 20, FN = 40, TN = 860. Accuracy = 940/1000 = 0,94. Precision = 80/100 = 0,80. Recall = 80/120 ≈ 0,67. F1 = 2·0,8·0,67/(0,8 + 0,67) ≈ 0,73.

Что важнее: precision или recall

СитуацияЧто дорожеСмотрим на
Датчик дыма, поиск брака на конвейерепропустить (FN)recall
Проверка багажа в аэропортупропустить опасный предмет (FN)recall
Спам-фильтр для рабочей почты, автоматический отказ в заявкепоказать лишнее или заблокировать нужное (FP)precision
Обе ошибки важны примерно одинаково—F1

Выбор по цене ошибок

Если дано, во что обходится каждая ошибка, посчитайте общие потери и выберите минимум. Пример: ложная тревога стоит 1 тыс. ₽, пропуск — 3 тыс. ₽. Модель A: FP = 50, FN = 30 → 50 + 90 = 140 тыс. ₽. Модель B: FP = 120, FN = 10 → 120 + 30 = 150 тыс. ₽. Выбираем A, хотя у B выше recall.

Несбалансированные классы

Если болеет 1% людей, модель «все здоровы» даёт accuracy 99% и не находит ни одного больного (recall = 0). Поэтому при редком классе accuracy почти бесполезна: смотрят на precision, recall и F1.

У большинства моделей есть порог: при какой вероятности говорить «да». Если порог понизить, recall вырастет, а precision обычно упадёт. Если повысить — наоборот.

Метрики для регрессии

MAE = среднее |y − ŷ| — средняя ошибка в единицах y MSE = среднее (y − ŷ)² RMSE = √MSE — сильнее штрафует большие ошибки MAPE = среднее |y − ŷ| / |y| — ошибка в процентах

Обучение и проверка модели

  • Train / test. Модель обучают на одной части данных, а качество проверяют на другой, которую она не видела.
  • Переобучение — на обучающей выборке ошибка маленькая, на тестовой большая. Модель запомнила шум.
  • Утечка данных — среди признаков есть информация, недоступная в момент прогноза. Например, «фактическое время прибытия» при прогнозе опоздания поезда. Качество на тесте тогда завышено.
  • Признаки должны быть известны заранее и иметь смысловую связь с целью.

Похожие объекты и расстояния

Чтобы найти «самую похожую квартиру» (метод ближайших соседей), считают расстояние между векторами признаков:

Манхэттенское: |x₁ − y₁| + |x₂ − y₂| + … Евклидово: √((x₁ − y₁)² + (x₂ − y₂)² + …)
  • Перед этим признаки стандартизируют, иначе всё решает признак с самыми большими числами.
  • Один и тот же объект может оказаться ближайшим для многих. А какие-то объекты могут не оказаться ближайшими ни для кого.

Ещё примеры

Камера на конвейере нашла 90 из 100 бракованных деталей и ещё 900 хороших отбраковала зря. Посчитайте precision и recall.

Recall = 90/100 = 0,9. Precision = 90/(90 + 900) ≈ 0,09.

Почему accuracy 99,5% может быть плохим результатом?

Если положительный класс встречается в 0,5% случаев, такую accuracy даёт модель, которая всегда отвечает «нет».