본문 바로가기
스터디/혼공학습단 10기 - 자바 & 머신러닝

[혼공학습단] 혼공머신 4주차 - 앙상블 모델 4가지 맛보기

by 찌노오 2023. 7. 29.

 

 

 

 

선택미션

주차 진도 선택 미션
4주차  Chatper 05 ch.05(05-3) 앙상블 모델 손코딩 코랩화면 인증하기

 

앙상블 모델

 앙상블(Ensemble)은 통일, 어울림를 뜻하는 프랑스어이다. 주로 음악에서 2인 이상이 하는 합주를 뜻한다. 

그래서 앙상블 모델은 여러 모델을 결합해 보다 정확한 모델을 만드는 방법이라 정의할 수 있다.

 

 보통 경험상 앙상블은 별도의 하이퍼파라미터를 주지 않아도 비교적 성능이 좋았는데, 여러 모델들이 결합되면서 기본적으로 오차가 줄어드는 원리를 가지고 있기 때문이라 생각했다.

 

타임스톤으로 미래보기 - 문과생이 이해한 앙상블모델은 이런 느낌이다.

 

책에서는 네 가지 앙상블 모델 방법을 소개하고 있다. 

각각의 방법들을 직접 손코딩해보면서 실습해보자.

 

  • 랜덤포레스트(Random Forest)
  • 엑스트라 트리(Extra Trees)
  • 그레이디언트 부스팅(Gradient Boosting)
  • 히스토그램 기반 그레이디언트 부스팅(Histogram-based Gradient Boosting)

 

직접 손코딩 하기 전에 데이터를 불러오자.

와인의 도수,당도, pH 값으로 레드와인과 화이트 와인 분류하기

 

랜덤 포레스트(Random Forest)

랜덤 포레스트는 의사 결정 트리(Decision Tree)의 앙상블 모델로, 여러 개의 의사 결정 트리를 만들고 이들을 조합하여 더 강력한 예측 모델을 구성한다. 각 트리는 랜덤한 샘플링과 랜덤한 특성 선택을 통해 다양성을 가진다. 이로 인해 과적합을 줄이고 일반화 성능을 향상시킬 수 있다.

 

데이터셋의 크기와 특성 수에 상대적으로 불변한 성능을 보여주는 장점이 있는데, 부트스트랩 샘플링(Bootstrap Sampling)이 원리 덕분이다. 데이터셋에서 무작위로 중복을 허용하여 샘플을 뽑아 새로운 데이터셋을 생성하는데, 기존 데이터셋의 크기와 동일하게 샘플링하며서도 일부 데이터는 중복으로 선택될 수 있다. 이를 통해 다양성이 증가하고 랜덤한 특성이 추가 되어 비교적 효과적인 예측모델을 만들 수 있다.

 

랜덤 포레스트는 분류(Classification)와 회귀(Regression) 모두에 사용될 수 있다.

 

엑스트라 트리(Extra Trees)

엑스트라 트리도 랜덤 포레스트와 유사한 의사 결정 트리의 앙상블 모델이다.

랜덤 포레스트와 차이점은 부트스트랩 샘플을 사용하지 않고 각 결정 트리를 만들 때 전체 훈련 세트를 사용한다는 점이다.대신 의사 결정 트리를 구성할 때 더욱 랜덤하게 분할하는데, 최적의 분할을 찾는 데에 있어서 더 많은 무작위성을 부여한다. 

 

하지만 무작위성이 증가하면서 일부 트리가 무의미한 분할을 만들 수 있으나, 랜덤하게 노드를 분할하기 때문에 오히려 솓고가 더 빠르다고 한다. 

 

실제 성능은 랜덤 포레스트와 유사하게 나왔다.

그레이디언트 부스팅(Gradient Boosting)

그레이디언트 부스팅은 이전 트리의 오차를 보완하는 방식으로 여러 개의 의사 결정 트리를 순차적으로 학습시키는 앙상블 기법이다. 

각 트리는 이전 트리의 예측과 실제 값 사이의 오차(residuals)를 줄이도록 학습된다. 이를 위해 경사 하강법(Gradient Descent)을 사용하며, 분류에서는 로지스틱 손실 함수, 회귀에서는 평균 제곱 오차함수를 사용한다.

그레이디언트 부스팅은 오차를 보완하는 방식으로 순차적으로 트리를 학습하므로, 데이터의 노이즈에 강하고 예측 성능이 우수하다는 특징이 있다.

 

실제로 손 코딩을 해보니 과대적합이 거의 일어나지 않는 성능을 보여준다.

 

히스토그램 기반 그레이디언트 부스팅(Histogram-based Gradient Boosting)

히스토그램 기반 그레이디언트 부스팅은 기존 그레이디언트 부스팅의 속도와 성능을 개선하기 위해 특별히 개발된 방법이다. 책에서는 정형 데이터를 다루는 머신러닝 알고리즘 중에서 가장 인기가 높은 알고리즘이라고 한다.

 

기존의 그레이디언트 부스팅은 이전 트리의 각 노드에서 모든 데이터를 사용하여 최적의 분할을 찾는다. 하지만 히스토그램 기반 그레이디언트 부스팅은 데이터를 사전에 구간화(히스토그램)하여 빠르고 효율적으로 분할을 수행한다. 이는 더 적은 시간과 메모리를 사용하여 더욱 큰 데이터셋에 대해 학습할 수 있게 해주는 특성을 가진다.

 

그레디언트 부스팅에 비해 조금 더 높은 성능을 보임을 알 수 있다.

 

 

마치며

앙상블 모델의 종류와 특성 그리고 실습까지 해보았다.

깊게 들어가면 하이퍼파라미터도 같이 정리하면서 실습할 수 있겠으나, 우선은 정리하는 차원에서 각각의 모델을 사용해보는데 의의를 두고 실습했다.

 

 

 

 

** 사실과 다른 내용이 있을 수 있습니다. 언제든지 피드백 부탁드립니다!

 

반응형

댓글