본문 바로가기
머신러닝/앙상블 기법

앙상블 기법

by 미생22 2024. 5. 8.
728x90

지난시간 공부했던 로지스틱 회귀는 일종의 선형 분류 알고리즘으로, 주어진 입력 변수에 대해 이진 분류 문제를 해결하는 데 사용됩니다. 로지스틱 회귀는 선형 결합을 통해 로지스틱 함수를 적용하여 클래스에 속할 확률을 추정합니다.

반면, 앙상블 기법은 여러 개의 분류 또는 회귀 모델을 결합하여 더 나은 예측을 만들어내는 기법을 일컫습니다. 이러한 앙상블 기법에는 여러 가지 종류가 있습니다. 대표적으로는 랜덤 포레스트(Random Forest), 그래디언트 부스팅(Gradient Boosting), 에이다부스트(AdaBoost) 등이 있습니다.

앙상블 기법은 여러 모델을 결합하여 더 강력한 예측 모델을 형성하는 데 사용되지만, 로지스틱 회귀는 단일 모델로 이진 분류 문제를 해결하는 데 사용됩니다.

 

앙상블 개요

여러개의 분류기를 생성하고 그 예측을 결합해 정확한 최종 예측을 기대하는 기법이고, 앙상블 학습을 통해 다양한 분류기의 예측 결과를 '결합' 함으로써 단일 분류기보다 신뢰성이 높은 예측값을 얻는 것입니다. 현재 정형데이터를 대상으로 하는 분류기에서 앙상블 기법이 뛰어난 성과를 보여주고 있습니다.

 

1. voting기법

전체 데이터 셋에서 각각 다른 알고리즘 모델을 다 돌려봅니다. logistic regression, decision tree, knn등등 아는건 다 돌려보고 다수결에 의해 최종 결정하는 방식입니다.

 

2. bagging

같은 알고리즘을 쓰고있지만, 데이터 셋에서 랜덤하게 sampling을 해서 그 데이터에 알고리즘을 돌린 후 얻어지는 결과입니다. 하나의 알고리즘이 전체 데이터셋을 담당하는 건 아닙니다. 다시말해 bagging의 경우 데이터의 중복을 허용해서 샘플링하고 그 각각의 데이터에 같은 알고리즘을 적용해서 결과를 투표로 정하는 겁니다. 이렇게 각각의 분류기에 데이터를 각각 샘플링해서 추출하는 방식을 부트스트래핑(bootstrapping) 분할방식 이라고 합니다.

* 배깅(bagging)은 부트스트래핑(bootstrapping)을 기반으로 한 앙상블 학습 방법 중 하나입니다.

 

결정 방법에서의 하드보팅

모두가 1이라고 하고 하나만 2라고 하면 2를 제거하고 1이라고 믿는 다수결의 원칙과 비슷합니다. 위에 voting 기법은 기법 중하나인 것이고 이건 결정방법에서의 voting입니다.

 

결정 방법에서의 소프트보팅

1일 확률 0.9, 1일 확률 0.8, 2일 확률 0.7 근데 1일 확률 0.4가 나온겁니다. 이럴 때 확률의 평균을 구합니다. 즉 0.9,0.8,0.4를 더한 후 3으로 나눈 값을 1의 확률이라고 보는겁니다. 이렇게하면 0.7이 나와서 동률이 나와서 다수결을 따라갑니다. 즉 확률의 평균을 따라가는게 소프트보팅입니다.

 

Random Forest (랜덤포레스트)

Decision tree 여러개를 사용해서 투표하는 방식으로 Tree가 여러개라서 Forest라고 표현하는 겁니다. ㅎㅎ

랜덤 포레스트는 같은 알고리즘으로 구현하는 배깅(Bagging)의 대표적인 방법이고, 앙상블 방법 중에서 비교적 속도가 빠르며 다양한 영역에서 높은 성능을 보여주고 있습니다.(부트 스트래핑은 여러개의 작은 데이터 셋을 중첩을 허용해서 만드는 것입니다.)

랜덤 포레스트는 마지막으로 결정 나무를 기본으로 합니다. 부트스트래핑으로 샘플링 된 데이터마다 결정나무가 예측한 결과를 소프트 보딩으로 최종 예측 결론을 얻습니다.

 

이미지나 영상같은 비정형 데이터들은 딥러닝이 훨씬 좋습니다. 그런데 정형 데이터 혹은 table 데이터 혹은 엑셀 데이터, record data라고 부르는 표로 되어있는 데이터는 아직까지는 머신러닝이 훨씬 좋습니다.

728x90