앙상블(Ensemble) – 부스팅(Boosting)

1. 부스팅(Boosting) 이란?

– Bagging과 유사하게 초기 샘플 데이터를 조작하여 다수의 분류기를 생성하는 기법 중 하나
– Bagging과의 큰 차이는 순차적(Sequential) 방법이라는 것
– Bagging의 경우 각각의 분류기들이 학습시에 서로 상호 영항을 주지 않고 그 결과를 종합하는 반면, Boosting은 이전 분류기의 학습 결과를 토대로 다음 분류기의 학습 데이터의 샘플 가중치를 조정하여 학습을 진행함.
– 일반적으로 부스팅 알고리즘은 의사결정나무 모형을 주로 사용함.

2. 기본 앙상블 VS 배깅 VS 부스팅

– 기존 앙상블의 경우 하나의 전체 데이터를 활용하여 서로 다른 학습 분류기를 통합하는 방법
ensemble
– 배깅의 경우 전체 데이터에서 여러 샘플링 데이터를 추출하여 서로 다른 학습 분류기를 통합하는 방법
Bagging
– 부스팅의 경우 전체 데이터에서 여러 샘플링 데이터를 추출하여 순차적으로 이전 학습 분류기의 결과를 토대로 다음 학습 데이터의 샘플 가중치를 조정하면서 학습을 진행
boosting

3. SAS 실습

– 데이터 다운로드 : letterrecognition.zip (0 downloads) (압축 해제 후 C:\Users\사용자 이름\Documents\My SAS Files\9.4 에 저장)

1) 데이터 설명

– UCI(https://archive.ics.uci.edu/ml/datasets/Letter+Recognition)에서 제공하고 있는 문자 인식 데이터
– 랜덤하게 20개의 서로 다른 폰트를 이용한 A부터 Z까지의 26개 영문자들의 픽셀 데이터를 이용하여 문자를 인식하는 Computer Vision 문제를 해결하기 위한 데이터

variable

2) 데이터 불러오기 및 정제

– 데이터 불러오기 마법사 실행 후, 생성된 데이터 파일을 작업영역창으로 드래그(자세한 내용은 http://www.birc.co.kr/2017/01/11/knnk-nearest-neighbor/ 참고)
– 변수의 역할을 정하기 위해 데이터 노드 오른쪽 클릭 후 ‘변수 편집’ 클릭

variable edit

– lettr의 역할을 ‘Target’으로 지정

variable edit2

– ‘수정’탭의 ‘변수 변환’노드를 작업영역창으로 드래그

Transfer Drag

– Input 변수들이 대부분 Interval이므로, 예측력을 높이기 위해 변수타입을 변환해야함
– ‘변수변환’ 노드의 옵션 중 Interval 입력을 Best로 설정한 후 변수변환 노드 실행

transfer option

– 출력결과를 살펴보면 대부분의 변수들이 Optimal Binning방법을 이용하여 범주화 된 것을 알 수 있음

transform result

– 데이터를 훈련용 데이터와 평가용 데이터로 분류하기 위해 표본추출 탭에 위치한 ‘데이터 분할’ 노드를 작업 영역 창으로 드래그

partition

– 데이터셋 할당의 옵션을 [분석용] – 70, [평가용] – 30으로 설정

3) 부스팅

– 모델 탭의 ‘그라디언트 부스팅’ 노드를 작업 영역창으로 드래그

gradientboostingdrag

– 일반 의사결정 나무 모형과 비교하기 위해 모델 탭에서 ‘의사결정트리’를 작업영역창으로 드래그 한 후 ‘데이터 분할’노드와 연결

dt22

– 평가 탭의 ‘모델 비교’ 노드를 작업영역 창으로 드래그 한 후 실행

comparison170206_2

4) 결과 해석

– 모델 비교 노드의 결과창을 살펴보면 Boosting 기법의 Missclassification Rate의 값이 0.4359로 Tree의 Missclassification Rate의 값인 0.6137보다 낮으므로 부스팅 모델의 정확도가 더 높다는 것을 알 수 있음

result_170206

답글 남기기