Что такое MSE (среднеквадратическая ошибка)?

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

Ответ

MSE (Mean Squared Error, среднеквадратическая ошибка) — это одна из наиболее распространенных метрик регрессии и функций потерь. Она вычисляет среднее значение квадратов разностей между предсказанными моделью значениями (ŷ) и фактическими значениями (y).

Формула: $$ MSE = frac{1}{n} sum_{i=1}^{n} (y_i - hat{y}_i)^2 $$ где n — количество наблюдений.

Ключевые свойства:

  • Чувствительность к выбросам: Из-за возведения в квадрат большие ошибки вносят непропорционально большой вклад в общее значение MSE. Это может быть как недостатком (если выбросы — шум), так и преимуществом (если важно минимизировать крупные ошибки).
  • Дифференцируемость: Функция гладкая и дифференцируемая, что делает ее удобной для использования в градиентных методах оптимизации (например, в градиентном спуске).
  • Единицы измерения: MSE измеряется в квадратах единиц целевой переменной, что затрудняет прямую интерпретацию. Для возврата к исходной шкале часто используют RMSE (Root MSE) — корень квадратный из MSE.

Пример расчета с использованием scikit-learn:

from sklearn.metrics import mean_squared_error

y_true = [3.0, -0.5, 2.0, 7.0]
y_pred = [2.5, 0.0, 2.0, 8.0]  # Предсказания модели

mse = mean_squared_error(y_true, y_pred)
print(f"MSE: {mse:.4f}")  # Вывод: MSE: 0.3750
print(f"RMSE: {mse**0.5:.4f}")  # Вывод: RMSE: 0.6124