Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

앙상블 분류기를 구성하는 4가지 핵심 방법

앙상블(Ensemble) 기법의 기본 개념은 초기 데이터로부터 여러 개의 분류기를 만들고, 알려지지 않은 새로운 예제를 예측할 때 이들의 결과를 종합하여 최종 판단을 내리는 것입니다. 앙상블 분류기는 다양한 방식으로 구성할 수 있으며, 대표적인 네 가지 방법을 아래에서 자세히 살펴보겠습니다.

1. 훈련 데이터셋을 조작하는 방법

이 방법은 원본 데이터를 특정 샘플링 분포에 따라 재표본화(resampling)하여 여러 개의 훈련 데이터셋을 생성하는 방식입니다. 샘플링 분포는 각 인스턴스가 훈련용으로 선택될 확률을 결정하며, 시행(트라이)마다 달라질 수 있습니다.

생성된 각 훈련 데이터셋에는 지정된 학습 알고리즘을 적용하여 하나의 분류기를 구축합니다. 배깅(Bagging)부스팅(Boosting)이 바로 훈련 데이터셋을 조작하는 대표적인 앙상블 기법입니다.

2. 입력 특징(feature)을 조작하는 방법

이 방법은 각 훈련 데이터셋을 구성하기 위해 입력 특징(feature)의 부분집합을 선택하는 방식입니다. 부분집합은 무작위로 선택하거나, 해당 도메인 전문가의 추천에 따라 선정할 수도 있습니다.

여러 연구에 따르면 이 방법은 중복되는 특징이 매우 많은 데이터셋에서 특히 뛰어난 성능을 보입니다. 랜덤 포레스트(Random Forest)가 바로 입력 특징을 조작하는 앙상블 기법의 대표 사례로, 의사결정나무(decision tree)를 기반 분류기로 사용합니다.

3. 클래스 레이블을 조작하는 방법

이 방법은 클래스의 수가 충분히 많을 때 활용할 수 있습니다. 훈련 데이터를 이진 분류 문제로 변환하기 위해, 클래스 레이블을 A0와 A1처럼 서로 겹치지 않는 두 개의 분리된 부분집합으로 무작위 나눕니다.

클래스 레이블이 부분집합 A0에 속하는 훈련 인스턴스는 클래스 0으로, A1에 속하는 인스턴스는 클래스 1로 재할당됩니다. 이렇게 레이블이 변경된 인스턴스를 사용해 기반 분류기를 학습시킵니다.

이러한 클래스 재레이블링과 모델 구축 단계를 여러 번 반복하면 기반 분류기들의 앙상블을 얻을 수 있습니다.

테스트 인스턴스의 예측 과정

테스트 인스턴스가 주어지면 각 기반 분류기 Ci는 자신이 예측한 클래스 레이블을 출력합니다. 만약 테스트 인스턴스가 클래스 0으로 예측되었다면, 부분집합 A0에 속한 모든 클래스에 투표(vote)가 주어집니다.

4. 학습 알고리즘을 조작하는 방법

일부 학습 알고리즘은 동일한 훈련 데이터에 알고리즘을 여러 번 적용했을 때 서로 다른 여러 모델이 생성되도록 조작할 수 있습니다.

예를 들어, 인공 신경망(ANN)은 네트워크 위상(topology)이나 뉴런 간 연결의 초기 가중치를 변경함으로써 여러 모델을 만들어낼 수 있습니다. 마찬가지로, 의사결정나무의 경우 트리를 성장시키는 과정에 무작위성(randomness)을 주입하여 앙상블을 구성할 수 있습니다.

방법별 적용 범위와 구축 순서

앞의 세 가지 방법(훈련 데이터셋, 입력 특징, 클래스 레이블 조작)은 어떤 종류의 분류기에도 적용할 수 있는 범용(generic) 기법입니다. 반면 네 번째 방법(학습 알고리즘 조작)은 사용하는 분류기의 유형에 따라 달라집니다.

또한 기반 분류기들은 순차적(sequential)으로 하나씩 생성하거나, 병렬적(parallel)으로 동시에 생성할 수 있습니다.

훈련 데이터셋 생성 절차

첫 번째 단계는 원본 데이터 D로부터 훈련 데이터셋을 생성하는 것입니다. 사용하는 앙상블 기법의 유형에 따라 훈련 데이터셋은 D와 정확히 같거나 D를 약간 변형한 형태가 됩니다.

훈련 데이터셋의 크기는 원본 데이터와 동일하게 유지되지만, 인스턴스의 분포까지 동일하지는 않습니다. 즉, 일부 인스턴스는 훈련 데이터셋에 여러 번 나타날 수 있고, 다른 일부 인스턴스는 한 번도 나타나지 않을 수도 있습니다.