Метрики качества
Функционал ошибки
\[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|\]
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}\]
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]\]
Матрица ошибок (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-кривой. Интерпретируется как доля инверсий: вероятность того, что случайный положительный объект получит более высокий скор, чем случайный отрицательный.