На что бы вы опирались при выборе между метриками ME (Mean Error) и MSE (Mean Squared Error)?

«На что бы вы опирались при выборе между метриками ME (Mean Error) и MSE (Mean Squared Error)?» — вопрос из категории Метрики и функции потерь, который задают на 26% собеседований Data Scientist / ML Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Выбор между ME (средняя ошибка) и MSE (среднеквадратичная ошибка) зависит от целей анализа ошибок модели регрессии.

Сравнение метрик: Критерий ME (Mean Error) MSE (Mean Squared Error)
Формула mean(y_pred - y_true) mean((y_true - y_pred)^2)
Чувствительность к знаку Сохраняет знак, положительные и отрицательные ошибки компенсируют друг друга. Игнорирует знак, все ошибки положительные.
Чувствительность к выбросам Низкая. Один большой выброс мало повлияет на среднее. Высокая. Квадрат сильно увеличивает вклад больших ошибок.
Интерпретация Показывает систематическое смещение (bias) модели. ME ≈ 0 не означает отсутствие ошибок. Показывает среднюю величину квадратов ошибок. Не имеет той же размерности, что и целевая переменная.

Практический пример и выбор:

import numpy as np
from sklearn.metrics import mean_squared_error

y_true = [100, 150, 200, 250, 300]
y_pred = [105, 145, 195, 260, 290] # Модель слегка завышает и занижает предсказания

me = np.mean(np.array(y_pred) - np.array(y_true))
mse = mean_squared_error(y_true, y_pred)

print(f"ME: {me:.2f}")   # Вывод: ME: -1.00 (небольшое систематическое занижение)
print(f"MSE: {mse:.2f}") # Вывод: MSE: 51.00
  • Выбрал бы MSE, если задача — минимизировать крупные ошибки, которые критически нежелательны (например, ошибка в прогнозе спроса на 1000 единиц хуже, чем десять ошибок по 100). MSE — стандартная дифференцируемая функция потерь для обучения моделей.
  • ME (или чаще MAE — Mean Absolute Error) использовал бы для анализа смещения модели или в задачах, где все ошибки одинаково важны, и выбросы не должны доминировать в оценке. Однако ME редко используется как основная метрика из-за свойства компенсации.