통계/회귀분석 - R 프로그래밍

회귀분석의 과적합(Overfitting)

BlueNoa 2021. 7. 1. 23:37
728x90
반응형

· 과적합(Overfitting)

과적합이란 데이터 분석을 진행함에 있어 모델 학습을 과하게 한 경우를 말한다.

학습 데이터에 대한 분석을 과하게 해서 실제 데이터에 대한 적중률이 떨어져서 오차가 증가하는 현상이다.

예를 들어서 매번 바퀴가 2개인 오토바이를 보다가 바퀴가 3개, 4개인 오토바이를 보면 오토바이로 인식을 못하는 것과 같다.

 

다시 강조하지만 분석을 하면서 너무 과하게 분석하면 되려 잘못된 분석 결과가 발생하는 지점이 존재한다.

이런 과적합 형상은 복잡한 모형이고, 데이터의 양이 충분하지 못한 경우 빈번하게 발생한다.

반대로 데이터의 수가 정말 많으면 복잡한 모형에서도 과적합이 발생할 확률이 매우 낮아진다. (0에 수렴할 정도로)

 

 

[출처] - 위키백과

과적합이 발생하면 데이터의 분류에 있어 이런 모습이 발생한다. (출처 - 링크)

위 사진과 같이 분석을 할 때 완벽하게 분석을 하기 위해서 분류 모델이 복잡한 것을 한눈에 알 수 있다.

여기서 초록색 선이 과적합된 모델, 검은색 선이 일반적인 모델의 분류이다.

 

 

· 분산(Variance)과 편향(Bias)

분산이란 데이터의 퍼짐 정도를 나타내는데 전체 데이터 중에 얼마만큼 학습 데이터로 이용하는 가에 따라 바뀌게 된다.

복잡한 모형이 만들어질수록 분산이 높게 된다. 그렇다는 것은 추정된 결과가 정확하지 않고 범위가 넓게 된다.

 

편향, 편파성은 잘못된 가정을 갖고 분석했을 때 한쪽으로 치우치는 결과가 나와 발생하는 오차(오류)로 간단한 모형(데이터의 양이 적거나 정보가 부족한) 일수록 빈번하게 발생한다.

 

여기서 크게 영향을 주는 것이 앞 내용에서 자주 등장한 MSE(Mean Squared Error)이다.

전 게시글부터 계속 MSE 값이 작은 모형을 선택해주었다. 그 이유는 다음의 수식과 같다.

 

MSE = SSE / (n-2) = ∑(yhat - y)^2 / (n-2)

SSE는 오차의 합이다. 그런데 여기서 MSE의 값은 회귀모형의 회귀계수 분산에 포함되어 계산이 되기도 하므로 분산에 영향을 주는 값이다. 조금 더 자세히 이야기 하면 MSE를 구성하는 SSE : 오차합의 오차값에는 우리가 인지 가능한 Reducible Error(수정 가능한 에러)와 Irreducible Error(수정 불가능, 해결할 수 없는 에러)가 같이 존재한다. 

때문에 에러(오차)를 정확하게 나누어서 분류하는 것은 불가능하므로 그로 인해 발생하는 편향이 존재한다는 것이다.

그렇기 때문에 간단한 모형일수록(정보가 충분하지 않아) 편향이 발생하기 쉽다.

 

그러나 편향과 분산을 전부 만족시키는 모형은 현실에서는 사실상 존재하지 않는다.

그렇기 때문에 분산과 편향은 반비례관계이다. 모형을 복잡하게 만들면 분산이 증가하고, 간단하면 편향성이 발생하기 때문이다. 대부분의 분석가들은 편향이 적고 분산은 좀 높은 모형을 많이 선택한다.

 

 

· 과적합의 발생원인

우리가 학습과 실험에 사용하는 데이터는 모집단의 정보가 아닌 모집단으로부터 랜덤하게 추출된 표본이기 때문에 표본이 모집단의 특성을 100% 반영하기는 불가능하다. 그리고 표본의 추출 방법과 모집단에 대한 정보의 한계로 인해서 완전한 랜덤추출을 할 수 없기 때문에 편향도 발생하는 것이다.

만에 하나 모집단의 데이터를 모두 얻어서 학습을 진행한다고 해도 학습의 완료 시간은 데이터의 양에 따라 기하급수적으로 늘어날 수도 있다. 또 그래프처럼 오차가 한 순간 증가하는 지점을 예측하는 것 또한 불가능에 가깝다.

 

요약하면

1. 모집단의 특성(모수)에 대한 정보의 한계로 인한 발생(편향)

2. 데이터가 너무 적은 경우

3. 모델에 비해 문제가 너무 복잡한 경우

 

· 과적합을 예방하거나 최적화하는 방법

인공신경망(Artificial Neural Network)

서포트 벡터 머신(SVM, Support Vector Machine)

드롭아웃(Dropout)

데이터 증가(양 또는 증식, 증강) - 이미지, 노이즈 등을 추가하고 일부 수정하며 여기서 train / test로 데이터를 나눈다.

 

그 외에도 다양한 방법들이 존재한다. [추천] - 과적합 해결에 대한

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형