앙상블
과적합 경향 모델의 앙상블
- 앙상블 모델을 사욜한다면 복잡하고 다소 과적합된 모델을 선택하면 좋다는 의견이 있다.
- 보통 모델이 복잡할수록 그 모델에서의 평균적인 예측값과 실제값의 편향은 작아지는 한편 예측값의 불안정성, 분산은 커진다. 반대로 모델이 단순할수록 편향은 커지고 분산은 작아진다.
- 앙상블은 복수의 예측값을 조합함으로써 분산을 줄이는 효과가 있으므로, 다소 복잡한 모델을 만들되 예측값의 ㅇ나정성을 높여 편향을 줄이는 것을 중시한다는 아이디어이다.
스태킹
스태킹의 포인트
- 스태킹은 학습 데이터의 정보를 최대한 사용하려는 성질이 있으므로 학습 데이터와 테스트 데이터의 분포가 같고 대량의 데이터를 다룰때 유용하다.
- 반대로 시계열 데이터처럼 학습 데이터와 테스트 데이터의 분포가 서로 다를때에는 과적합되는 경향이 있으므로 스태킹 대신 모델의 가중평균에 따른 앙상블을 이용할 때가 많다.
홀드아웃 데이터의 예측값을 이용한 앙상블
- 블렌딩
- 일단 모델의 예측값을 다음 계층의 특징으로 사용한다.
- 스태킹에서는 교차 검증 분할 별로 학습시키지만, 이 방법으로는 홀드아웃 데이터를 먼저 나눈다. 2계층에서는 홀드 아웃 데이터로 학습하고 테스트 데이터를 예측한다.
- 학습 데이터를 훈련 데이터와 홀드아웃 데이터로 나눈다.
- 모델을 훈련 데이터로 학습시킨 뒤 홀드 아웃 데이터와 테스트 데이터의 예측값을 작성한다.
- 2과정을 앙상블하려는 모델 수만큼 반복한다.
- 2계층 모델로서 2~3에서 생성한 특징을 사용하여 모델의 학습과 예측을 한다.
- 이 방법은 1계층 모델을 교차 검증하지 않으므로 계산 시간이 적게 걸리고, 1계층 모델 학습시 홀드아웃 데이터의 목적변수를 전혀 알 수 없으므로 데이터 정보 누출의 위험이 크지 않다는 장점이 있다.
- 그러나 사용할 수 있는 데이터의 양이 줄어들어 많이 사용되지 않는다.
앙상블 대상 모델의 선택 기준
- 앙상블로 높은 효과를 내려면 다양성이 풍부한 모델을 조합하는게 좋다고 알려져 있다.
- 성능이 낮아도 성질이 서로 다른 모델이라면 앙상블을 통해 성능 개선에 기여할 수 있다.
- 앙상블에서는 성능보다 다양성이 중요하므로 모델 하나의 성능이 낮더라도 버리지 않는 편이 좋다.
다양한 모델 활용
- GBDT
- 신경망
- 선형 모델
- k-최근접 이웃 알고리즘
- ERT 혹은 랜덤 포레스트
- RGF(regularized greedy forest)
- FFM(field-aware factorization machines)
<괜찮은 조합>
1. 2~3개의 GBDT(결정 트리의 깊이가 얕은 것, 중간 정도의 것, 깊은 것)
2. 1~2개의 랜덤 포레스트(결정 트리의 깊이가 얕은 것, 깊은 것)
3. 1~2개의 신경망(각각 계층 수가 많은 것과 적은 것)
4. 1개의 선형 모델
하이퍼파라미터 변경
- 상호작용 방식을 변경(결정 트리의 깊이 변경 등)
- 정규화 강도를 변경
- 모델의 표현력을 변경(신경망 계층이나 유닛 수 변경 등)
특징 변경
- 특정 특징의 조합을 사용/사용하지 않음
- 특징의 스케일링을 수행/수행하지 않음
- 특징 선택을 강행/그다지 하지 않음
- 이상치를 제외/제외하지 않음
- 데이터 전처리와 변환 방식을 변경
문제 파악 방식을 변경
- 회귀 문제에서는 어느 값 이상과 이하의 이진 분류 문제 모델을 만든다.
- 0 이상의 값을 받은 판매액의 회귀 문제에서 판매여부를 판단하는 이진 분류 모델을 만든다.
- 다중 클래스 분류에서 일부 클래스만을 예측하는 모델을 만든다. 그 모델에서는 일부 클래스에 특화된 기법을 사용할 수 있다.
- 중요하지만 결측값이 많은 특징이 있을 때 그 특징을 예측하는 모델을 만든다.
- 어느 모델에 의한 예측값의 잔차(=목적변수 - 예측값)에 대해 예측하는 모델을 만든다.
참고 : 데이터가 뛰어노는 AI 놀이터, 캐글