top of page
  • 작성자 사진hcubedad

머신러닝 앙상블 기법

머신러닝 플로우 트

머신 러닝(ML)은 인간이 학습하는 방식을 모방하기 위해 데이터와 알고리즘의 사용에 초점을 맞춘 인공지능(AI)의 한 분야입니다. 기본적으로 알고리즘을 이용해 데이터를 분석하고 학습하며, 학습한 내용을 기반으로 판단이나 예측을 합니다. 따라서 궁극적으로는 의사 결정 기준에 대한 구체적인 지침을 소프트웨어에 직접 코딩해 넣는 것이 아닌, 대량의 데이터와 알고리즘을 통해 컴퓨터 그 자체를 ‘학습’ 시켜 작업 수행 방법을 익히는 것을 목표로 합니다.


머신러닝 알고리즘은 크게 3가지로 분류됩니다.

•    지도학습 : 지정된 데이터 세트를 학습

•    비지도 학습 : 레이블이 지정되지 않고 변수가 없는 데이터에서 알고리즘 패턴을 분석하여 학습

•    강화학습 :  자신의 행동에 대한 보상이나 벌칙의 형태로 피드백을 받아 시행착오를 통해 학습


이 외에 업그레이드 된 형태로 컴퓨터가 사람처럼 생각하고 배울 수 있도록 하는 인공 신경망 기반의 딥러닝과 여러 개의 분류기를 생성하고 각 예측들을 결합함으로써 보다 정확한 예측을 도출하는 앙상블 기법이 있습니다.


앙상블 (Ensemble)은 통일, 조화를 뜻하는 프랑스어와 같이 머신러닝에서 앙상블도 여러 개의 분류기를 생성하고 각 예측들을 결합함으로써 보다 정확한 예측을 도출하는 기법입니다. 앙상블 기법은 많은 모델이 있기 때문에, 한 모델에서 예측을 엇나가게 되더라도, 어느 정도 보정이 되는 장점이 있습니다.

앙상블 기법의 종류에는 보팅, 배깅, 부스팅이 있습니다.


앙상블기법 보팅 배깅 부팅

1. 보팅(Voting)

먼저 보팅은 서로 다른 알고리즘으로 예측하고 예측한 결과를 가지고 투표하듯 보팅을 통해 최종 예측 결과를 선정하는 방식입니다. 알고리즘에는 흔히 알고 있는 결정 트리(Decision tree)나 KNN(K-Nearest Neighbor), 로지스틱(Logistic)이 있습니다.

보팅 방식도 하드 보팅과 소프트 보팅으로 나눌 수 있습니다.


1)   하드 보팅

하드 보팅은 다수결 원칙과 비슷합니다. 여러 개의 예측 결과 중 다수의 분류기가 결정한 예측값을 최종 보팅 결과값으로 선정합니다.

하드 보팅

2)   소프트 보팅

소프트 보팅은 각 예측 결과의 레이블 값 결정 확률들의 평균값이 높은 레이블 값을 최종 보팅 결과값으로 선정합니다. 일반적으로 소프트 보팅을 기본으로 합니다.

소프트 보팅

2. 배깅 Bagging

배깅은 Bootstrap Aggregating의 약자로 부트스트랩(Boostrap)을 이용합니다. 부트스트랩이란 주어진 데이터셋에서 랜덤 샘플링하여 새로운 데이터셋을 만들어내는 것을 의미합니다. 부트스트랩을 통해 만들어진 여러 데이터셋을 바탕으로 예측력이 약한 모델을 훈련시킨 뒤, 결과를 보팅 합니다.

배깅의 대표적인 알고리즘은 랜덤 포레스트입니다. 랜덤 포레스트는 앙상블 알고리즘 중 비교적 빠른 수행 속도를 가지고 있으며 다양한 영역에서 높은 예측 성능을 보입니다. 그림 5 처럼 여러 개의 결정 트리 분류기가 전체 학습 데이터에서 배깅 방식으로 각자의 데이터를 샘플링해 개별적으로 학습을 수행한 뒤 최종적으로 모든 분류기가 보팅을 통해 예측 결정을 합니다.


머신러닝 배깅

3. 부스팅(Boosting)

부스팅 알고리즘은 여러 개의 약한 모델을 순차적으로 학습과 예측을 반복합니다. 그리고 잘못 예측한 데이터에 가중치를 부여합니다. 이렇게 하면, 오류를 개선하며 반복할 때마다 각 샘플의 중요도에 따라 다른 분류기가 만들어집니다. 최종적으로 각 단계에서 생성된 모델의 결과를 보팅합니다.

 부스팅은 크게 AdaBoost와 GBM이 있습니다.

머신러닝 부스팅



Comments


게시글1
한글 로고.png
bottom of page