Как интерпретировать значение коэффициента детерминации
Что проверяют
Знаете ли вы, что R² сравнивает модель с самым простым прогнозом, средним значением, и умеете ли объяснить конкретное число бизнесу. Следом обычно спрашивают, может ли R² быть отрицательным и почему его одного мало для выбора модели.
Как отвечать
Дайте формулу и сразу смысл: R² = 1 − SS_res / SS_tot, где SS_res это сумма квадратов остатков модели, а SS_tot сумма квадратов отклонений целевой переменной от её среднего. R² = 0.7 значит, что модель убрала 70% разброса, который остался бы при прогнозе константой.
Дальше опорные точки:
- R² = 1: остатков нет вообще. На реальных данных это чаще утечка таргета или переобучение, чем успех;
- R² = 0: модель не лучше среднего по выборке;
- R² < 0: хуже среднего. На обучающей выборке у линейной регрессии со свободным членом такого не бывает, а на тесте встречается регулярно, и
sklearn.metrics.r2_scoreчестно вернёт отрицательное число; - скорректированный R²:
1 − (1 − R²)(n − 1) / (n − p − 1), штрафует за число признаковp. Обычный R² на трейне при добавлении признака не падает никогда, даже если признак это чистый шум; - парная регрессия: R² равен квадрату коэффициента корреляции Пирсона.
Скажите, что «хорошее» значение зависит от области. Для физического процесса 0.95 может быть слабым результатом, для поведения пользователей 0.3 уже полезная модель. Поэтому R² смотрят вместе с RMSE или MAE в единицах таргета, графиком остатков и обязательно на отложенной выборке.
Где спотыкаются
Говорят, что R² всегда лежит от 0 до 1. Это верно только на обучающих данных для линейной модели со свободным членом.
Сравнивают R² моделей с разными таргетами, например на price и на log(price). Знаменатель у них разный, числа несопоставимы.
Считают высокий R² доказательством правильной модели. Квартет Анскомба показывает четыре набора данных с одинаковым R² и совершенно разной формой зависимости, а систематический перекос в остатках R² не замечает.