티스토리 뷰

 

라쏘 회귀(L1 Regularization), 릿지 회귀(L2 Regularization)에 대해 알아본다.

 

회귀분석의 성능을 평가할 때, 대부분 실제값과 예측값의 차이를 가지고 평가한다.

둘의 관계만을 확인하면, 회귀계수에 대해 과적합이 일어날 수 있다.

 

Regularization

최적 모델을 위한 비용함수의 구성요소 : 학습데이터 잔차 오류 최소화(RSS 선형회귀의 비용함수 개념) + 회귀계수 크기 제어(규제를 통해 과적합 현상을 낮추고, 일반화할 수 있도록 진행 회귀 계수를 규제)

비용 함수의 목표 : $ Min(RSS(W)+\alpha \ast \begin{Vmatrix}W\end{Vmatrix}$

 

 

가중치 규제

모델의 손실 함수 값이 너무 작아지지 않도록 특정한 값(함수) 추가

Weight 값이 과도하게 커지는 것 방지 및 데이터의 일반화 반영 가능

종류 : L1(Lasso), L2(Ridge)

 

L1 norm 

특정 방향으로만 움직일 수 있 경우, 두 벡터 간의 최단 거리 찾기

L1 norm (Manhattan distance) : $d = |a_1-b_1|+|a_2-b_2|$

L1 Loss Function : $L = \sum_{i=1}^{n}|y_i-f(x_i)|$ 

 

L2 norm

두 점 사이의 최단 거리

L2 norm (Manhattan distance) : $d = \sqrt{(a_1-b_1)^2+(a_2-b_2)^2}$

L2 Loss Function : $L = \sum_{i=1}^{n}(y_i-f(x_i))^2$

 

 

L1 Regularization (Lasso Regression)

$$\textrm{Cost} = \sum_{i=0}^{N}(y_i-\sum_{j=0}^{M}x_{ij}W_j)^2 + \lambda \sum_{j=0}^{M}|W_j|$$

$$ w \to w - \frac{\eta \lambda }{n}sgn(w)-\eta \frac{\partial C_0}{\partial w}$$

$$sgn(w) = \left\{\begin{matrix}1, & w>0 \\0, & w=0 \\-1, & w<0  \\ \end{matrix}\right.$$

파라미터 $\alpha$

정규화 강도를 조절하는 파라미터로, 값이 클수록 규제가 강해져 많은 가중치가 0으로 수렴한다.

특성 선택 효과를 제공하여 일부 가중치를 0으로 만들며, 이는 모델을 희소하게 만들어 해석력을 높인다.

범위는 일반적으로 0 이상이고, 0에 가까우면 규제가 약해지고, 큰 값이면 규제가 강해진다.

 

 

L2 Regularization (Ridge Regression)

$$\textrm{Cost} = \sum_{i=0}^{N}(y_i-\sum_{j=0}^{M}x_{ij}W_j)^2+\lambda \sum_{j=0}^{M}W_j^2$$

$$w\to w-\eta \frac{\partial C_0}{\partial w}-\frac{\eta \lambda }{n} = (1-\frac{\eta \lambda }{n})w-\eta \frac{\partial C_0}{\partial w}$$

 

파라미터 $\alpha$

정규화 강도를 조절하는 파라미터로, 값이 클수록 규제(regularization) 강도가 강해져 가중치가 더 작아진다.

모델이 과적합되는 것을 방지하고, $\alpha$가 너무 크면 모델이 과대적합되기 쉬우며, 너무 작으면 모델이 과소적합될 수 있다.

범위는 일반적으로 0 이상이고, 0에 가까우면 규제가 약해지고, 큰 값이면 규제가 강해진다.

 

 

ElasticNet Regression

L1규제와 L2규제를 결합한 회귀로, 비용함수 $RSS(W)+\alpha_1*||W||+\alpha_2*||W||$ 식을 최소화하는 $W$를 찾는 것이다.

 

파라미터 $\alpha$

L1과 L2 정규화의 전체 강도를 조절하는 파라미터이다.

모델이 과적합되는 것을 방지하며, alpha가 너무 크면 모델이 과대적합되기 쉬우며, 너무 작으면 모델이 과소적합될 수 있다.

범위는 일반적으로 0 이상이고, 0에 가까우면 규제가 약해지고, 큰 값이면 규제가 강해진다.

 

파라미터 l1_ratio

L1 정규화와 L2 정규화 간의 비율을 조절하는 파라미터로, 0이면 Ridge, 1이면 Lasso와 유사해진다.

L1과 L2 규제를 혼합하여 모델을 최적화하고, l1_ratio가 0에 가까울수록 L2 규제가 강해지고, 1에 가까울수록 L1 규제가 강해진다.

범위는 0과 1 사이의 값이다.

 

엘라스틱넷의 규제는 a*L1 + b*L2로 정의될 수 있으며, 이 때 a는 L1규제의 $\alpha$값, b는 L2규제의 $\alpha$값이다. 따라서 ElasticNet 클래스의 $\alpha$ 파라미터 값은 a+b이다. 또한, ElasticNet클래스의 l1_ratio 파라미터 값은 a/(a+b)입니다. l1_ratio가 0이면 a가 0이므로 L2규제와 동일하고, l1_ratio가 1이면 b가 0이므로 L1규제와 동일하다.

 

 

L1 규제와 L2 규제 중 어떤 것을 써야하는가?

L1 norm은 다른 점으로 이동하는데 다양한 방법이 있으며, L2 norm은 한 가지 방법이 있다.

데이터의 특성에 따라 다르지만, 기본적으로 Outlier 값들이 많은 경우 L2가 영향을 더 많이 받을 수 있다.

L1의 경우는 weight의 부호만 남게 되고, weight의 크기에 따라 규제의 크기가 변하지 않는 경우가 있으며, L2 보다는 효과가 떨어질 수 있다.

L2 norm은 오차의 제곱을 사용하기에 L1보다는 outlier에 민감할 수 있다.

어떤 것이 좋다라고 판단하는 것보다는 결국 데이터의 패턴을 보고 사용하는 것이 중요하다.

 

 

 

규제 실습 코드

 

2024_B.D.A_Data-Analysis-Modeling/Data_Analysis_Modeling/11주차_규제.ipynb at main · SeonHoYoo/2024_B.D.A_Data-Analysis-Mod

Contribute to SeonHoYoo/2024_B.D.A_Data-Analysis-Modeling development by creating an account on GitHub.

github.com

 

 

공지사항
최근에 올라온 글
Total
Today
Yesterday