sklearn.metrics 라이브러리를 까보면, 흔히쓰는 R스퀘어 (결정계수)말고도 비슷한 개념의 metrics가 한개가 더있다. 바로 설명분산점수(Explained Variance Score)인데 사실 R제곱 자체가
1 – (Sum of Squared Residuals / Total Variance)
로 정의되어있기 때문에, 이게 도대체 뭔 측정도구인지 싶을때가 있다. 코드를 까보면 아래와같이 설정되어있다.
Explained Variance Score = 1 – ( (Sum of Squared Residuals – Mean Error) / Total Variance )
유일한 차이는 SSR에 Mean Error를 뺀다는것이다. 만약 모델이 얼추 제대로 맞추고 모델에서 나오는 오차는 별 트렌드없이 0을 기준으로 왔다갔다 한다면 둘의 값은 거의 비슷할것이다. 다만, 에러가 한쪽에 쏠려 있다거나 한다면 일단은 모델이 좀 편향되게 (잘못) 피팅이 되었다는 것이고 이는 Mean Error가 0에 가까운 값이 아닌 – 나 +를 띄게 된다.
R제곱과 설명분산점수가 다르게 나온다면 에러에 편향이 있다는것이고, 피팅이 잘못되었다는것을 뜻한다.
굳이 부각되지 않은것은 어차피 잔차에 편향이 존재하지 않아야 회귀분석이 제대로 이뤄진것을 가정하기 때문이다.
직관적으로 이해하자면, 설명분산점수는 결정계수와 다르게 경향성도 제거하기 때문에 눈꼽만큼 나은 지표지만, 실질적인 이득은 없어보인다.