AI/데이터분석
[데이터분석] 트리 모델, 배깅과 부스팅
brave_sol
2024. 12. 1. 23:14
1. 트리 기반 모델
트리 사용 차이점 | 의사결정나무 | 앙상블-배깅(Random Forest) | 앙상블-부스팅(GBM) |
나무 갯수 | 1개 | 여러 개 | 여러 개 |
학습 데이터 | 원본 | *랜덤 복원 추출(크기는 같음) | 처음 트리엔 원본 데이터 → 다음 트리부턴 잔차(실체-예측) |
노드 분할시 피처사용 | 전체 피처 고려 | 랜덤으로 뽑아 그 중 최고 피처 선택 |
랜덤으로 뽑아 그 중 최고 피처 선택 |
나무 학습방식 | 단일 모델 학습 | 각 트리가 독립적으로 병렬 학습 |
이전 트리의 오류를 순차적으로 학습 |
예측결과 | 단일 트리 결과 | 각 트리 결과 평균(회귀모델) 각 트리 결과 투표(분류보델) |
각 트리 결과 합 (잔차 보정) |
예측 결과 예시 | 점수 예측 모델 트리 1 = 90점 |
트리1 = 85점 트리2 = 75점 최종 예측 = (85+75)/2 |
트리1 = 70점 트리2 = 10점 (잔차 보정) 트리 3 = 5점 (잔차 보정) 최종 예측 85점(70+10+5) |
* 배깅(Bagging = Bootstrap(부트스트랩) + Aggregating(결합))
** Out-of-Bag 데이터(OOB): 복원 추출로 인해 일부 데이터는 특정 트리의 학습에 포함되지 않아(약 37%) 이를 활용해 성능을 평가할 수 있다.
*** Gradient : -잔차 = -(실제값 - 예측값)
2. 의사결정나무
- 데이터를 조건에 따라 반복적으로 분할하여 그룹 내 데이터가 최대한 비슷하게 되도록 나눈다.
1) 예측나무 모델 (Regressor): 분류된 관측값들의 평균값으로 예측
2) 분류나무 모델(Classifier): 분류된 관측값들의 비율 중 가장 큰 값(다수결)으로 예측
- 분할과정
1) 각 피처에 대해 여러 임계값으로 데이터를 나누는 시도를 한다.
2) 각 분할에 대해 지니지수, 엔트로피, 정보 이득 등의 값을 계산한다.
3) 불순도를 가장 많이 줄이는(정보 이득이 가장 큰) 분할 기준을 선택
4) 해당 관정을 반복한다.
- 분할기준
예측나무(회귀문제) | 분류나무(분류문제) | |||
n: 데이터수 y: 실제값, y_bar: 그룹의 평균값, y_hat: 예측값 |
p: 클래스i에 속할 확률, c: 클래스의 개수 | |||
분산 | RSS | 지니지수 | 엔트로피 | 정보이득 |
![]() |
![]() |
![]() |
![]() |
부모그룹 엔트로피 - 자식그룹 엔트로피 |
분할 후 각 그룹의 분산을 최소화 |
그룹 내 예측값과 실제값의 차이 최소화 |
그룹의 불순도 측정 | 그룹의 불확실성 측정 | 분할전후 엔트로피 감소를 계산 |
값이 작을수록 잘 설명 | 값이 작을수록 잘 설명 | 값이 작을수록 순수 | 값이 작을수록 순수 | 값이 클수록 잘 설명 |
반응형