07일차 [ Ensemble ] - votus777/AI_study GitHub Wiki
오늘 실습했던 앙상블과는 별개로 머신 러닝에서의 앙상블에 대해 알아본다
앙상블 ( Ensemble )
- 여러 개의 모델을 조합시켜 학습시키는 모델링 기법
- 딥러닝보다 더 넓은 범위인 머신 러닝에 포함되는 개념이다.
티배깅 아니다
Bagging Bootstrap Aggregating의 줄임말
Aggregating : 집계
-
모집단에서 데이터를 반복적으로 샘플링하고,
이 조각난 데이터로 학습을 한 다음,
나온 결과들을 모아 최종 모델을 만들고 최종 결과값을 구한다. -
병렬 구성 -> 일반적인 모델을 만들자!
-
통계학에서도 쓰이고 ML에서도 쓰인다.
Bagging의 가장 대표적인 모델이 바로 Random Forest. -
여기서 왜 랜덤포레스트가 나오냐면 Bagging의 기본 개념이 바로 결정트리인데
기초 분류기라고도 불리는 이 결정 트리들을 모아놓은게 바로 랜덤포레스트
나무가 모이니 숲이라는 참으로 단순하지만 직관적인 네이밍 -
각각의 트리는 작은 편향과 큰 분산을 갖기 때문에 overfitting이지만
트리들이 모이면서 편향을 유지하면서 분산을 감소시켜 모일 수록 성능이 올라간다. (노이즈 감소) -
결정 트리는 정보의 엔트로피 어쩌구 저쩌구.. 거기까지는 안들어갔다
-
연속적인 데이터에서는(Contiuous Data)
모든 모델들의 결과값에 평균을 취한 값이 최종 결과값이 되고 -
분류에서는 (Categorical Data), 다중 투표 나뉜 모델들 중 4개가 A, 2개가 B를 선택하면 다수결로 최종결과는 A가 된다.
-
단, Bagging은 데이터에 잡음이 많거나 데이터에 의존성이 있는 경우에는 성능이 떨어진
장점 : Overfitting을 피할 수 있음, 간편하다, 빠르다 단점 : 차원이 높고(?) 희소한 데이터에는 맞지 않음, 선형 모델보다는 느림
-
Bagging과 반대로 중복을 허용하지 않는 샘플링 방식을 Pasting이라 한다.
Boosting
뭘 부스팅 하냐 -> Gradient Boosting, adaptive boosting(AdaBoost), XGBoost
-
작고 독립적인 모델 안에서 값을 예측하고
다른 모델과의 오차를 보완하는 방향으로 모델을 추가하는 알고리즘 -
경사하강법과 손실함수를 사용하여 bias 값을 보정해 나간다.
-
역시 많아질수록 성능이 좋아진다.
-
직렬 구성 -> 어려운 문제를 맟추자!
장점 : 성능이 좋다, error가 적다 단점 : 훈련 시간이 길다(느리다), 매게 변수에 민감하다, 특이값에 취약하다, overfitting 될 가능성이 높다 (왠지 단점이 더 많은 것 같은데 성능이 워낙 강력해서 kaggle도 씹어먹고 다녔다 카더라) (그래도 딥러닝 보다는 빠르다)
reference
이것저것 싹 다 합쳐서 만든 Meta Modeling a.k.a Stacking 기법도 있다. 다 좋은데 너무 연산이 많아서 무겁다는 것이 흠