[Python] 머신러닝 완벽 가이드 # 14. 규제 선형 회귀

sun4_you·2023년 4월 30일
0
post-thumbnail

✏️ # 14. 규제 선형 회귀


규제 선형 회귀(Regularized Linear Regression)

  • 앞서 본 Degree=15의 다항회귀 처럼 지나치게 모든 데이터에 적합한 회귀식을 만들기 위해서 다항식이 복잡해지고 회귀 계수가 매우 크게 설정이 되면서 과대적합이 되었고, 테스트 데이터 세트에 대해 좋지 않는 성능을 보였다.

  • 따라서 회귀 모델은 적절히 데이터에 적합하면서도 회귀 계수가 기하급수적으로 커지는 것을 제어할 수 있어야 한다.

  • 즉 최적의 모델이 되기 위한 손실 함수의 목표는 학습 데이터에 대한 잔차 오류도 최소화 되어야 하지만, 회귀 계수의
    크기 제어도 목적이 되어야 한다.


규제 선형 모델의 alpha의 역할

  • 𝛼0 또는 매우 작은 값이라면 손실 함수의 식은 기존과 동일한 𝐿𝑜𝑠𝑠(𝑥, 𝑦) = arg min_𝑤 𝑅𝑆𝑆(𝑊) + 0이 될 것이다.

  • 반면에 𝛼가 무한대 또는 매우 큰 값이라면 손실 함수 식은 𝑅𝑆𝑆(𝑊) 에 비해 𝛼∑𝑤**2 또는 𝛼∑|𝑤|의 값이 너무 커지게 되므로 𝑊를 작게 만들어야 손실이 최소화되는 비용 함수 목표를 달성할 수 있게 된다.

  • 𝛼값을 크게 하면 비용 함수는 회귀 계수 𝑊의 값을 작게 해 과적합을 개선할 수 있으며, 𝛼값을 작게 하면 회귀 계수 𝑊의 값이 커져도 어느 정도 상쇄가 가능하므로 학습 데이터 적합을 더 개선할 수 있게 된다.

  • 𝛼 = 0인 경우에는 𝑊가 커도 𝛼∑𝑤**2 또는 𝛼∑|𝑤|0이 되어 비용 함수는 arg min_𝑤 𝑅𝑆𝑆(𝑊)

  • 𝛼 = ∞인 경우에는 𝛼∑𝑤**2 또는 𝛼∑|𝑤| 역시 무한대가 되므로 비용 함수는 𝑊0에 가깝게 최소화 해야 한다.


  • 이처럼 손실 함수에 𝛼값으로 패널티를 부여해 회귀 계수 값의 크기를 감소시켜 과적합을 개선하는 방식을 규제(Regularization)라고 한다.

  • 규제는 크게 L2 방식과 L1 방식으로 구분된다.

    • L2 방식 𝐿𝑜𝑠𝑠(𝑥, 𝑦) = arg min_𝑤∑𝑅𝑆𝑆(𝑊) + 𝛼∑𝑤**2

    • L1 방식 𝐿𝑜𝑠𝑠(𝑥, 𝑦) = arg min_𝑤∑𝑅𝑆𝑆(𝑊) + 𝛼∑|𝑤|

  • 릿지(Ridge) 회귀는 L2 방식을 적용한 회귀이며, L2 방식을 적용하면 회귀 계수 값을 무한히 0에 가깝게 만들지만 0이 되진 않는다.

  • 라쏘(Lasso) 회귀는 L1 방식을 적용한 회귀이며, L1 방식을 적용하면 영향력이 크지 않은 회귀 계수 값을 0으로 반환한다.

  • 엘라스틱 넥(ElasticNet)은 L2, L1 방식을 결합한 모델로서, 주로 Feature가 많은 데이터 세트에 적용된다.
    L1 규제로 Feature의 개수를 줄임과 동시에 L2 규제로 계수 값의 크기를 조정한다.


릿지(Ridge) 회귀

  • 릿지 회귀는 𝛼값을 이용하여 회귀 계수의 크기를 조절한다.

    • 𝛼값이 크면 회귀 계수의 값이 작아진다.

    • 𝛼값이 작아지면 회귀 계수의 값이 커진다


라쏘(Lasso) 회귀

  • L2 규제가 회귀 계수의 크기를 감소만 시키는 데 반해, L1 규제는 불필요한 회귀 계수를 급격하게 감소시켜 0으로
    만들어 버리고 제거하는 역할이 있다.

  • 즉 L1 규제는 적절한 Feature만 회귀에 포함시키는 특성 선택(Feature Selection)의 특징도 가지고 있다.


엘라스틱 넷(Elastic Net) 회귀

  • ElasticNet 클래스의 주요 하이퍼 파라미터는 alphal1_ratio이다.

  • alpha

    • alpha 파라미터는 L1, L2 규제에 사용될 alpha의 합이다.

    • ∑𝑅𝑆𝑆(𝑊) + 𝛼2∑𝑤**2 + 𝛼1∑|𝑤| 에서 𝛼 = 𝛼2 + 𝛼1이 된다.

      • alpha=10, l1_ratio=0.7 이라면 𝛼1 = 10 × 0.7 = 7이 되고, 𝛼2 = 10 × 1 − 0.7 = 10 × 0.3 = 3이 된다.
  • l1_ratio

    • l1_ratio는 L1 규제에 사용할 alpha의 비율로서 𝛼1/(𝑎1 + 𝑎2)이다.

    • l1_ratio가 0이면 𝛼1 = 0이 되면서 L2 규제와 동일해 진다.

    • l1_ratio가 1이면 𝛼2 = 0이 되면서 L1 규제와 동일해 진다.

    • 0 < l1_ratio < 1 이면 L1과 L2 규제를 적절히 잘 적용한다.



📌 참고 문헌

profile
My path to becoming contributor from user

0개의 댓글