Research/Machine Learning

Coefficient of Determination(결정계수), R^2(R square)

IMCOMKING 2017. 5. 22. 14:29

결정계수 = Coefficient of Determination = R^2 = R squared

- Regression model의 성능을 측정하기 위해 mean value로 예측하는 단순 모델(Zero-R 모델)과 비교해서, 상대적으로 얼마나 성능이 나오는지를 측정한 지표. (다른 성능 지표인 RMSE나 MAE는 데이터의 scale에 따라서 값이 천차만별이기 때문에, 절대 값만 보고 바로 성능을 판단하기가 어려운 반면, 결정계수의 경우 상대적 성능이기 때문에 보다 직관적으로 알 수 있다.)

 

결정계수(R^2) 구하는 공식

( 보통의 경우 0<= R^2 <= 1 , 0이면 0점, 1이면 100점)

 

 

* 이때 그냥 mean value(평균값)를 예측하는 regression model을 쓴다면, 오차는 항상 편차와 동일하기 때문에 오차와 편차 제곱의 비율이 1이 되어 R^2 = 0이 된다. 

* 만일 R^2가 1이라면, 이는 "오차^2 = 0인 상황이므로" training error가 0인 것을 의미한다. 

* 만약 R^2가 0보다 작은 음수를 내는 경우는, 편차^2보다 오차^2이 더 큰 상황이고, 이는 내가 만든 regression model이 그냥 mean value로 예측하는 모델보다 예측성능이 더 낮은 비정상적인 경우를 의미한다.

이때 오차는 training data에 대해서 계산할 수도 있고, validation data에 대해서도 계산할 수 있다.

 

결정계수(R^2) 구하는 공식을 다시 쓰면..

 

* 이 관점에서 R^2의 값은 (예측 값에 대한 분산/실제 값에 대한 분산)이라고 볼 수 있다.

 

* R^2는 mean value로 예측하는 Zero-R 모델에 비해, regression model의 성능이 얼마나 더 좋은가를 나타내는 것이다. 

그 이유는 오차^2과 편차^2의 비율을 계산하는 부분에 있다. 편차는 y값의 평균으로부터의 거리를 측정한 것이고, 오차는 모델이 예측한 y로부터의 거리를 측정한 것이다. 즉 다시 말해 오차^2은 내가 만든 모델의 에러율이라고 볼 수 있고, 편차^2은 평균으로 예측하는 Zero-R 모델의 에러율인 것이다.

 

* 이러한 R^2의 단점은 데이터가 매우 단순하여 평균을 예측하는 것만으로도 오차가 충분히 작을 때에는 모델 성능이 좋든 나쁘든 유사한 지표가 측정될 수 있다는 점일 것이다. 이때에는 편차가 매우 작아지고, 오차도 동시에 매우 작아지게 된다. 그러면 경우에 따라서 우측항이 1보다 큰 값을 낼 수 있어 R^2가 0 이하가 될 수 있다. (그러나 보통 이런 경우 데이터 자체에 문제가 있거나, 정 안되면 Zero-R을 사용하면 된다.)

https://en.wikipedia.org/wiki/Coefficient_of_determination