Ответ
MAE (Средняя абсолютная ошибка) вычисляется как среднее абсолютных разностей между предсказаниями и истинными значениями:
MAE = (1/n) * Σ|y_true - y_pred|
Преимущества:
- Простая и интуитивная интерпретация: Ошибка выражена в тех же единицах, что и целевая переменная. Например, MAE=5 для прогноза цен означает среднюю ошибку в 5 долларов.
- Робастность к выбросам: Поскольку используется абсолютное значение, MAE менее чувствителен к редким большим ошибкам по сравнению с MSE (квадратичная ошибка). Это полезно в доменах с шумными данными.
- Оптимизация медианы: Минимизация MAE приводит к предсказанию медианы распределения целевой переменной, что может быть желательно при асимметричных распределениях.
Недостатки:
- Не дифференцируема в нуле: Функция модуля |x| не имеет производной в точке x=0, что может создавать проблемы для некоторых алгоритмов оптимизации, хотя на практике это редко является критичным (используются субградиенты).
- Не штрафует большие ошибки квадратично: Это может быть как плюсом (робастность), так и минусом, если крупные ошибки критически нежелательны для задачи.
- Менее популярна в теории: Многие статистические свойства и методы (например, разложение ошибки) проще выводятся для MSE.
Пример использования в Python:
import numpy as np
from sklearn.metrics import mean_absolute_error
# Пример данных
y_true = [12.5, 8.0, 10.2, 14.1, 9.7]
y_pred = [11.8, 8.5, 9.9, 15.0, 10.0]
mae_value = mean_absolute_error(y_true, y_pred)
print(f"MAE: {mae_value:.2f}") # Вывод: MAE: 0.62
# Ручной расчёт для понимания
errors = np.abs(np.array(y_true) - np.array(y_pred))
print(f"Абсолютные ошибки: {errors}") # [0.7, 0.5, 0.3, 0.9, 0.3]
print(f"Среднее: {np.mean(errors):.2f}") # 0.54
На практике MAE часто используется в задачах регрессии, где интерпретируемость и устойчивость к выбросам важнее, чем сильное наказание за крупные промахи.