Ответ
MSE (Mean Squared Error, средняя квадратичная ошибка) и MAE (Mean Absolute Error, средняя абсолютная ошибка) — две основные метрики для задач регрессии, которые по-разному штрафуют ошибки модели.
MSE (Средняя квадратичная ошибка):
- Формула: (MSE = frac{1}{n}sum_{i=1}^{n}(y_i - hat{y}_i)^2)
- Свойства:
- Чувствительна к выбросам. Поскольку ошибки возводятся в квадрат, большие отклонения вносят непропорционально большой вклад в общую ошибку.
- Дифференцируема. Это ключевое свойство для использования в градиентных методах оптимизации (например, в градиентном спуске внутри нейронных сетей или линейной регрессии).
- Даёт оценку в квадратах единиц целевой переменной.
MAE (Средняя абсолютная ошибка):
- Формула: (MAE = frac{1}{n}sum_{i=1}^{n}|y_i - hat{y}_i|)
- Свойства:
- Робастна к выбросам. Штрафует ошибки линейно, поэтому выбросы не имеют такого сильного влияния, как в MSE.
- Не дифференцируема в точке 0. Это может создавать сложности при использовании в градиентной оптимизации, но на практике это часто обходят.
- Даёт оценку в тех же единицах, что и целевая переменная, что упрощает интерпретацию.
Практический пример и выбор:
from sklearn.metrics import mean_squared_error, mean_absolute_error
import numpy as np
# Данные с потенциальным выбросом
y_true = [100, 120, 95, 105, 1000] # Последнее значение — выброс
y_pred = [105, 115, 100, 100, 110]
mse = mean_squared_error(y_true, y_pred)
mae = mean_absolute_error(y_true, y_pred)
print(f'MSE: {mse:.2f}') # Очень большое значение из-за выброса
print(f'MAE: {mae:.2f}') # Значительно меньше подвержено влиянию выброса
- Используйте MSE, когда выбросы важны и являются частью закономерности, или когда вам критична дифференцируемость для обучения модели.
- Используйте MAE, когда данные содержат шумные выбросы, которые нужно игнорировать, или когда нужна легко интерпретируемая метрика в исходных единицах.