Метрики качества

Функционал ошибки

\[Q(a, L, \mathbb{X}) = \frac{1}{\ell} \sum_{i=1}^\ell L(y_i, a(x_i))\]

где \(Q\) — функционал ошибки, \(L\) — функция потерь на одном объекте.

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

MSE и RMSE

\[L(y, z) = (y - z)^2\]

MSE плохо интерпретируется (единицы измерения в квадрате), поэтому чаще используют RMSE:

\[\text{RMSE}(a, \mathbb{X}) = \sqrt{\frac{1}{\ell} \sum_{i=1}^\ell (y_i - a(x_i))^2}\]

Оптимальная константная модель для MSE: \(\bar{y}\).

Коэффициент детерминации \(R^2\)

Не всегда понятно, хорошая ли ошибка в абсолютных числах. \(R^2\) нормирует ошибку относительно константной модели:

\[R^2 = 1 - \frac{\sum_{i=1}^\ell (a(x_i) - y_i)^2}{\sum_{i=1}^\ell (\bar{y} - y_i)^2}\]

  • \(a(x_i) = y_i \implies R^2 = 1\) — идеальная модель.
  • \(a(x_i) = \bar{y} \implies R^2 = 0\) — модель не лучше константы.
  • Для разумных моделей: \(0 \leq R^2 \leq 1\).

MAE

\[\text{MAE} = \frac{1}{\ell} \sum_{i=1}^\ell |a(x_i) - y_i|\]

MAE устойчивее к выбросам, чем MSE: выброс влияет линейно, а не квадратично.

Huber Loss

Компромисс между MSE и MAE: ведёт себя как MSE вблизи нуля и как MAE на больших ошибках:

\[L_\delta(y, z) = \begin{cases} \frac{1}{2}(y-z)^2, & |y-z| < \delta \\ \delta\left(|y-z| - \frac{1}{2}\delta\right), & |y-z| \geq \delta \end{cases}\]

Проблема Huber Loss: нет второй производной в точке перехода \(|y-z| = \delta\).

Log-Cosh

\[L(y, z) = \log \cosh(y - z)\]

Гладкий аналог Huber Loss — дважды дифференцируема везде.

MSLE

Используется когда ошибка различается на несколько порядков:

\[L(y, z) = (\log(z+1) - \log(y+1))^2\]

MAPE и SMAPE

\[\text{MAPE} = \frac{1}{\ell} \sum \left|\frac{y_i - a(x_i)}{y_i}\right|\]

Плюсы Минусы
Хорошая интерпретируемость Не симметрична
Работает при разных масштабах Не определена при \(y_i = 0\)

Симметричный вариант — SMAPE:

\[L(y, z) = \frac{|y - z|}{\frac{|y| + |z|}{2}}\]

Метрики классификации

Accuracy

\[\text{accuracy} = \frac{1}{\ell} \sum [a(x_i) = y_i]\]

При дисбалансе классов accuracy вводит в заблуждение. Модель, всегда предсказывающая мажоритарный класс, даёт высокую accuracy. Всегда смотрите на баланс классов вместе с accuracy.

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

\(y = +1\) \(y = -1\)
\(a(x) = +1\) TP FP
\(a(x) = -1\) FN TN

Precision и Recall

\[\text{precision} = \frac{TP}{TP + FP}\] — насколько доверять модели, когда она говорит \(+1\).

\[\text{recall} = \frac{TP}{TP + FN}\] — насколько модель покрывает положительный класс.

F1-Score

Среднее арифметическое и минимум плохо агрегируют precision и recall. Стандарт — среднее гармоническое:

\[F_1 = 2 \cdot \frac{\text{precision} \cdot \text{recall}}{\text{precision} + \text{recall}}\]

Обобщённый \(F_\alpha\) позволяет смещать баланс в сторону precision или recall:

\[F_\alpha = \frac{(1 + \alpha^2) \cdot \text{precision} \cdot \text{recall}}{\alpha^2 \cdot \text{precision} + \text{recall}}\]

Lift

\[\text{Lift} = \frac{\text{precision}}{\frac{TP + FP}{\ell}}\]

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

ROC-кривая и AUC-ROC

Модель выдаёт уверенность \(b(x)\), финальное предсказание: \(a(x) = \text{sign}(b(x) - t)\). Перебираем все пороги \(t\) и строим кривую:

  • \(\text{FPR} = \frac{FP}{FP + TN}\) — доля ложных срабатываний.
  • \(\text{TPR} = \frac{TP}{TP + FN}\) — доля верно найденных положительных.

AUC-ROC — площадь под ROC-кривой. Интерпретируется как доля инверсий: вероятность того, что случайный положительный объект получит более высокий скор, чем случайный отрицательный.

AUC-ROC может вводить в заблуждение при сильном дисбалансе классов: добавление простых отрицательных примеров улучшает метрику, хотя модель не становится лучше. В таких случаях используют PR-кривую (Precision-Recall), которая лучше учитывает баланс классов.
← Назад к списку тем