정규화가 적용된 regression

한상우·2024년 9월 30일

기초 통계학

목록 보기
13/15

Norm

  • Norm : 선형 대수에서 벡터의 크기(길이)를 측정하는 방법으로 주로 데이터의 크기나 거리, 복잡도를 계산하는데 사용한다.

    벡터 x=(x1,x2,...,xn)x = (x_1, x_2, ..., x_n)에 대한 pnormp-norm은 다음과 같이 정의한다.

    xp=(i=1nxip)1p||x||_p = (\sum_{i=1}^n|x_i|^p)^{1\over p}

    여기서 pp값(p1p \geq 1, pRp \in \mathbb R)에 따라 norm의 종류가 다르다.


  • L1-norm (Manhattan Norm, Taxicab Norm) : p=1p = 1

    x1=(i=1nxi)||x||_1 = (\sum_{i=1}^n|x_i|)

    • 벡터의 각 성분의 절대값의 합으로 정의한다. 벡터의 각 성분들이 원점에서 얼마나 떨어져 있는 거리를 모두 합한 값으로, 길의 방향에 따라 이동하는 자동차의 경로처럼 각 성분을 독립적으로 더하는 방식이다.
  • L2-norm (Euclidean Norm) : p=2p = 2

    x2=(i=1nxi2)12||x||_2 = (\sum_{i=1}^n|x_i|^2)^{1\over 2}

    • 벡터의 각 성분의 제곱을 모두 더한 후, 그 합의 제곱근으로 정의한다. 원점에서 벡터 끝점까지의 직선거리를 계산하며, 흔히 사용하는 유클리드 거리와 동일하다.


Lasso Regression

  • OLS의 손실함수(MSE)에 회귀계수 벡터의 L1-norm을 추가해준다.

    J(β)=i=1n(yiXiβ)2+λj=1pβjJ(\beta) = \sum_{i=1}^n (y_i-X_i\beta)^2 + \lambda \sum_{j=1}^p |\beta_j|

    • i=1n(yiXiβ)2\sum_{i=1}^n (y_i-X_i\beta)^2 : MSE (잔차 제곱합, RSS)

    • λ\lambda : 정규화 정도

    • j=1pβj\sum_{j=1}^p |\beta_j| : L-1 정규화 항

  • 회귀 직선은 위 손실함수를 최소화하는 방향으로 결정된다. 이때 단순히 데이터에 잘 맞추는 것뿐만 아니라 회귀 계수의 크기까지 최소화하려고 하므로, 더 단순하고 일반화된 모델을 생성하게 된다.

Ridge Regression

  • OLS의 손실함수(MSE)에 회귀계수 벡터의 L2-norm을 추가해준다.

    J(β)=i=1n(yiXiβ)2+λj=1pβj2J(\beta) = \sum_{i=1}^n (y_i-X_i\beta)^2 + \lambda \sum_{j=1}^p \beta_j^2

    • i=1n(yiXiβ)2\sum_{i=1}^n (y_i-X_i\beta)^2 : MSE (잔차 제곱합, RSS)

    • λ\lambda : 정규화 정도

    • j=1pβj2\sum_{j=1}^p \beta_j^2 : L-2 정규화 항

  • Lasso와 마찬가지로 손실함수가 회귀 계수의 크기까지 최소화하려고 하므로, 더 단순하고 일반화된 모델을 생성하게 된다.

Lasso VS Ridge

  • 정규화 방식 및 정도에 따른 차이

    • Lasso의 경우 L-1 정규화를 사용하기 때문에 비용 함수의 최소점을 찾기 위해 회귀계수의 벡터 공간을 이동할 때 축(axis)에 평행하게 이동한다. 이때, 비용 함수의 최소점이 특정 축 위에 있거나, 축이 교차하는 경계점에 위치한 경우 일부 계수가 정확히 0이 될 수 있다.

      • 정규화 정도가 클수록 더 많은 회귀 계수들이 0으로 수렴하게 되어, 불필요한 피처를 자동으로 제거하고 중요한 피처만을 남기는 변수 선택 기능을 제공한다. 이러한 특성은 모델을 간결하고 해석하기 쉽게 해준다.
    • Ridge의 경우 L-2 정규화를 사용하기 때문에, 비용 함수의 최소점을 찾기 위해 회귀계수의 벡터 공간을 이동할 때 원점이 중심이고 반지름이 가변적인 원(또는 구) 형태를 따라 이동하게 된다. 따라서 최적화 과정에서 모든 회귀계수가 균등하게 줄어들며 특정 계수만 0이 되지는 않는다.

      • Ridge의 경우 정규화 정도가 클수록 모든 회귀 계수들이 작아진다.
  • 정규화 강도가 0인 경우는 Lasso와 Ridge 모두 OLS와 동일하게 동작한다.


  • 회귀계수의 차이 시각화 : 실제 데이터에 Lasso와 Ridge를 적용하여 위에서 언급한 차이점에 대해 시각적으로 확인할 수 있다.


  • 정규화와 다중공선성

    다중공선성에 의해 발생하는 문제는 크게 두가지로 정리할 수 있다.

    • 모델 관점 : 회귀 계수의 예측 오차 변동성이 매우 커질 수 있다. 독립 변수들 간의 높은 상관관계로 인해 약간의 데이터 변화만으로도 회귀 계수가 크게 변동하게 되며 결과적으로 모델의 예측 성능이 불안정해진다. 따라서, 훈련 데이터에는 잘 맞더라도 새로운 데이터에 대한 일반화가 어려워진다.
    • 분석 관점 : 변수들이 서로 대체 가능한 정보를 담고 있는 상황을 의미한다. 이로 인해 어떤 변수가 예측에 더 중요한 역할을 하는지 명확히 이해하기 어려워진다. 특히 변수 간의 상관관계가 높다면, 모델이 특정 변수 하나만 선택하거나 상관된 변수들 간의 기여도를 명확히 구분하지 못하해 분석적 관점에서의 혼란이 발생할 수 있다.
  • Lasso 회귀는 일부 회귀 계수를 0으로 만드는 특성으로 인해 상관관계가 높은 독립 변수들 중 하나만을 임의로 선택하게 되는 경향이 있다. 이때, 회귀 계수의 예측 오차 변동성이 커져 모델 관점에서의 문제가 발생한다. 또한, 인해 중요한 정보를 포함하는 변수를 제거할 수 있어 분석 관점의 문제도 있다.

  • Ridge의 경우 모든 회귀계수들을 유지하면서 회귀 계수들의 크기를 제한한다. 따라서 높은 상관관계를 가지는 독립변수들의 계수가 함께 줄어들어 서로 균형을 이루게 된다. 이로 인해 회귀계수의 예측오차의 변동성이 줄어들고, 모델 관점에서의 다중공선성 문제는 완화할 수 있다. 하지만 변수 간의 높은 상관관계가 존재하는 상황에서 어떤 변수가 더 중요한지를 명확히 밝히는 것은 어려우며, 변수들의 상대적 중요성이 희석될 수 있기 때문에 분석 관점에서의 문제는 해결할 수 없다.

Elastic Net Regression

  • OLS의 손실함수에 회귀계수 벡터의 L1-norm과 L2-norm을 모두 추가해준다.

    J(β)=i=1n(yiXiβ)2+λ1j=1pβj+λ2j=1pβj2J(\beta) = \sum_{i=1}^n (y_i-X_i\beta)^2 + \lambda_1 \sum_{j=1}^p |\beta_j| + \lambda_2 \sum_{j=1}^p \beta_j^2

    • i=1n(yiXiβ)2\sum_{i=1}^n (y_i-X_i\beta)^2 : MSE (잔차 제곱합, RSS)

    • λ1\lambda_1 : L-1 정규화 정도

    • λ2\lambda_2 : L-2 정규화 정도

    • j=1pβj\sum_{j=1}^p |\beta_j| : L-1 정규화 항

    • j=1pβj2\sum_{j=1}^p \beta_j^2 : L-2 정규화 항

  • Lasso와 Ridge의 장점을 결합한 회귀 기법으로, 상관관계가 높은 변수들이 함께 선택될 수 있도록 하면서도 불필요한 변수는 제거하는 기능을 제공한다. 이를 통해 자동 피처 선택과 다중공선성 완화를 동시에 수행할 수 있다.


  • sklearn 파라미터

    • alpha : 정규화의 전체 강도를 조절하는 파라미터
    • l1_ratio : L1과 L2 정규화의 비율을 결정하는 파라미터로 [0, 1] 사이의 값을 갖는다
from sklearn.linear_model import ElasticNet
# Elastic Net 학습
elastic_net = ElasticNet(alpha=1.0, l1_ratio=0.5, random_state=42)
elastic_net.fit(X_train_scaled, y_train)

λ1=alpha×l1 ratio\lambda_1 = \text{alpha} \times \text{l1 ratio}
λ2=alpha×(1l1 ratio)\lambda_2 = \text{alpha} \times (1 - \text{l1 ratio})

l1_ratio = 0이면 Ridge 회귀와 동일하게 작동하며, L2 정규화만 사용된다
l1_ratio = 1이면 Lasso 회귀와 동일하게 작동하며, L1 정규화만 사용된다.

  • 파라미터를 적절하게 설정하여 CV를 진행하면 OLS, Ridge, Lasso, Elastic Net 한번에 확인 가능하다.

정리

특징LassoRidgeElastic Net
정규화 방식L1L2L1 + L2
다중공선성(모델) 완화XOO
과적합 방지OOO
자동 피처 선택OXO
profile
개인 공부용 블로그입니다

0개의 댓글