본문 바로가기

AI가 뭐길래 왜 어려운 거죠?

[ML] Bagging_Boosting(ft.멘탈_파사삭)

느낀 점 

을 표현하기에 글보단 사진이 나을 것 같다.

 

Instead of Monday, Data hits me
데이터에 파묻히는 나와 같달까?

 

 

 


Section2_Sprint2_Note1&Note2 
  • 트리 기반 모델(tree-based model)
    • 비선형, 비단조, 특성상호작용 특징을 가진 데이터 분석 용이
    • 앙상블 모델을 결정트리를 기본 모델로 한다. 
    • 결정트리 : 비용함수를 최소화하는 방향으로 데이터 분할
      • 회귀와 분류 모두 적용 가능
      • 분류 문제의 비용함수 - 불순도
      • 회귀 문제의 비용함수 - MSE
      • 분류 문제의 예측값 - 마지막 노드에 있는 타겟값들의 최빈값
      • 회귀 문제의 예측값 - 마지막 노드에 있는 타겟값들의 예측값
      • 직관적이며 시각화가 가능한 데이터 분할 과정 - 해석하기 용이함
      • 제약 사항이 거의 없는 유연한 모델 - 과대적합 위험
from sklearn.tree import DecisionTreeClassifier
from sklearn.tree import DecisionTreeRegressor
import graphviz					# 결정트리 시각화
from sklearn.tree import export_grahviz		# 결정트리 시각화

!pip install category_encoders
from category_encoders import OrdinalEncoder
from category_encoders import OneHotEncoder
from sklearn.impute import SimpleImputer

 

 

  • 앙상블 학습
    • 앙상블 학습은 여러 기본 모델들을 학습하고 모델들의 예측을 합하여 최종 예측을 내는 방식이다.
    • 단일 모델 사용 기법의 과대적합 및 과소적합의 문제 해결하여 일반화 성능을 높이기 위해 많이 사용된다.
    • 약한 모델들을 학습하고 지혜롭게 조합하는 것이 앙상블 학습의 기본 컨셉이다. 
    • 대표적인 기법으로 Bagging과 Boosting이 있다. 

 


요약 : 어렵당 어려워 어렵구만 😵‍💫
  • Bagging
    • Bootstrap Aggregating
    • Random Forest
    • 무작위 복원추출
    • 병렬적 학습
    • 독립적 학습
    • 분산 줄임
    • 과대적합 해소

 

  • Random Forest
    • 기본 모델들을 합치는 과정에서 에러가 상쇄됨
    • 두 가지 랜덤성 보유 
      • 각 기본모델에 사용되는 데이터 랜덤 선택됨
      • 노드 분할시 특성을 랜덤샘플링하여 최적의 특성을 찾아내어 분할함
    • oob sample (out of bag sample)
      •  부트스트랩 과정에서 한번도 추출되지 않은 샘플
      • 부트스트랩 세트 = 표본의 60% / oob 샘플 = 표본의 40%
      • oob 샘플로 모델 검증 가능
from sklearn.ensemble import RandomForestClassifier
from sklearn.ensemble import RandomForestRegressor

process of Bagging


  • Boosting
    • AdaBoost
    • Gradient Boosting
    • 순차적 학습
    • 이전 모델의 예측 못한 부분 집중 학습
    • 최종 모델 복잡도 상승
    • 편향 줄임
    • 과소적합 해소

 

  • AdaBoost
    • 초기 개발 부스팅 알고리즘
    • 분류 문제 적합
    • 이상치에 민감
    • Gradient Boosting보다 성능이 떨어짐
    • 잘못 분류된 관측치에 가중치 부여
    • 이전 모델의 성능 보완하는 학습

 

  • Gradient Boosting
    • 회귀와 분류 모두 적합
    • 이전 모델의 잔차 학습 
    • 잔차가 큰 관측치를 집중 학습
    • scaling 또는 normalization 필요없음
    • Ordinal Encoding 선호
!pip3 install xgboost==1.7.2
from xgboost import XGBClassifier

 


  Bagging Boosting
목적 분산 감소 및 과대적합 해소 편향 감소 및 과소적합 해소
기법 예시 Random Forest Gradient Boosting
학습 과정 각 기본 모델 독립적이고 병렬적 학습 이전 기본 모델 오류 고려하여 순차적 학습
예측 과정 각 개별 모델의 예측 결과 종합하여 최종 예측함 순차적으로 최종 예측 값이 정확해짐
키워드 복원추출, 상호영향X, 랜덤성 이전 모델 예측 못한 부분에 집중 학습

 

2023.04.14(금)