- Ensemble learning(앙상블 학습)
- 여러 개의 개별 모델을 조합하여 최적의 모델로 일반화 하는 방법
- weak classifier들을 결합하여 strong classifier를 만드는 것
- 오버피팅의 문제를 감소시킨다는 장점이 존재
- 배깅(Bagging)
- Bootstrap aggregation의 약자로 샘플을 여러 번 뽑아 모델을 학습시킨 후 결과물을 집계하는 방식
- 기존의 앙상블 학습과 달리 하나의 모델에 다양한 데이터를 대입
- 훈련 세트에서 중복을 허용하여 샘플링 진행
- 범주형 데이터는 보팅을 통해 집계하고, 연속형 데이터는 평균을 통해 집계
- 학습 데이터가 충분하지 않더라도 충분한 효과를 낼 수 있음
- High variance 모델이 적합
- 페이스팅(Pasting)
- 배깅과 달리 훈련 세트에서 중복을 허용하지 않음
- 보팅(Voting)
- 여러 개의 분류기가 투표를 통해 최종 예측 결과를 결정하는 방식
- 서로 다른 알고리즘 기반의 모델을 같은 훈련 세트로 학습시킨 결과를 결합
- 하드보팅과 소프트 보팅
- 하드 보팅: 각 모델의 결과를 취합하여 가장 많이 예측된 클래스를 최종 예측 클래스로 선정
- 소프트 보팅: 클래스당 예측 확률을 모든 모델로부터 받아서, 해당 클래스 당 예측 확률값을 평균 내어 가장 높은 확률을 갖는 클래스를 최종 예측 클래스로 선정
- 스태킹(Stacking)
- 교차 검증 기반의 여러 모델들을 활용해 각각의 예측결과를 도출한뒤 각 결과를 결합해 최종 예측 결과를 만들어 내는 것
- 동일한 데이터 원본을 가지고 학습할 경우 과적합 문제가 발생할 수 있음
- 의사결정트리(Decision Tree)
- 일련의 분류 규칙을 통해 데이터를 분류, 회귀하는 지도학습 모델 중 하나
- 결정 트리에서 질문이나 정답을 노드(Node)라고 부름
- 불순도(Impurity): 복잡성을 의미하며, 해당 범주 내에 서로 다른 데이터가 얼마나 섞여있는지를 뜻함(불순도가 높을수록 다양한 데이터가 섞여있음)
- 분기 기준을 설정할 때, 현재 노드의 불순도에 비해 자식 노드의 불순도가 감소되도록 설정해야함
- 현재 노드의 불순도와 자식 노드의 불순도 차이: Information Gain(정보 획득)
- 불순도 함수: Gini index, Entropy가 있으며 두 값이 줄어드는 방향으로 트리를 형성해야함
- Gini index: 데이터의 통계적 분산 정도를 정량화해서 표현한 값
- Gradient 부스팅
- 순차적으로 결정트리를 만들며 이전 트리의 오차를 보완해가는 것
- 얕은 트리를 많인 연결하여 성능이 좋은 최종 모델을 만들어내는 것이 목표
- XGboost, LightGBM, Catboost
- TabNet
- 전처리 과정이 필요하지 않음
- 정형 데이터에 대해서는 기존의 트리 기반 모델에 비해 신경망 모델의 성능이 안정적이지 못함
- TabNet:두 구조의 장점을 모두 가지는 신경망 모델
본 포스트의 학습 내용은 부스트클래스
<AI 엔지니어 기초 다지기 : 부스트캠프 AI Tech 준비과정>
강의 내용을 바탕으로 작성되었습니다