오늘은 Ridge, Lasso, ElasticNet에 대해 간략하게 설명해보고자 한다.

 

우리가 지금까지 사용해온 Machine Learning Algorithm인 Linear Regression은

 

비용 함수인 mse를 최소화하는 방향으로 머신러닝 모델이 학습을 진행하게 된다.

하지만, 칼럼의 개수(독립변수의 개수)가 많아질수록 과적합될 가능성이 높아진다. 따라서,

어느 정도의 "규제"를 줌으로써 과적합되는 것을 방지하는 Ridge, Lasso가 등장하였고,

그 둘을 적절히 혼합하여 사용하는 ElasticNet이 등장하였다.


Ridge

릿지는, 기존 회귀분석의 비용함수에 어떠한 규제를 추가함으로써 진행된다.

다음과 같이  Beta_Hat 부분이 우리가 찾아야 할 점이라고 생각해보자.

회귀 함수의 MSE는 weight^2인 부분들의 미분 = 0인 부분을 찾아나가는 과정이다.

그런데, 최적점인 부분은 과적합될 가능성이 높기 때문에, Ridge를 통해 과적합이 되지 않도록 규제해준다.

원은 각각 세타1,세타2의 0,0을 중심으로 한 다고 생각하면, 

타원과 원이 만나는 지점의 세타1, 세타 2의 값이 각각 해당하는 변수의 가중치가 되겠다.

이 가중치는 아래에서 설명할 LASSO처럼 0으로 만들지는 않지만, 중요하지 않은 변수를 0과 가깝게 만들어

줌으로써 과적합을 방지한다고 생각하면 된다.


LASSO

라쏘 또한 릿지와 마찬가지로 기존 회귀분석의 비용 함수에 규제를 추가하여준다.

릿지는 제곱값들의 합, 라쏘는 절댓값들의 합 규제가 각각 추가된다고 생각하면 된다.

 

절댓값인 점을 통해, 다음과 같이 마름모 형태로 LASSO의 세타들은 표현되게 되고, 최적의 비용 함수 mse는 점차 그 값을 늘려가면서 LASSO와 만나는 점에서 멈춘다. 만나는 지점을 보면, 베타 1이 0인 지점에서 만나게 되어, 베타 1을 상수항으로 갖는 변수는 0이 되어 변수가 회귀에 끼치는 영향이 0이 되게 된다.

 

이에 따라, LASSO를 필요 없는 변수를 제외시키기 위해서도 종종 사용된다고 한다.


ElasticNet

엘라스틱 넷은 위에서 보았던 Ridge와 Lasso를 적절히 사용하여 회귀식을 규제한다.

 

Ridge, Lasso 모두 시그마 앞에 알파 값을 통해 규제 정도를 얼마나 줄지 조절해 줄 수 있다.

파이썬 sklearn의 Ridge와 Lasso 알고리즘에는 알파에 해당하는 Hyperparameter가 존재, 그 값을 조정함으로써

규제를 강하게 줄지, 적절히 줄지, 약하게 줄지 사용자가 조절해줄 수 있다.

+ Recent posts