alpyrithm_알파이리즘

DAY7. Ensemble Learning I 본문

SM공부/Data Mining & Machine Learning

DAY7. Ensemble Learning I

알파이 2020. 8. 3. 23:13

 

Summary

  • Ensemble Learning 기초
  • Simple Ensemble Learning
    • Averaging
    • Weighted Averaging
    • Max voting

 

 

 

 

 

 

 

 

 

 

Main

Ensemble Learning 기초

  • Ensemble Learning의 개념
    • 모델의 성능 개선을 목적으로 다양한 알고리즘을 이용한 다수의 모델을 통합하는 방법
    • 앙상블 학습은 여러 기계 학습 모델을 결합하여 우수한 모델을 생성하여 Variance와 Bias의 영향을 줄이고 성능을 향상시키는 알고리즘
    • Top-left는 Bias가 높고 Variance가 낮은 시나리오
    • Top-right는 Bias, Variance 모두 높은 시나리오
    • 앙상블 모델은 Bias와 Variance가 다른 약한 모델을 많이 결합하여 더 약한 모델을 만들어 개별 약한 모델보다 성능이 우수
    • 앙상블 모델은 Crowd Intelligence와 유사
    • Simple Ensemble과 Advanced Ensemble 두 가지 유형 존재
      • Simple EnsembleTechniques
        • Averaging
        • Weighted Averaging
        • Max Voting
      • Advanced Techniques
        • Stacking / Blending
        • Bagging
        • Boosting
  • Ensemble 방법
    • 전체 데이터에서 변수나 데이터를 샘플링하여 만든 훈련용 데이터를 이용하여 다수의 모델을 만들고 결합
    • 독립적으로 다수의 모델을 생성하고 결합하여 예측값 평균을 산출하는 모델링 방법
    • 순차적으로 이전 모델의 파라미터를 조정하여 오차를 지속적으로 줄이는 모델링 방법
  • 장점
    • 다수의 모델을 생성/결합하거나 이전 모델의 오차를 지속적으로 개선함으로써 단일 모델보다 성능이 좋고 안정적임
    • 전체 분산을 감소시킴으로써 오차를 줄이는 경향성을 보임
    • 이상치에 대한 대응력이 높아져 안정적인 결과를 보임
    • 과대적합을 줄이는 경향성을 보임
  • 단점
    • 직관적이지 않고 해석의 어려움
  • Case
    • 은행의 신용 카드 부서에서 신용 카드 운영 데이터에 기반하여 고객의 신용 여부 판단하는 경우
    • Data set에는 약 15개의 variable 신용 카드 내역이 포함, variable은 신용 카드 작업과 관련된 연속 및 범주형 데이터의 혼합
    • Data set의 Label은 신용 여부 판단 후, (대출 혹은 카드 발급) 승인 여부를 나타내는 Flag
    • 벤치 마크 모델들을 맞추고 Data set에 대한 앙상블 학습 방법 사용
    • 주어진 고객의 대출이나 카드 발급 여부를 승인해야 하는지에 대한 가부를 예측하여 결괏값으로 제공 가능

 

 

 

Simple Ensemble Learning

  • Averaging
    • 기초적인 Ensemble Learning, 매우 유용
    • 여러 개별 모델의 예측을 취한 다음 예측을 평균화하여 최종 예측 모델을 생성하는 것
    • 주요 조건들
      • 서로 다른 개별 학습자의 예측을 평균하여 개별 학습자의 실수를 제거하여 기본 모델보다 우수한 모델을 생성한다고 가정
      • 평균화 작업을 수행하기 위한 중요 전제 조건은 기본 모델의 예측을 서로 관련시키지 않는 것으로 이는 개별 모델이 같은 종류의 오류를 만들어서는 안 됨을 의미
      • 모델의 다양성은 서로 관련이 없는 에러를 보장
    • Codes
      • pandas.DataFrame.dropna()
        • remove missing values, 결측값 제거
        • parameter
          • axis
            • 0 : 결측값이 들어있는 행 전체 삭제
            • 1 : 결측값이 들어있는 열 전체 삭제
      • pandas.get_dummies()
        • 범주형 변수를 가변수(dummy variable)로 변환, convert categorical variable into dummy/indicator variables
      • sklearn.preprocessing.MinMaxScaler
        • 최솟값과 최댓값을 사용해서 '0~1' 사이의 범위(range)로 데이터를 변환
      • model.classes_
        • sklearn.linear_model.LogisticRegression의 attributes
        • a list of class labels known to the classifier
      • numpy.argmax
        • 가장 큰 값의 인덱스를 반환해주는 함수
      • sklearn.metrics.classification_report()
        • report showing the main classification metrics
        • 정밀도, 재현율, F1점수 제공
  • Weighted Averaging
    • Averaging Ensemble의 확장
    • 특징
      • Averaging Ensemble과 주요 차이점은 결합된 예측이 생성되는 방식
      • Weighted Averaging에서는 각 모델의 예측에 가중치를 할당한 다음 결합된 예측을 생성 
      • 가중치는 어떤 모델이 앙상블에서 가장 영향력이 있는지에 대한 (우리의) 판단에 따라 배정
      • 처음에 임의로 할당된 가중치는 많은 실험 후 진화
      • 먼저 가중치를 가정한 다음 각 모델마다 다른 가중치로 반복하여 성능이 향상되는지에 대한 확인 필요
      • 가중치 iteration(반복) 회수 마다 다르게 정하고 iteration(반복)을 통해 성능 향상을 확인
  • Max voting
    • 특징
      • 다수결 원리에 따라 작동
      • Majority가 Roost를 지배
      • Individual Learner(개별 학습자)가 Training Set에 Fitting하며 해당 Prediction Model은 Test Set에서 생성
      • 각 Indicidual Learner(개별 학습자)의 Prediction을 Voting(투표)로 간주
      • Test Set에서 Max Voting(최대 투표)를 받는 클래스가 궁극적 승자
    • Codes

 

 

 

 

 

 

 

 

 

 

 

반응형

'SM공부 > Data Mining & Machine Learning' 카테고리의 다른 글

DAY9. Data Pipeline  (0) 2020.08.05
DAY8. Ensemble Learning II  (0) 2020.08.04
+) DataFrame 기초 정리  (0) 2020.07.28
DAY6. Supervised Learning III  (0) 2020.07.27
DAY5. Supervised Learning II  (0) 2020.07.26
Comments