선형 회귀: Difference between revisions

From IT Wiki
No edit summary
No edit summary
 
(6 intermediate revisions by 3 users not shown)
Line 11: Line 11:
* 저 그래프를 그리는 수식 y = mx+b 을 알아낸다면 어떤 온도에서 귀뚜라미가 얼마나 우는지, 또는 귀뚜라미가 얼마나 울면 어느 정도의 온도인지 알 수 있다.
* 저 그래프를 그리는 수식 y = mx+b 을 알아낸다면 어떤 온도에서 귀뚜라미가 얼마나 우는지, 또는 귀뚜라미가 얼마나 울면 어느 정도의 온도인지 알 수 있다.


== [[기계 학습]] ==
== 기계 학습 과정 ==
* 위 예시는 단순한 2차원 직선 그래프를 그리지만, 실제 일상 속의 현상은 저렇게 단순하지 않은 경우가 많다.
*위 예시는 단순한 2차원 직선 그래프를 그리지만, 실제 일상 속의 현상은 저렇게 단순하지 않은 경우가 많다.
* 요소가 2개를 넘어서서 3차원, 4차원일 수도 있고, 직선이 아니라 곡선을 그릴 수도 있다.
* 요소가 2개를 넘어서서 3차원, 4차원, 심지어 10차원 이상일 수도 있고, 직선이 아니라 곡선을 그릴 수도 있다.<ref>특성이 많아 10차원 이상으로 넘어가는 경우는 다반사지만 직선이 아닌 곡선으로 학습되도록 하려면 먼저 선형 모델을 그려 본 후 곡선으로 학습을 하도록 따로 설정을 해줘야 한다. 기본적인 선형 회귀 모델은 독립 변수와 종속 변수간의 관계가 선형적(직선)이라고 가정하기 때문에 알아서 곡선을 만들어내진 못한다.</ref>
* 이렇게 여러 특성을 반영한 선형적 관계를 컴퓨팅 파워를 이용해 반복 계산하는 과정이 기계 학습과정이다.


[[[[파일:선형 회귀.png]]]]
[[파일:선형 회귀.png]]
* 이런 경우 우리가 예상되는 수식 형태 y = mx+b 등을 넣어주면, 반복적으로 계산하고 비교하고 계산하고 비교하여 결국 합리적인 선형 모델을 만들어 주는 것이 [[기계 학습]]의 기본이다.
 
아래와 같은 반복 과정을 거친다.
 
* 선형 회귀 알고리즘은 '''오차를 최소화하는 직선'''을 찾는 방식으로 작동한다. 보통 '''평균 제곱 오차(Mean Squared Error, MSE)'''를 최소화하는 직선을 계산하며, 학습 과정에서 다음을 자동으로 수행한다.
*# '''초기 직선 설정''': 처음에는 무작위 기울기와 절편으로 시작한다.
*# '''오차 계산''': 데이터의 실제 y 값과 예측 y 값 사이의 오차(잔차)를 계산한다.
*# '''오차 최소화''': 기울기와 절편을 조정하면서 오차가 최소화되는 방향으로 업데이트한다.
*# '''최적화 종료''': 오차가 최소가 되면 최종적으로 구해진 직선의 기울기와 절편을 반환한다.  이 과정은 '''[[경사 하강법|경사 하강법(Gradient Descent)]]''' 등의 최적화 알고리즘을 통해 이루어지며, 학습 데이터의 패턴에 맞춰 가장 적합한 직선이 자동으로 학습된다.
 
== [[선형 회귀의 기본가정|선형 회귀의 4가지 기본가정]] ==
줄여서 LINE이라고 외우기도 하지만 한국의 기술사 학원 등에서 만들어낸 것으로 보인다. 전 세계적으론 [[CRUD]], [[트랜잭션 특성|ACID]], [[보안의 3요소|CIA]], [[객체지향 설계 원칙|SOLID]] 처럼 통용되진 않는다.
* 선형성('''L'''inearity): 독립변수(X)과 종속변수(Y)가 선형 관계에 있음
* 독립성('''I'''ndependence): 종속변수는 다른 종속변수의 값에 의해 영향을 받지 않음
* 정규성('''N'''ormality): 오차항은 다변량 정규분포를 띔
* 등분산성(Homoscedasticity): 오차항의 분산은 모든 종속변수에 대해 동일함
** '''E'''qual Variance 라고도 불리지만 주로 한국에서 외우기 쉽게 번역한 것이고, 학술적으로 정확하진 않다.
 
== 해석 가능성(interpretability) ==
 
* 선형 회귀는 단순한 수학적 모델로, 각 특성에 대해 선형 계수를 할당하기 때문에 각 특성이 타겟 변수에 미치는 영향을 쉽게 해석할 수 있다.
** 예를 들어 연봉을 예측하는 선형 회귀 모델은 아래와 같은 식으로 표현될 수 있고, 곱해지는 값을 통해 특성의 영향도를 파악할 수 있다.
** ex) 연간 소득 = 2500+(4000×교육 수준)+(200×근무 연수)+(10000×직위)+(300×평가 점수)+(50×주당 근무 시간)
* 양수 계수는 양의 영향을, 음수 계수는 음의 영향을 나타낸다.
 
== 각주 ==

Latest revision as of 05:59, 2 November 2024

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