Что такое MAE?
Что проверяют
Не формулу, её знают все, а понимание, чем MAE отличается от MSE и RMSE по поведению и когда какую метрику брать. Частый следующий вопрос: какое предсказание минимизирует MAE и почему модель, обученная на MSE, может проигрывать по MAE.
Как отвечать
MAE (Mean Absolute Error) это среднее абсолютное отклонение прогноза от факта, в коде np.mean(np.abs(y_true-y_pred)) или готовая sklearn.metrics.mean_absolute_error. Дальше свойства:
- единицы: ошибка в тех же единицах, что и целевая переменная. MAE 350 рублей на прогнозе среднего чека понятна бизнесу без пересчёта;
- линейный штраф: ошибка в 10 весит ровно в 10 раз больше ошибки в 1, а в MSE в 100 раз. Поэтому MAE спокойнее относится к выбросам;
- оптимум: константа, минимизирующая MAE, это медиана, а для MSE это среднее. Модель на L1-лоссе оценивает условную медиану;
- связь с RMSE: всегда
RMSE >= MAE, и чем больше разрыв, тем сильнее разброс ошибок, то есть в данных есть редкие крупные промахи.
Для обучения градиентного бустинга есть L1-цель: в LightGBM objective="l1", в CatBoost loss_function="MAE". У модуля нет производной в нуле, а градиент постоянен по величине, поэтому оптимизация идёт хуже, чем с MSE. Компромисс между ними это Huber loss.
Сама по себе цифра MAE мало говорит: её сравнивают с базовой моделью (наивный прогноз «как вчера», медиана трейна). Для сравнения рядов разного масштаба берут MASE или MAPE, помня, что MAPE ломается на значениях около нуля.
Где спотыкаются
Говорят, что MAE устойчива к выбросам и потому всегда лучше. Если крупный промах дорого стоит бизнесу (недозаказ на складе, пропуск пиковой нагрузки), нужна как раз метрика, которая штрафует его сильнее.
Сравнивают MAE между задачами с разным масштабом цели. MAE 5 на ценах в тысячи и на ценах в десятки означает совершенно разное качество.
Путают метрику и функцию потерь: учат на MSE, отчитываются по MAE и удивляются расхождению. Если бизнес меряет MAE, логично обучать на L1 или хотя бы проверить медианную постановку.