co-code 님의 블로그

앙상블(ensemble) 中 배깅(Bagging) 본문

python

앙상블(ensemble) 中 배깅(Bagging)

co-code 2026. 5. 15. 19:00
  • 앙상블
    • 단일 의사결정나무(DecisionTree)의 단점을 극복하기 위해 머신러닝 모델을 연결하여 더 강력한 모델을 만드는 과정
    • 주어진 자료로부터 여러개의 예측 모델을 만든 후 예측 모형을 조합하여 하나의 예측 모형을 생성하는 과정
    • 대표적인 기법 : 배깅, 부스팅, 랜덤 포레스트
  • 배깅
    • 주어진 자료를 모집단으로 간주하여 주어진 자료에서 여러개의 부트스트랩 자료를 생성하고 각각의 부트스트랩 자료에 예측 모델을 만든 후 결합하여 최종 모델 완성
    • 장점
      • 분산을 줄이고 과적합의 문제를 완화
      • 안정적인 성능 보장
      • 비선형 구조의 데이터와 노이즈 데이터에 대한 문제가 완화
    • parameter(매개변수)
      • estimator
        • 기본값 : None
        • 기본 모델을 설정
      • n_estimators
        • 기본값 :10
        • 생성시킬 모델의 개수
      • max_samples
        • 기본값 : 1.0
        • 생성이 된 모델들이 사용할 데이터의 개수(인덱스의 수) 비율
      • max_features
        • 기본값 : 1.0
        • 생성이 된 모델들이 사용할 피쳐(컬럼)의 수 비율
      • oob_score
        • 기본값 : False
        • oob(Out-Of-Bag) 데이터로 일반화 성을 평가할 것인가?
      • bootstrap
        • 기본값 : True
        • 샘플링 데이터를 이용시 중복 데이터를 허용
        • False인 경우에는 각각의 모델들에 max_samples의 비율이 1.0이라면 모두 같은 데이터를 학습으로 사용 ( 다양성이 부족)
      • bootstrap_features
        • 기본값 : False
        • 샘플링한 데이터를 이용 시 중복 컬럼을 허용할 것인가 
      • n_jobs
        • 기본값 : None
        • CPU의 병렬 처리 개수 (-1을 사용 시에는 모든 CPU를 사용)
    • 속성
      • estimators_ : 학습된 모델의 리스트
      • estimators_samples_ : 각 모델이 학습한 샘플의 인덱스 (행의 위치)
      • estimators_features_ : 각 모델이 학습한 컬럼의 인덱스 (열의 위치)
      • oob_score_ : oob 데이터를 기반으로 정확도(분류) / R2(회귀)
      • oob_decision_function : OOB 데이터의 클래스별 예측 확률
    • 메서드
      • fit_predict() : 학습 후에 예측 수행 (학습 데이터를 예측)
         
         

'python' 카테고리의 다른 글

차원 축소  (0) 2026.05.19
랜덤 포레스트(Random Forest)  (0) 2026.05.15
서포트 벡터 머신(SVM : Support Vector Machine)  (0) 2026.05.14
부스팅(Boosting)  (0) 2026.05.14
이진 분류  (0) 2026.05.13