특징
weak learner 을 여러개 만듦.
각 모델마다 bias ( 실제값과의 차이 ) 와 variance ( 각 모델의 예측값 사이의 분산) 이 있음.
variance 가 클수록 대개 overfitting 인데 각 모델의 예상치를 평균내면 분산이 줄어듦.
즉 overfitting 이 하나의 모델에서 이루어져도 다른 모델이 이를 완화해주는 특징.
Bagging(Bootstrapped Aggregation)
그 결과 어떤 instance 는 중복되고 어떤 instance 는 학습되지 않음.
각 샘플로부터 같은 종류의 weak algorithms 을 학습시킴.
그렇게 만들어진 다양한 모델 각각이 vote 를 해서 결과를 냄 - 대개 평균을 냄
장점은 training data 에 민감한 모델에서 매우 잘 작동하는 것.
단점은 반대의 경우에 효과가 없다는 것..
=>그런 경우는 model 자체에 랜덤 요소를 넣음 => Randomization
Random Forest
decision tree 를 weak algorithms 으로 쓰는 Bagging.
tree 를 만들 때 n 개의 후보 옵션을 랜덤으로 선택해서 그 중에서 노드를 만듬.
즉 다양성을 강화
Boost
Bagging 이랑 거의 흡사하나 weak learner 을 순차적으로 학습시킨다는 것이 다름.
무슨말이냐면 전단계에서 틀린 instances 에 대해서 가중치를 높게 붙임.
그럼 그 다음에 학습하는 모델은 전단계에서 틀린것에 대해서 잘 판별할 것임.
이때 한번 가중치가 올라간 것에 중복해서 작용하진 않음.
그리고 한번 반복하면 전체 가중치를 normalization 을 하고 다시 시작함.
이게 반복이 되면 쉬운 instance 는 가중치가 적고 어려운 instance 는 가중치가 커질거임.
어려운 쪽에 가중치가 너무 커지면 쉬운쪽이 틀릴 수도 있으므로 둘의 관계는 적절히 유지됨.
w *= error / ( 1-error )
위 식으로 모델을 학습시킬 때마다 instance의 가중치를 업데이트 함.
expected += -log(error/(1-error))
예측할 땐 각 모델이 맞춘 instance 의 가중치를 합해서 위 식에 집어 넣음.
error = 0 은 로그에 정의되지 않았고 실제로 예측값에 포함시키지 않아 overfitting 방지함.
위 가중치가 각 모델의 예측값에 더해져 종합된 결과를 내보냄.
AdaBoost
1997 만들어진 최초의 boosting 모델로 adaboost 가 있음.
Stacking
모델의 종류를 다양하게 쓰는 앙상블 기법
각 모델은 vote 로 합쳐지지 않고 meta learner 가 데이터마다 어느 모델이 괜찮은지 학습해 판단함.
base-learner = level-0 model => 원래 데이터와 label
meta learner = lever-1 model => 원래 데이터와 cross-val 이 label
계산량이 많음.