오랑우탄의 반란

[ML] 선형회귀 기초 이론 및 수식 정리 (회귀 분석) 본문

PYTHON/머신러닝

[ML] 선형회귀 기초 이론 및 수식 정리 (회귀 분석)

5&2 2024. 8. 8. 18:06
반응형

 

선형회귀란?

선형적인 관계를 가진 두 변수 X, Y에 대해 모르는 데이터 값을 예측하는 것

 

선형회귀 이론

키(Y)와 몸무게(X) 분포가 아래와 같이 있다고 가정해봅시다. 

이때 두 변수 사이에 일정하게 증가하는 패턴을 보고 우리는 몸무게를 알면 키를 예측할 수 있겠다고 생각할 수 있습니다. 

 

하지만 실제로 각 값의 분포에 대해 예측 선을 무한하게 그릴 수 있는데요, 

이때 데이터 분포를 가장 잘 설명해줄 수 있는 선을 그리는 것이 선형회귀입니다. 

weights = [87,81,82,92,90,61,86,66,69,69]
heights = [187,174,179,192,188,160,179,168,168,174]

분포도와 가능한 예측 선

 

 

그러면 이 선을 어떻게 그리는 게 좋을까요? 

바로 각각의 값에 대해 선과의 오차를 계산해서 최소의 오차를 가진 직선이 적절한 선이 됩니다.

 

위의 데이터로 오차 error 가 어떻게 계산되는지 살펴봅시다. 

  • ①번 실제 데이터:187, 예측 데이터: 187     → error: 0
  • ②번 실제 데이터: 174, 예측 데이터: 181    → error: -7
  • ③번 실제 데이터: 174, 예측 데이터 : 169   → error: +5
  • ①, ②,③의 제곱 합 / 전체 데이터 수: 49 +25 = 71/3 → 최종 error: 23.7
왜 오차의 합으로 계산하지 않고 제곱을 하나요? 
☞ error를 단순히 sum하게 되면 양수와 음수가 상쇄되어 정확한 계산이 안 되기 때문입니다. 

왜 오차 제곱의 합을 다시 데이터의 개수로 나누나요?
☞ 데이터가 추가될 때마다 error가 자연스럽게 커지기 때문에 이를 방기하기 위함입니다. 

 

 

선형회귀분석 조건

조건 설명
선형성 (Linearity) 종속 변수(Y)와 독립 변수(X) 간에 선형 관계가 존재해야 함
등분산성 (Homoscedasticity) 오차의 분산이 모든 수준의 독립 변수에 대해 일정해야함
즉, 오차가 특정 패턴을 보여서는 안 되며 독립 변수의 값에 상관없이 일정해야 함
정규성 (Normality) 오차 항은 정규 분포를 따라야 함 
독립성 (Independence) X변수는 서로 독립적이어야함 (다중공선성 문제 발생)

 

 

선형회귀 수식

앞서 키가 Y 몸무게가 X 라고 설명했습니다.

 

Y = 종속변수, 결과변수

X = 독립변수, 원인변수, 설명변수 

 

일반 선형회귀 식

β0: 편향 bias

β1: 회귀 계수

ε: 오차, 모델이 설명하지 못하는 Y의 변동성 

 

머신러닝/딥러닝 선형회귀 식

b: 편향 bias

ω: 가중치

 

 

회귀분석 평가지표

선형회귀를 수립했으면 해당 모델이 좋은지 평가해야 합니다. 

 

MSE (Mean Squared Error)

회귀의 공통 평가지표로 MSE 가 있는데요, 오차이기 때문에 작을수록 좋은 모델로 평가됩니다. 

 

MSE 계산 방법은 아래와 같습니다. 

  • error = 실제 데이터 - 예측 데이터
  • error 제곱의 합 / 데이터 개수

MSE 와 비슷한 평가지표로 RMSE와 MAE 가 있습니다.

 

RMSE: MSE 의 제곱근

 

MAE: 제곱 대신 절대값을 이용한 오차 계산

 

R Square

R Square 는 선형회귀에만 해당되는 평가지표인데요,

이는 전체 모형에서 회귀선으로 설명할 수 있는 정도로 클수록 좋은 모델로 평가됩니다. 

 

yi: 실제 값

ȳ: 평균 값

ŷ: 예측, 추정값

SST (총합) : yi - ȳ

SSE (실제와 예측 차이) : yi = ŷ 

SSR (예측과 평균 차이) : ŷ - ȳ

 

아래 예시로 3번의 데이터 값은 SST = 174^2, SSR = 169^2

해당 값에 대한 설명력 = 94% 이지만 실제 R Square는 모든 값에 대해 수행해줍니다. 


선형회귀분석 정리

장점 단점
직관적이며 이해하기 쉬움 X-Y간의 선형성 가정 필요
X-Y관계를 정량화 할 수 있음 평가지표가 평균(mean)을 포함해 이상치에 민감
모델이 빠르게 학습됨 (가중치 계산이 빠름) 범주형 변수 인코딩시 정보 손실 발생

 

 

 

 

다음 포스트에서는 실제 파이썬으로 머신러닝 선형회기 실습을 진행하겠습니다.  

반응형