5 분 소요

키워드🔑
앙상블분석, 배깅, 부트스트랩, 부스팅, AdaBoost,
랜덤포레스트, 배깅을 이용한 포레스트 구성, 임의노드 최적화,
중요 매개변수, 포레스트 크기, 최대 허용 깊이, 임의성 정도

02. 분석기법 적용Permalink

2. 고급 분석기법Permalink

7) 앙상블 분석Permalink


(1) 앙상블(Ensemble)

  • 앙상블 기법
    • 여러 개의 동일 or 상이한 모형들의 예측 or 분류 결과를 종합하여 최종적인 의사결정에 활용하는 기법
  • 앙상블 특징: 신뢰성 ↑ 정확도 ↑ 원인분석 X
    • 높은 신뢰성: 다양한 모형의 결과를 결합 → 단일 모형보다 높은 신뢰성 확보
    • 높은 정확도: 이상값 대응력 상승 / 전체 분산 감소 → 높은 모델 정확도(Accuracy)
    • 원인분석에 부적합: 모형 투명성 감사 → 현상에 대한 정확한 원인분석에는 부적합


(2) 앙상블 알고리즘

  • 여러 개의 예측 모형 생성 → 조합 → 하나의 최종 예측 모형
    • 조합: 다중 모델 조합, 분류기 조합
  • 여러 개의 학습 모델 훈련 → 투표 → 최적화된 예측 수행 및 결정
    • 투표: 다수결로 최종 결과를 선정
  • 학습 데이터의 작은 변화 때문에, 예측 모형이 크게 변한다면 → 불안정한 학습방법
  • 가장 안정적인 학습방법: 1-nearest neighbor, linear regression, …
    • 1-nearest neighbor: 가장 가까운 자료만 변하지 않으면, 예측 모형이 변하지 않음
    • 선형 회귀 모형: 최소제곱법으로 추정하여 모형을 결정함


(3) 앙상블 학습절차
📌 도출 및 생성 → 집합별 모델학습 → 결과 조합 → 최적 의견 도출

  • 도출 및 생성: 학습 데이터에서 학습집합을 여러 개 도출
  • 집합별 모델학습: 각각의 집합마다 모델학습


(4) 앙상블 기법 종류
📌 배깅 / 부스팅 / 랜덤포레스트

  • 배깅(Bagging)
    • 학습 데이터에서 다수의 부트스트랩 자료 생성
    • 각 자료마다 모델 생성
    • 각 모델마다 도출된 결과 결합
    • 최종 예측 모형
  • 부스팅(Boosting)
    • 학습 데이터에 동일한 가중치 적용하여 분류기 생성
    • 가중치 변경하여 분류기 다시 생성
    • 반복 및 결합
    • 최종 분류 모형
  • 랜덤 포레스트(Random Forest)
    • 학습 데이터에서 N개의 부트스트랩 자료 생성
    • 분류기 훈련 후 대표 변수 샘플 도출
    • 의사결정나무의 Leaf Node로 분류
    • Leaf Node들의 선형결합
기법 배깅(Bagging) 부스팅(Boosting)
목표 -분산 감소
-전반적으로 분류를 잘 하도록 유도함
-예측력 강화
-분류하기 힘든 관측값들에 대해서, 정확하게 분류하도록 유도함
최적 모델 결정 방법 -독립수행 후, 다수결 결정
-연속형 변수: 평균
-범주형 변수: 다중투표
-순차 수행에 따른 가중치 재조정
-정분류 데이터: 낮은 가중치 부여
-오분류 데이터: 높은 가중치 부여
⇒ 오답을 정답으로 맞추기 위해서
장점 -성능 향상에 효과적
-결측값에 강함
-특정 케이스에서 상당히 높은 성능
-과대적합 없음(일반적으로)
단점 계산 복잡도 다소 높음 계산 복잡도 다소 높음
적용 방안 소량 데이터 유리함
변수 크기가 작아, 단순할수록 유리함
대량 데이터 유리함
데이터, 속성이 복잡할수록 유리함
주요 알고리즘 MetaCost Algorithm AdaBoost Algorithm


(5) 배깅
📌 부트스트랩 데이터 여러 개 → 데이터마다 모델링 → 다수결로 최종 결정

  • 배경(Bagging; Bootstrap Aggregating)
    • 학습 데이터에서 다수의 부트스트랩 자료를 생성하고, 각 자료에 대해 모델을 생성한 후 결합하여 최종예측모델을 만드는 알고리즘
    • 부트스트랩(Bootstrap): 단순 랜덤 복원추출 → 동일 크기 표본을 여러 개 생성하는 샘플링 방법
    • 절차: 부트스트랩 데이터 추출 → 단일 분류자 생성 → 최종 모델결정
      • 부트스트랩 데이터 추출: 동일 크기 부트스트랩 데이터 n개 추출
      • 단일 분류자 생성(모델링): 각 데이터마다 단일 분류자 모델 n개 생성
      • 최종 모델 결정: 다수결(Majority Voting) or 평균으로 n 개의 모델 결과를 결합
        • 보팅: 여러 모델을 학습시켜서 나온 결과 → 다수결 투표로 최종 결과 선정
    • 특징
      • 배깅에선 가지치기 하지 않음 → 최대한 성장한 의사결정나무들을 활용
      • 훈련자료를 모집단으로 간주 → 평균 예측 모형을 구함 → 분산을 줄이고, 예측력을 향상시킴


(6) 부스팅
📌 예측력 약한 모델들을 결합 → 강한 예측 모형 생성

  • 부스팅(Boosting)
    • 잘못 분류된 개체들에 가중치 적용 후, 새로운 분류기 모델을 생성하는 과정을 반복하고, 약한 모델(Weak Learner)들을 결합하여 최종 모델을 만드는 알고리즘
  • 순차적으로 진행: 분류기 1 생성 → 이 정보를 바탕으로 분류기 2 생성 → 이 정보를 바탕으로 분류기 3 생성 → 반복… → 생성된 분류기들을 결합 → 최종 분류기 모델
  • 절차: 동일 가중치 분류기 생성 → 가중치 변경하여 분류기 생성 → 최종 분류기 생성
    • 가중치 변경: 이전 분류기의 결과에 따라서 가중치를 변경
    • 최종 분류기: 목표 정확도가 나올 때까지 n회 반복 후, 최종 분류기 결정
  • AdaBoost(Adaptive Boost Algorithm): 배깅보다 성능 높은 경우 많음(예측 오차 향상)
    • 이진 분류 문제
    • 랜덤 분류기보다 좀 더 좋은 분류기 n개 생성
    • n개 분류기마다 가중치 설정(가중치 합 = 1)
    • n개 분류기를 결합하여 최종 분류기 생성


(7) 랜덤 포레스트
📌 랜덤 입력에 따른 여러 트리의 집합인 포레스트를 이용한 분류 방법

  • 랜덤 포레스트(Random Forest)
    • 배깅, 부스팅보다 더 많은 무작위성을 주어서 약한 학습기들을 생성한 후, 이것들을 선형결합하여 최종 학습기를 만드는 알고리즘
  • 의사결정트리의 분산이 크다는 단점 개선 → 약한 학습기들을 선형결합
  • 무작위성(랜덤성): 사건에 패턴, 예측가능성, 인위적요소, 규칙성이 없음
    • 트리들이 서로 조금씩 다른 특징을 가짐 → 예측 결과들의 비상관화&일반화
    • 노이즈에 강인하게 해줌
  • 데이터로부터 임의복원추출을 통해 여러 개의 학습데이터를 추출하고, 학습데이터마다 개별 학습을 시켜서 트리를 생성하여, 투표 or 확률 등을 이용하여 최종목표변수를 예측한다
  • 절차: 데이터 추출 → 대표변수 샘플 도출 → Leaf Node 분류 → 최종모델 결정
    • 부트스트랩 데이터 추출: 부트스트랩 데이터 n개 추출
    • 대표변수 샘플 도출: n개의 분류기를 훈련시켜 대표변수 샘플을 도출
    • Leaf Node 분류: 대표변수 샘플들을 트리의 Leaf Node로 분류
    • 최종모델 결정: Leaf Node들을 선형결합
  • 특징
    • 변수 제거 없이 진행 → 입력변수가 많은 경우 정확도/예측력 높음
    • 이론적 설명과 결과 해석이 어려움
    • 배깅/부스팅과 비슷 or 더 좋은 예츠력
    • 배깅과의 가장 큰 차이점: 전체 변수 집합에서 부분 변수 집합을 선택한다는 점


(8) 랜덤 포레스트의 주요기법
📌 배깅을 이용한 포레스트 구성 / 임의노드 최적화 / 중요 매개변수(크기/깊이/임의성)

  • 배깅을 이용한 포레스트 구성(Bagging = Bootstrap Aggregating)
    • 부트스트랩 → 조금씩 다른 훈련 데이터 생성 → 훈련시킨 기초 분류기들을 결합시킴
  • 임의노드 최적화: 노드 분할 함수 / 훈련목적함수 / 임의성 정도
    • 훈련목적함수를 최대화시키는 노드 분할 함수의 매개변수θ 최적값을 구하는 과정
    • 노드 분할 함수
      • 각 트리노드마다 좌우 자식노드로 분할하기 위한 함수
      • h(v, θj) ∈ {0, 1}
      • 노드에 도달한 데이터는 함수결과에 따라서 자식노드로 보내짐
      • 매개변수 θ = Φ, Ψ, τ 에 따라서 분할 함수 결정됨
    • 훈련목적함수
      • τ = 노드 분할 함수의 매개변수 θ의 가능한 모든 경우를 포함하는 집합
      • τj = j번째 노드의 훈련단계에서 τ의 부분집합 τj을 만듦
      • 매개변수의 최적값 θj*는 임곗값들 τj안에서, 목적함수 = 정보 획득량을 최대로 만드는 값으로 계산됨
    • 임의성 정도
      • 비상관화 수준의 결정요소
      • 임의성 정도는 │τj│/│τ│ 로 결정됨
      • ρ = │τj│ 가 임의성 정도 결정 ρ 값은 모든 트리 노드에서 같은 값
      • ρ = │τ│ → 모든 트리 서로 동일
      • ρ = 1 → 최대 임의성 비상관화된 트리
  • 노드 분할 함수의 매개변수
    • Φ = 필터함수/ 특징 몇개만 선택 (특징 배깅)
    • Ψ = 분할함수의 기하학적 특성을 이용하여 데이터를 분리할지 나타냄
    • τ = 이진 테스트의 부등식에서 임곗값들을 가지고 있음
  • 중요 매개변수: 포레스트 크기 / 최대 허용 깊이 / 임의성 정도
포레스트 크기 T 최대 허용 깊이 D 임의성 정도
-포레스트의 트리 개수
-포레스트를 몇개의 트리로 구성할지 결정하는 매개변수
-크기가 작으면 → 시간 ↓ 일반화능력 ↓
-크기 크면 → 시간 ↑ 정확성 ↑ 일반화능력 ↑
-한 트리의 최대 깊이
-한 트리에서 루트~종단 노드까지 최대 몇 개의 노드(테스트)를 거칠지 결정하는 매개변수
-깊이 작으면 → 과소 적합
-깊이 크면 → 과대 적합
임의성 정도에 따라서
비상관화 수준이 결정됨

댓글남기기