Что такое коэффициент детерминации R² в регрессии
Что проверяют
Понимаете ли вы, что именно измеряет R² и почему по нему одному нельзя принимать решение о модели. Для аналитика это вопрос про честную оценку качества, а не про формулу.
Как отвечать
R² это доля дисперсии целевой переменной, объяснённая моделью: единица минус отношение суммы квадратов остатков к сумме квадратов отклонений от среднего.
r2 = 1 - ss_res / ss_tot
ss_res = ((y - y_pred) ** 2).sum()
ss_tot = ((y - y.mean()) ** 2).sum()Смысл читается через базовую модель: в знаменателе ошибка константного прогноза средним. Ноль значит, что модель не лучше среднего, единица это точное попадание. На обучающей выборке линейной регрессии со свободным членом значение лежит в отрезке от нуля до единицы, но на отложенной выборке оно свободно уходит в минус, и это нормальный исход.
Дальше стоит сказать про скорректированный R²: обычный никогда не падает при добавлении признака, даже случайного шума, поэтому сравнивать по нему модели разной размерности бессмысленно. И добавить, что R² безразмерен и удобен для разговора с заказчиком, а для контроля ошибки в единицах целевой переменной рядом держат RMSE или MAE.
Где спотыкаются
Говорят, что R² всегда лежит от нуля до единицы. На отложенной выборке, на моделях без свободного члена и на нелинейных методах он бывает отрицательным, и это не сбой, а сигнал: прогноз средним оказался точнее.
Читают R² как долю верных предсказаний или как силу связи. Это доля объяснённой дисперсии, и высокое значение легко получить на подогнанной модели с избытком признаков, а низкое нормально там, где в данных много неустранимого шума.
Сравнивают R² между разными выборками. Величина зависит от разброса целевой переменной: на однородном срезе тот же прогноз даст меньшее значение, чем на разнородном. Корректно сравнивать только модели на одних и тех же данных.