Метрики регрессии
Что такое MAE, MSE, RMSE и R^2?
MAE (Mean Absolute Error) - средняя абсолютная ошибка. Она показывает среднее абсолютное отклонение предсказанных значений от фактических.
MAE легко интерпретировать, так как она измеряется в тех же единицах, что и целевая переменная.
MSE (Mean Squared Error) - средняя квадратичная ошибка. MSE возводит в квадрат разницу между предсказанными и фактическими значениями, а затем усредняет результат. Из-за возведения в квадрат MSE сильнее штрафует большие ошибки.
RMSE (Root Mean Squared Error) - корень из средней квадратичной ошибки. RMSE является квадратным корнем из MSE. Интерпретировать RMSE проще, чем MSE, так как RMSE измеряется в тех же единицах, что и целевая переменная
R^2 (R-квадрат) - коэффициент детерминации. Он показывает долю дисперсии целевой переменной, которая может быть объяснена признаками модели. R^2 принимает значения от 0 до 1, где 1 означает идеальное соответствие модели данным.
Когда использовать MAE, MSE, RMSE или R^2?
- MAE лучше использовать, когда выбросы не так критичны, так как MAE менее чувствительна к ним, чем MSE и RMSE.
- MSE и RMSE хорошо подходят, когда нужно сильнее штрафовать большие ошибки. Но интерпретировать их сложнее из-за возведения в квадрат.
- R^2 удобно использовать для сравнения моделей между собой. Чем ближе R^2 к 1, тем лучше модель соответствует данным. Но при этом R^2 не говорит о величине ошибки.
Примеры расчета метрик на Python
Допустим, у нас есть массивы y_true (фактические значения) и y_pred (предсказанные значения). Вот как можно посчитать метрики:
from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
mae = mean_absolute_error(y_true, y_pred)
mse = mean_squared_error(y_true, y_pred)
rmse = mean_squared_error(y_true, y_pred, squared=False)
r2 = r2_score(y_true, y_pred)
Здесь мы импортируем нужные функции из модуля sklearn.metrics и передаем в них фактические и предсказанные значения. Для расчета RMSE используем параметр squared=False.
Надеюсь, теперь тебе стало понятнее, что представляют собой метрики регрессии MAE, MSE, RMSE и R^2, в чем их особенности и как их можно вычислить на Python. Если остались вопросы - спрашивайте!