cb
Sampling, Boosting 본문
랜덤 포레스트
랜덤포레스트는 일반적으로 배깅 방법을 적용한 결정 트리의 앙상블이다.
배깅(bagging: bootstrap aggregating의 줄인말)은 훈련 세트에서 중복을 허용하여 샘플링하는 것으로 배깅을 사용하면 어떤 샘플은 여러 번 선택되고 다른 것은 한번도 선택되지 않을 수도 있다.
m개의 샘플에서 m개를 선택하는 경우 선택되는 샘플의 확률을 계산해보면 다음과 같다.
따라서 이는 m개의 샘플에서 m개를 선택하면 약 63%만 선택된다는 것을 의미한다.
그러면 남는 37%의 샘플이 있는데 이를 oob(out of bag)샘플이라고 하고 이는 훈련에 사용되지 않음으로 검증세트로 사용할 수 있다.
랜덤 포레스트는 트리의 노드를 분할할 때 전체 특성중에서 최선의 특성을 찾는 대신 무작위로 선택한 특성 후보 중에서 최적의 특성을 찾는 식으로 무작위성을 더 주입한다.
이는 트리를 다양하게 만들고 편향을 손해보는 대신 분산을 낮춰 전체적으로 훌륭한 모델을 만든다.
배깅과 다르게 훈련 세트에서 중복을 허용하지 않고 샘플링하는 것을 페이스팅이라고 한다.
배깅과 페이스팅의 장점은 모두 동시에 다른 cpu코어나 서버에서 병렬로 학습이 가능해 시간 효율이 좋다는 것이다.
앙상블을 하기 전 각각의 예측기는 일부 샘플만 사용하여 학습을 하기 때문에 편향이 크지만 집계 함수(aggregation function, 분류일때는 일반적으로 최빈값)를 거치면서 편향과 분산이 모두 감소하게 된다.
부스팅
약한 학습기를 여러 개 연결하여 강한 학습기를 만드는 앙상블 방법이다
에이다 부스트
이전 모델이 과소적합했던 훈련 샘플의 가중치를 더 높이는 방법이다.
에이다 부스트의 훈련 방법
1. 알고리즘의 기반이 되는 첫번째 분류기를 훈련세트에 훈련시키고 예측을 만든다.
2. 알고리즘이 잘못 분류되면 훈련 샘플의 가중치를 상대적으로 높이고, 두 번째 분류기는 업데이트된 가중치를 사용하여 훈련세트를 훈련하고 다시 예측을 만든다.
3. 이 과정을 반복한다.
그레디언트 부스팅
이전 예측기가 만든 잔여 오차에 새로운 예측기를 학습시켜 이전까지의 오차를 보정하도록 예측기를 순차적으로 추가한다.
그레디언트 부스팅에서 Learning_rate매개변수는 각 트리의 기여 정도를 조절한다.
만약 Learning_rate를 낮게 설정하면 훈련 세트에 학습시키기 위해 많은 트리가 필요하지만 예측의 성능은 좋아진다.
이는 축소(shrinkage)라고 하는 규제 기법이다.
다만 너무 많은 트리의 수가 생길 수 있어 조기 종료 기법을 활용하면 최적의 트리 수를 찾을 수 있다.
LightGBM (Light Gradient Boosting Machine)
대용량 데이터 처리에 특화된 Gradient Boosting 프레임워크이다.
이는 Leaf-wise방식을 사용해서 트리를 성장시킨다.
Leaf-wise는 각 단계에서 최대 손실(delta loss)을 갖는 리프를 분할하면서 학습을 진행한다.
즉, 손실을 가장 많이 줄일 수 있는 지점에 해당하는 부분을 성장시켜 손실을 줄이는 방식이다.
이러한 방식은 더 빠른 학습 속도와 더 나은 정확도를 제공할 수 있지만, 과대적합을 유발할 수 있는 위험도 있다.
따라서 max_depth를 설정해 특정 깊이 이상이 되면 해당 노드는 분할되지 않는 규제를 사용해야한다.
'ai - study' 카테고리의 다른 글
[혼공머신] Chapter 07, 08, 09 딥러닝 (0) | 2024.03.13 |
---|---|
[혼공머신] Chapter 06 - 비지도 학습 (1) | 2024.02.26 |
[혼공머신] Chapter 05 - 트리 알고리즘 (0) | 2024.02.17 |
[혼공머신] Chapter 04 - 다양한 분류 알고리즘 (1) | 2024.02.10 |
[혼공머신] Chapter 03 - 회귀 알고리즘과 모델 규제 (2) | 2024.02.05 |