본문 바로가기
데이터

[데이터 모델링 및 평가] 군집 분석 및 앙상블 방법론 내용 정리

by dwoi 2023. 4. 3.

데이터 분석 모델링과 머신러닝에 대한 기본 개념에 대해 학습하고 이를 정리한 내용

 

목차

     


    데이터 모델링

    데이터 분석은 유의미한 정보를 파악하여 의사결정에 도움을 주기 위해 데이터 수집, 가공, 모델링하는 과정을 의미함


    1. 군집 분석

    1.1. 군집분석이란

    • 데이터셋의 관측값이 갖고 있는 여러 속성을 분석하여 서로 비슷한 특징을 갖는 관측값끼리 같은 군집으로 묶는 모델

     

    • 대표적인 비지도 학습 모델이며, 관측값을 몇 개의 집단으로 나눈다는 점에서 분류 모델과 흡사하지만, 정답이 없는 상에서 데이터 자체의 유사성만을 기준으로 하는 점에서 차이가 있음

    1.2. K-Means 모델

    • 대표적인 군집 분석 모델로, 데이터 간의 유사성을 측정하는 기준으로 각 클러스터의 중심까지의 거리를 이용함.
    • K개의 클러스터 중심에서 거리가 가장 가까운 클러스터로 데이터를 할당하므로, K를 섬세하게 설정하는 것이 중요

     

    1.2.1. K-Means 모델 학습 방법

    • 군집 내 거리는 최소화, 군집 간 거리는 최대화하는 방향으로 학습
    • 초기 initial center 를 잘 잡는 것이 매우 중요하며, 이에 대한 방법론이 여러 가지가 있음
      (kmeans++ 등)

     

    1.2.2. K-Means 최적 K 선택법

    • 최적 K를 선택하는 방법 중 대표적인 방법이 엘보우(elbow)기법
    • 클러스터 내 모든 데이터들의 거리 제곱 합이 최소가 되는 K를 선택함

     

    1.2.3. K-Means 모델 적용 분야

    • 주로 마케팅 분야에 고객 세분화(Segmentation)에서 활용됨
    • 고객 타겟군을 설정할 때, 일반적으로 나이대/성별 등의 인구통계학적 정보를 활용하지만, 군집 분석을 통해 다양한 속성을 감안하여 고도화된 타겟을 설정 할 수 있음

    2. 앙상블 방법론

    2.0. 앙상블 학습이란

    머신러닝에서의 앙상블 학습은 여러 개의 모델을 조화롭게 학습시켜 하나의 더 나은 모델을 만드는 방법을 의미

    장점

    - 단일 모델을 사용할 때 보다 일반적으로 성능이 향성됨
    - 단일 모델을 사용할 때 보다 분산이 감소하여 과적합을 방지

     

    2.1. 투표 기반 학습(Voting)

    • 학습 단계에서 여러 개의 머신러닝 알고리즘을 학습시키고, 새로운 데이터에 대해서 각 모델의 예측값을 이용하여 다수결 투표를 진행하여 최종 결과값을 예측

     

    • 투표 방식에 따라 예측 결과값이 달라질 수 있음
      • Hard voting: 단순 투표, 개별 모델의 결과 기준
      • Soft voting : 가중치 기반 투표. 개별 모델의 조건부 확률의 합 기준

     

    2.2. 배깅(Bagging)

    • 하나의 모델을 사용하지만 학습 데이터셋을 랜덤하게 추출하여 모델을 각기 다르게 학습시키는 방법
    • 중복을 허용하여 복원 추출하는 방식을 배깅이라하며, 배깅(bootstrap aggregating;bagging) 방식을 이용해 모델을 학습

     

    2.2.1. 배깅(Bagging)의 특징

    • 배깅의 목적 : 모델의 안정성과 정확성을 향상시키기 위함
      - 하나의 모델만 보게 된다면, 샘플링된 적은 데이터에 대해 예측력이 높아짐(Low bias)
      - 여러 모델을 보면, 각 모델 별 샘플링 데이터 다르므로, 예측값의 차이가 큼(High variance)

     

    • 앙상블 배깅을 통해 평균치를 이용하여 variance를 줄이며, 모델이 많을수록 평균값의 모델이 예측력이 높아짐

     

    2.2.2. 배깅(Bagging)의 대표 모델

    • 배깅의 대표적인 모델은 랜덤 포레스트 (random forest) 이며, 의사 결정 나무 기반의 모델로, 데이터 샘플링 뿐만 아니라 변수 샘플링도 진행하여 학습

     

    2.3. 부스팅(Boosting)

    • 부스팅은 성능이 약한 학습기(Weak learner)를 여러 개 연결하여 강한 학습기(Strong learner)를 만드는 방법
      • 이전에 학습된 모델을 보완해가면서 더 나은 모델로 만드는 과정
    • 배깅과의 가장 큰 차이는, 배깅은 병렬적으로 학습하지만 부스팅은 순차적으로 학습

     

    • 이전 모델의 오차의 크기에 비례해 가중치를 부여하기 때문에 오차를 잘 보완하는 방향으로 모델이 학습
    • 오차에 어떻게 가중치를 주고 보완하느냐에 따라 모델이 차이가 있음.
    • 대표적으로 Adaboost, Gradient boosting, XGBoost 등이 있음

     

    2.3.1. 부스팅(Boosting)의 대표 모델

    • 적응 부스트(Adaptive boos)는 약한 모델을 베이스 모델로 사용하여 순차적으로 모델을 구성하는 부스팅의 대표 모델 중 하나
    • 일반적으로 의사 결정 나무를 이용해서 알고리즘을 구성하며, 이전 모델의 오차(error)를 보완하도록 오차에 비례해서 가중치를 주어서 다음 모델에서 해당 오차를 잘 예측할 수 있도록 보완

     

    2.3.2. 배깅과 부스팅 비교

    • 배깅은 하나의 큰 데이터셋을 샘플링하여 병렬적으로 모델을 학습
    • 부스팅은 샘플링은 동일하지만, 순차적으로 학습하면서 가중치를 샘플링 데이터에 부여한다는 차이가 존재

    출처: swallow.github.io

     

    2.4. 스태킹(Stacking)

    • 여러 개의 모델(Base learner)을 이용하여 예측한 결과를 다른 하나의 모델(Meta  Learner)의 입력값으로 넣어 최종 결과를 예측하는 형태의 앙상블 모델
    • 사용되는 모델은 SVM, Randomforest, KNN 등을 활용

     


    마무리

    여러 방법론적인 것을 배웠어도 이를 어디에 써먹는지를 이해하기 위해서는 

    여러번의 실습이 중요하다!

     


     

    댓글