[머신러닝] 회귀 모델 - Linear Regression(선형 회귀)/Bagging Regressor(배깅 회귀)/Boosting Regressor(부스팅 회귀)

2025. 2. 28. 00:25AI & DS/머신러닝

 

 

카테고리를 예측하면 → 분류 (Classification),
숫자 값을 예측하면 → 회귀 (Regression),
분류는 특정 클래스(이산적인 값),
회귀는 선형적인 변화(연속적인 값) 예측에 사용

분류(Classification)

  • 정해진 카테고리(클래스) 중 하나를 예측하는 문제 -> 즉, "어떤 그룹에 속하는가?" 를 예측하는 것
  • 출력값(Y)이 연속적이지 않고, 특정 클래스 중 하나로 결정됨
  • 예측 결과는 0, 1 또는 다중 클래스(예: 개, 고양이, 토끼) 같은 이산값(Discrete Value)

 

  • 예제 1 : 이메일 스팸 분류
    • 입력(X): 이메일의 단어 개수, 링크 포함 여부, 광고성 문구 포함 여부
    • 출력(Y): "스팸(1)" 또는 "정상 메일(0)"
  • 예제 2 : 암 진단(양성 vs. 악성)
    • 입력(X): 종양 크기, 세포 밀도 등
    • 출력(Y): "양성(0)" 또는 "악성(1)"

분류 모델의 결정 경계 (Classification Decision Boundary)

  • 파란색과 빨간색 점들은 각각 다른 클래스 (예: 양성 vs. 악성)
  • 초록색 선이 결정 경계(Decision Boundary)
  • 새로운 데이터가 어느 쪽에 속하는지 분류하는 것이 목표

회귀(Regression)

  • 숫자 값을 예측하는 문제 -> 즉, "얼마나 될까?", "얼마 정도일까?" 와 같은 질문을 다룸
  • 출력값(Y)이 연속적인 값(Continuous Value)으로 나옴

 

  • 예제 1 : 집값 예측
    • 입력(X): 집의 크기(면적), 방 개수, 위치
    • 출력(Y): 집값(100,000달러, 250,000달러 등 연속적인 값)
  •  예제 2 : 자동차 연비 예측
    • 입력(X): 엔진 크기, 차량 무게, 연료 종류
    • 출력(Y): 연비(예: 12.5 km/L, 15.8 km/L)

분류 vs. 회귀 예측 방식 차이

  • 분류 모델이 예측하는 방식 : 각 클래스에 속할 확률을 계산한 후, 가장 확률이 높은 클래스로 예측
    • [이메일 스팸 여부 예측]  P(스팸) = 0.85, P(정상 메일) = 0.15 → 결과: "스팸" (0.85가 더 크므로)
  • 회귀 모델이 예측하는 방식 : 회귀 모델은 주어진 X 값에 대해 Y 값을 직접 예측
    • [집값 예측]  입력(X): "방 개수 3개, 면적 120㎡", 모델 출력(Y): "예상 집값 300,000달러"

 회귀 모델의 기본 원리 : 입력 변수(X)와 출력 변수(Y)의 관계를 찾는 것

  • 일반적인 회귀 모델의 공식: Y=f(X)+ϵ
    • X: 입력값 (독립 변수, feature)
    • Y: 예측하고 싶은 값 (종속 변수, target)
    • f(X): 우리가 찾고 싶은 함수 (모델)
    • ϵ\epsilon: 오차 (모델이 완벽할 수 없으므로 포함되는 노이즈)
  • (ex) "집 크기 vs 집값" 회귀 모델
    • X: 집의 크기 (면적, square feet)
    • Y: 집값 (price)
    • 우리가 찾아야 할 것은 집 크기와 집값 사이의 관계 f(X)

1. 선형 회귀 (Linear Regression)

 

https://upload.wikimedia.org/wikipedia/commons/3/3a/Linear_regression.svg

  • 입력 변수(X)와 출력 변수(Y)의 관계를 직선으로 표현하는 모델 -> 예측값을 가장 잘 설명하는 직선을 찾는 과정
  • 최소 제곱법(Ordinary Least Squares, OLS)을 사용하여 오차를 최소화하는 것이 핵심

 

학습 과정

1. 데이터가 주어짐

  • 예제: 집 크기(X) → 집값(Y) 예측
    • X축: 집 크기 (Square Feet)
    • Y축: 집값 (Price)

2. 최적의 직선 찾기 : Y = aX + b

  • a = 기울기(Slope)
  • b = 절편(Intercept)
  • 오차(Error) 정의 : Error = 실제값(Y) − 예측값(Y_hat)
  • 손실 함수(Loss Function)

  • 선형 회귀는 오차의 제곱합(Mean Squared Error, MSE)을 최소화하는 기울기와 절편을 찾음

 

3. 경사 하강법(Gradient Descent)으로 최적화

  • MSE를 최소화하기 위해 기울기 a와 절편 b를 업데이트
  • 기울기의 변화

  • 학습이 진행될수록 오차가 줄어들면서 최적의 직선을 찾음

2. 배깅 회귀 (Bagging Regressor)

  • 여러 개의 결정 트리(Decision Trees)를 학습하고, 평균을 내어 예측
  • 랜덤하게 샘플을 선택하여 각 모델을 독립적으로 학습한 후, 최종적으로 평균을 내어 예측값 결정
  • "데이터가 일부 변해도 예측 성능이 안정적"
    • 과적합(Overfitting) 방지
      • 하나의 모델(결정 트리 등)은 데이터에 너무 강하게 적응할 수 있음 → 과적합 발생 가능
      • 하지만 배깅은 여러 개의 모델을 학습하고 평균을 내므로, 과적합을 줄일 수 있음
    • 노이즈(Noise)에 강함
      • 일부 샘플링이 이상치(Outlier)를 포함할 수 있음
      • 그러나 배깅은 전체 모델들의 평균을 내므로 이상치의 영향을 줄임
    • 예측 성능(Accuracy) 향상
      • 개별 모델은 성능이 다소 낮을 수 있음
      • 하지만 여러 모델을 합치면 더 강력한 예측 성능을 가짐

다이어그램으로 보는 과정

Analysis, Characterization, Prediction and Attribution of Extreme Atmospheric Events with Machine Learning: a Review - Scientific Figure on ResearchGate. Available from: https://www.researchgate.net/figure/Diagram-of-the-bagging-technique-used-for-classification-or-regression-problems-in-ML_fig1_362065998 [accessed 27 Feb 2025]

 

1. Training Data(훈련 데이터)

  • 왼쪽에 있는 원형 점들이 훈련 데이터  -> 데이터는 다양한 클래스(예: 빨강, 노랑, 초록)로 나뉨
  • 이 데이터셋을 사용해 모델을 학습할 예정

2. Bootstrap Sampling (랜덤 샘플링)

  • 원래 훈련 데이터에서 랜덤하게 샘플을 뽑아 여러 개의 데이터셋을 생성
  • 샘플링 과정에서는 중복이 허용됨 (같은 데이터가 여러 번 선택될 수 있음)
  • 각 모델(Classifier/Regressor)이 서로 다른 데이터셋을 학습하게 됨
  • 오른쪽 상단 박스처럼, 각 샘플에는 일부 데이터가 포함되며 원본과 다를 수 있음

3. 여러 개의 모델(Classifier / Regressor) 학습

  • 배깅은 여러 개의 개별 모델(약한 학습기, Weak Learner)을 학습하는 방식
  • 그림에서 각 "Classifier / Regressor" 박스는 독립적인 모델을 의미
  • 개별 모델들은 훈련된 데이터 샘플을 기반으로 개별적인 예측을 수행
  • 모델 개수 N개가 설정될 수 있음

4. Ensemble (앙상블 예측)

  • 새로운 데이터(Test Data)가 주어졌을 때, 개별 모델들이 각각 예측을 수행
  • 마지막 단계에서 "Ensemble" (앙상블 기법, 즉 여러 모델의 결합)으로 최종 예측값을 생성
  • 앙상블 방법:
    • 분류(Classification)  다수결 투표(Voting)
    • 회귀(Regression)  평균(Averaging)

5. 최종 예측값(Outcome)

  • 배깅 모델은 다양한 데이터 샘플을 활용하여 여러 개의 개별 모델을 학습
  • 이후, 각 모델의 예측 결과를 종합하여 최종 결과를 산출
  • 이 과정 덕분에 데이터 일부가 변해도 안정적인 예측 성능을 유지

학습 과정

1. 랜덤 샘플링 (Bootstrap Sampling)

  • 원래 훈련 데이터에서 랜덤하게 일부 샘플을 뽑아 여러 개의 학습 데이터셋을 생성
  • 예를 들어, 1000개의 데이터가 있다면 각 모델은 800개의 랜덤 샘플을 사용하여 학습
  • 중복 샘플링 가능 (Bootstrap Aggregation, Bagging)

2. 결정 트리 여러 개 학습

  • 배깅에서는 각 샘플마다 독립적인 결정 트리를 학습
  • 각 트리는 입력 변수 X에 대해 개별적으로 Y를 예측
  • 트리의 개수 n개 → 각 트리에서 서로 다른 예측값을 생성

3. 예측값 평균 계산

  • 모든 결정 트리에서 나온 예측값을 평균 내어 최종 예측값 결정


3. 부스팅 회귀 (Boosting Regressor)

  • 이전 모델이 만든 오차를 보완하면서 점진적으로 성능을 개선하는 모델
  • 배깅과 달리 오류를 줄이는 방향으로 학습이 진행됨
  • 대표적인 알고리즘: Gradient Boosting, XGBoost, LightGBM

 

  • Gradient Boosting은 오차를 점진적으로 보정하면서 강력한 예측 모델을 형성
  • 이전 모델의 오차를 기반으로 학습하기 때문에 일반적인 배깅(Bagging)보다 높은 성능을 기대할 수 있음
  • 하지만 과적합(Overfitting) 위험이 존재 하이퍼파라미터 튜닝이 중요

다이어그램으로 보는 과정

Application of Machine Learning Approaches in Particle Tracking Model to Estimate Sediment Transport in Natural Streams - Scientific Figure on ResearchGate. Available from: https://www.researchgate.net/figure/Flow-chart-of-gradient-boosting-regression-model_fig5_379187282 [accessed 27 Feb 2025]

 

 

1. 데이터 입력 (Start & Data Samples)

  • 입력 데이터(X, y)가 주어짐
    • X: 입력 변수 (독립 변수, Feature)
    • y: 정답 데이터 (종속 변수, Target)

 

2. 첫 번째 약한 모델 (Weak Model 1) 학습

  • 첫 번째 약한 모델(Weak Model 1)이 학습됨 (예: 작은 결정 트리)
  • 이 모델은 초기 예측값(y_hat)을 생성
  • 그러나 첫 모델은 완벽하지 않음 → 예측 오차(Residual R1)가 존재
오차(Residual) 계산 공식

 

→ 즉, 실제값과 예측값의 차이를 구함
오차가 남아 있으므로, 이 오차를 보완하는 새로운 모델이 필요

 

 

3. 두 번째 약한 모델 (Weak Model 2) 학습

  • 두 번째 약한 모델이 첫 번째 모델의 오차(Residual R1)를 학습
  • 즉, 오차(잔차)를 줄이는 방향으로 두 번째 모델을 학습
  • 새로운 예측값(R1_hat)이 생성됨
새로운 오차 계산 공식

 

→ 첫 번째 모델의 오차를 반영한 새로운 오차(Residual)를 계산
→ 이제 잔여 오차를 최소화하는 방향으로 학습 진행

 

 

4. 세 번째 약한 모델 (Weak Model 3) 학습

  • 이전 모델이 여전히 완벽하지 않으므로, 세 번째 모델이 남은 오차(R2)를 학습
  • 또다시 잔차 예측값(R2_hat)을 만들고, 새로운 오차(R3)를 계산
새로운 오차 계산 공식

 

→ 계속해서 이전 모델이 해결하지 못한 오차를 학습하여 개선

 

 

5. 여러 개의 모델이 순차적으로 학습됨

  • 이 과정을 여러 번 반복하여 N개의 약한 모델을 학습
  • 점점 더 예측 성능이 향상됨
    • 최종 단계에서는 오차(Residual)가 거의 0에 가까워짐
    • 마지막 모델의 예측값이 곧 최종 예측값(Prediction Y)

학습 과정

1. 첫 번째 결정 트리 학습

  • 초기 모델 f1(X)을 학습하여 첫 번째 예측값(y hat) 을 생성
  • 하지만 예측값과 실제값 사이에는 오차(Error)가 존재

2. 오차(Residuals)를 계산하고, 보완 모델 학습

  • 오차(Residual)를 계산

  • 새로운 트리 f2(X)를 학습하여 이전 모델의 오차를 보완
  • 즉, 새로운 모델은 오차를 줄이는 방향으로 업데이트됨
    • α (alpha) 학습률 (learning rate)

3. 이 과정을 반복

  • 여러 개의 모델이 순차적으로 학습되면서 점점 더 정확한 예측값 생성
  • 최종적으로 여러 개의 약한 학습기(Weak Learner)가 결합하여 강력한 모델(Strong Learner)로 완성됨

모델 학습 방식  학습 과정 장점 단점
선형 회귀 데이터를 직선으로 표현 경사 하강법을 사용해 최적의 직선 찾음 - 간단하고 빠름 - 비선형 데이터를 잘 학습 못함
배깅 회귀 여러 개의 트리를 평균 랜덤 샘플링 후 다수의 모델 학습 → 평균 - 데이터 변동성이 있어도 안정적
- 여러 개의 모델을 평균 내어 안정적이고 과적합 위험이 적음
- 트리 개수가 많아지면 느려질 수 있음
부스팅 회귀 이전 모델의 오차를 보완 오차를 줄이는 방향으로 순차적으로 학습 - 강력한 성능, 정밀한 예측 가능 - 과적합 위험, 학습 속도 느림

 

 배깅(Bagging) vs. 부스팅(Boosting) 비교

비교 항목 배깅(Bagging) 부스팅(Boosting)
학습 방식 여러 모델을 독립적으로 학습 → 예측값을 평균 이전 모델의 오차를 보완하면서 순차적으로 학습
데이터 샘플링 랜덤 샘플링 (Bootstrap) 모든 데이터를 사용
모델 결합 방식 평균(회귀) or 다수결(분류) 이전 모델의 오차를 보완하며 가중치 적용
대표 알고리즘 랜덤 포레스트 (Random Forest) Gradient Boosting, XGBoost, LightGBM