선형 회귀

From IT Wiki
Revision as of 05:59, 2 November 2024 by 핵톤 (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Linear Regression
종속변수 y와 독립변수 x와의 선형 상관 관계를 모델링하는 회귀 분석 기법

예시[edit | edit source]

  • 귀뚜라미는 날씨가 더운 날 더 자주 우는 것으로 추정이 된다.

선형 회귀 귀뚜라미.png

  • 그래서 온도에 따른 우는 횟수를 측정 해 보니 위 그래프와 같이 나왔다.

선형 회귀 귀뚜라미2.png

  • 이 그래프는 파란색 선과 같은 선형 관계를 가진다.
  • 저 그래프를 그리는 수식 y = mx+b 을 알아낸다면 어떤 온도에서 귀뚜라미가 얼마나 우는지, 또는 귀뚜라미가 얼마나 울면 어느 정도의 온도인지 알 수 있다.

기계 학습 과정[edit | edit source]

  • 위 예시는 단순한 2차원 직선 그래프를 그리지만, 실제 일상 속의 현상은 저렇게 단순하지 않은 경우가 많다.
  • 요소가 2개를 넘어서서 3차원, 4차원, 심지어 10차원 이상일 수도 있고, 직선이 아니라 곡선을 그릴 수도 있다.[1]
  • 이렇게 여러 특성을 반영한 선형적 관계를 컴퓨팅 파워를 이용해 반복 계산하는 과정이 기계 학습과정이다.

선형 회귀.png

아래와 같은 반복 과정을 거친다.

  • 선형 회귀 알고리즘은 오차를 최소화하는 직선을 찾는 방식으로 작동한다. 보통 평균 제곱 오차(Mean Squared Error, MSE)를 최소화하는 직선을 계산하며, 학습 과정에서 다음을 자동으로 수행한다.
    1. 초기 직선 설정: 처음에는 무작위 기울기와 절편으로 시작한다.
    2. 오차 계산: 데이터의 실제 y 값과 예측 y 값 사이의 오차(잔차)를 계산한다.
    3. 오차 최소화: 기울기와 절편을 조정하면서 오차가 최소화되는 방향으로 업데이트한다.
    4. 최적화 종료: 오차가 최소가 되면 최종적으로 구해진 직선의 기울기와 절편을 반환한다. 이 과정은 경사 하강법(Gradient Descent) 등의 최적화 알고리즘을 통해 이루어지며, 학습 데이터의 패턴에 맞춰 가장 적합한 직선이 자동으로 학습된다.

선형 회귀의 4가지 기본가정[edit | edit source]

줄여서 LINE이라고 외우기도 하지만 한국의 기술사 학원 등에서 만들어낸 것으로 보인다. 전 세계적으론 CRUD, ACID, CIA, SOLID 처럼 통용되진 않는다.

  • 선형성(Linearity): 독립변수(X)과 종속변수(Y)가 선형 관계에 있음
  • 독립성(Independence): 종속변수는 다른 종속변수의 값에 의해 영향을 받지 않음
  • 정규성(Normality): 오차항은 다변량 정규분포를 띔
  • 등분산성(Homoscedasticity): 오차항의 분산은 모든 종속변수에 대해 동일함
    • Equal Variance 라고도 불리지만 주로 한국에서 외우기 쉽게 번역한 것이고, 학술적으로 정확하진 않다.

해석 가능성(interpretability)[edit | edit source]

  • 선형 회귀는 단순한 수학적 모델로, 각 특성에 대해 선형 계수를 할당하기 때문에 각 특성이 타겟 변수에 미치는 영향을 쉽게 해석할 수 있다.
    • 예를 들어 연봉을 예측하는 선형 회귀 모델은 아래와 같은 식으로 표현될 수 있고, 곱해지는 값을 통해 특성의 영향도를 파악할 수 있다.
    • ex) 연간 소득 = 2500+(4000×교육 수준)+(200×근무 연수)+(10000×직위)+(300×평가 점수)+(50×주당 근무 시간)
  • 양수 계수는 양의 영향을, 음수 계수는 음의 영향을 나타낸다.

각주[edit | edit source]

  1. 특성이 많아 10차원 이상으로 넘어가는 경우는 다반사지만 직선이 아닌 곡선으로 학습되도록 하려면 먼저 선형 모델을 그려 본 후 곡선으로 학습을 하도록 따로 설정을 해줘야 한다. 기본적인 선형 회귀 모델은 독립 변수와 종속 변수간의 관계가 선형적(직선)이라고 가정하기 때문에 알아서 곡선을 만들어내진 못한다.