Ответ
Выбор метрики зависит от цели модели и природы ошибок. Вот ключевые метрики с их применением:
-
MAE (Mean Absolute Error) / L1-норма:
- Формула: (MAE = frac{1}{n}sum|y_i - hat{y}_i|)
- Когда использовать: Когда все ошибки одинаково важны. Робастна к выбросам. Интерпретируема в единицах целевой переменной.
from sklearn.metrics import mean_absolute_error mae = mean_absolute_error(y_true, y_pred)
-
MSE (Mean Squared Error) / L2-норма и RMSE (Root MSE):
- Формула: (MSE = frac{1}{n}sum(y_i - hat{y}_i)^2), (RMSE = sqrt{MSE})
- Когда использовать: Когда большие ошибки недопустимы и должны штрафоваться сильнее (например, прогнозирование спроса). RMSE имеет ту же размерность, что и целевая переменная.
from sklearn.metrics import mean_squared_error mse = mean_squared_error(y_true, y_pred) rmse = np.sqrt(mse)
-
R² (Коэффициент детерминации):
- Формула: (R^2 = 1 - frac{SS{res}}{SS{tot}}), где (SS{res}) — сумма квадратов остатков, (SS{tot}) — общая сумма квадратов.
- Когда использовать: Для сравнения моделей на одном наборе данных. Показывает, какую долю дисперсии целевой переменной объясняет модель. Может быть отрицательным для плохих моделей.
-
MAPE (Mean Absolute Percentage Error):
- Когда использовать: Для бизнес-отчетности, где ошибку нужно выражать в процентах. Нестабилен при значениях, близких к нулю.
-
MSLE (Mean Squared Logarithmic Error):
- Когда использовать: Когда целевая переменная имеет большой диапазон (например, прогнозирование цен), и мы хотим одинаково учитывать относительные ошибки для малых и больших значений.
На практике я часто отслеживаю несколько метрик: например, RMSE как основную и R² для сравнения с бейзлайном.
Ответ 18+ 🔞
Слушай, ну вот объясняю, как в баре после третьей кружки. Выбор метрики — это как выбрать, чем мерить свой успех: в сантиметрах, в килограммах или в количестве выпитого пива. Всё зависит от того, что ты вообще делаешь и какие косяки тебя больше всего бесят.
Вот, смотри, основные штуки, которые все используют:
-
MAE (Средняя абсолютная ошибка) / Норма L1:
- Что это: По-простому — берёшь все свои ошибки по модулю, складываешь и делишь на количество. Получается средний размер косяка в понятных единицах (рубли, штуки, литры).
- Когда юзать: Когда тебе похуй на редкие, но дикие выбросы. Все ошибки для тебя одинаково противны. Метрика простая и надёжная, как кирпич.
from sklearn.metrics import mean_absolute_error mae = mean_absolute_error(y_true, y_pred) # Посчитал и сразу понял, на сколько в среднем облажался
-
MSE (Среднеквадратичная ошибка) / Норма L2 и её корень RMSE:
- Что это: А вот тут уже хитрее. Ошибки сначала возводятся в квадрат, потом усредняются. А RMSE — это просто корень из этой хуйни.
- Когда юзать: Когда тебя ебёт именно большие, жирные промахи. Квадрат их так раздувает, что модель начинает их бояться как огня. Например, если ты предсказываешь нагрузку на сервер, и один пиздец-скачок важнее десяти мелких косяков. RMSE удобнее, потому что он обратно в нормальных единицах.
from sklearn.metrics import mean_squared_error mse = mean_squared_error(y_true, y_pred) # Тут ошибки уже в квадрате, овердохуища получаются rmse = np.sqrt(mse) # А тут обратно к человеческому виду приводим
-
R² (Коэффициент детерминации):
- Что это: Вообще ёперный театр с формулой, но смысл простой. Показывает, какую долю бардака в твоих данных твоя модель смогла объяснить. 1 — идеально, 0 — как базарная гадалка, а отрицательный — это просто пиздопроебибна, модель хуже, чем просто предсказывать среднее значение.
- Когда юзать: Чтобы быстро сравнить две модели на одних и тех же данных. Сказать заказчику: «Смотри, моя модель объясняет 85% всего, что тут происходит». Звучит солидно.
-
MAPE (Средняя абсолютная процентная ошибка):
- Когда использовать: Для начальства, которое мыслит процентами. «Ошибка модели — всего 5%!». Но осторожно, сука: если у тебя в данных есть нули или близкие к нулю значения, эта метрика сходит с ума и начинает делить на ноль. Доверия к ней — ноль ебать в таких случаях.
-
MSLE (Среднеквадратичная логарифмическая ошибка):
- Когда использовать: Когда твои целевые значения — от копеек до миллионов (например, цены на квартиры). Она штрафует за процентную ошибку, а не за абсолютную. То есть ошибиться на 10% на дешёвой халупе так же плохо, как на 10% на вилле. Удобная штука.
По жизни я обычно гоняю RMSE как основную метрику, чтобы видеть масштаб пиздеца в нормальных цифрах, и заодно смотрю на R², чтобы понять, не мудю ли я вообще или модель хоть что-то полезное делает.