다시 이음

실전 예측 분석 모델링 - 5 더 알아보기 본문

AI 일별 공부 정리

실전 예측 분석 모델링 - 5 더 알아보기

Taeho(Damon) 2021. 9. 8. 17:25

안녕하세요.

 

간만에 돌아왔습니다.

 

머신러닝에 대해서 많을 걸 배운 1달이었는데 아직도 모자른게 한참 많은 거 같네요.

 

그래서 조금 더 알아보는 시간을 가지면 좋을 것 같아서 몇가지 포인트를 더 알아보려고 해요.

 

1. Ridge / Lasso / Elastic Net

2. 교차검증하는 이유

3. Stacked Ensemble

 

1. Ridge / Lasso / Elastic Net

 

릿지 회귀에 대해서는 Ridge 회귀 포스팅이 있음으로 그 포스팅을 확인하시면 좋을 것 같습니다.

 

그래도 설명을 조금 해볼게요.

 

위의 3가지의 회귀를 사용하는 이유는 과적합을 줄이기 위함입니다.

 

일반 선형회귀와 다른 점은 페널티(Lambda)값을 주어서 이상치(outlier) 때문에 전체적인 오류값이 높아지는 것을 방지 할 수 있습니다.

 

Norm 값 참고

 

1) Ridge 회귀

 

릿지 회귀는 L2-Norm을 사용한 회귀입니다.

이 회귀방법은 일반적으로 영향을 거의 미치지 않는 특성에 대하여 0에 가까운 가중치를 주게 됩니다. 

 

2) Lasso 회귀

 

라쏘 회귀는 L1-Norm을 사용한 회귀입니다.

특성값의 계수가 매우 낮다면 0으로 수렴하게 하여 특성을 지워버립니다.

Ridge보다 특성의 가중치를 0에 더 쉽게 수렴하게 하여 주요 특성빼고는 거의다 지워진다고 보시면 됩니다.

 

 

릿지는 페널티가 원형, 라쏘는 페널티가 사각형

 

3) Elastic Net

 

엘라스틱 넷은 라쏘회귀와 릿지회귀의 최적화 지점이 서로 다르기 때문에 두 정규화 항을 합쳐서 r로 규제정도를 조절하여 줍니다.

 

위의 그래프에서 제약조건인 원형과 사각형의 사이의 도형을 취합니다.

 

 

2. 교차검증(CV)하는 이유

 

1. 모든 데이터 셋을 평가에 활용할 수 있다.

- 평가에 사용되는 데이터 편중을 막을 수 있다.

(특정 평가 데이터 셋에 overfit 되는 것을 방지할 수 있다.)

- 평가 결과에 따라 좀 더 일반화된 모델을 만들 수 있다.

 

2. 모든 데이터 셋을 훈련에 활용할 수 있다.

- 정확도를 향상시킬 수 있다.

- 데이터 부족으로 인한 underfitting을 방지할 수 있다.

 

 

3. Stacked Ensemble

 

먼저 앙상블의 종류에 대해서 알아보겠습니다.

 

- voting : 서로 다른 알고리즘을 가진 분류기가 같은 데이터셋을 기반으로 학습되고 결합하는 것.

- bagging : 샘플을 여러 번 뽑아(Bootstrap) 각 모델을 학습시켜 결과물을 집계(Aggregration)하는 방법.

- boosting : 가중치를 활용하여 약 분류기를 강 분류기로 만드는 방법, 점차적으로 오류를 줄여갑니다.

- stacking : 여러 모델을 통해 첫번째 예측값들을 뽑고, 뽑은 예측값들을 다시 train 데이터로 삼아 또 다시 단일모델 학습을 통해 예측값을 도출하는 것.

 

스테이킹 방법 순서도

 

스테이킹 방법은 라이브러리가 지원하지 않기때문에 사용자가 직접 코드를 짜고 만들어야 하기때문에 효율적 측면에서는 뒤떨어져서 다른 앙상블 방법보다 사용이 잘 안된다고 합니다.

 

그러나, kaggle과 같이 성능의 최대화가 필요한 곳에는 어김없이 stacking이 나온다고 하니 참고해주세요.