앙상블 기법

우수민·2021년 8월 9일
0

ML 관련 정리

목록 보기
9/10
post-thumbnail
post-custom-banner

앙상블

과적합 경향 모델의 앙상블

  • 앙상블 모델을 사욜한다면 복잡하고 다소 과적합된 모델을 선택하면 좋다는 의견이 있다.
    • 보통 모델이 복잡할수록 그 모델에서의 평균적인 예측값과 실제값의 편향은 작아지는 한편 예측값의 불안정성, 분산은 커진다. 반대로 모델이 단순할수록 편향은 커지고 분산은 작아진다.
  • 앙상블은 복수의 예측값을 조합함으로써 분산을 줄이는 효과가 있으므로, 다소 복잡한 모델을 만들되 예측값의 ㅇ나정성을 높여 편향을 줄이는 것을 중시한다는 아이디어이다.

스태킹

스태킹의 포인트

  • 스태킹은 학습 데이터의 정보를 최대한 사용하려는 성질이 있으므로 학습 데이터와 테스트 데이터의 분포가 같고 대량의 데이터를 다룰때 유용하다.
  • 반대로 시계열 데이터처럼 학습 데이터와 테스트 데이터의 분포가 서로 다를때에는 과적합되는 경향이 있으므로 스태킹 대신 모델의 가중평균에 따른 앙상블을 이용할 때가 많다.

홀드아웃 데이터의 예측값을 이용한 앙상블

  • 블렌딩
    • 일단 모델의 예측값을 다음 계층의 특징으로 사용한다.
    • 스태킹에서는 교차 검증 분할 별로 학습시키지만, 이 방법으로는 홀드아웃 데이터를 먼저 나눈다. 2계층에서는 홀드 아웃 데이터로 학습하고 테스트 데이터를 예측한다.
    1. 학습 데이터를 훈련 데이터와 홀드아웃 데이터로 나눈다.
    2. 모델을 훈련 데이터로 학습시킨 뒤 홀드 아웃 데이터와 테스트 데이터의 예측값을 작성한다.
    3. 2과정을 앙상블하려는 모델 수만큼 반복한다.
    4. 2계층 모델로서 2~3에서 생성한 특징을 사용하여 모델의 학습과 예측을 한다.
    • 이 방법은 1계층 모델을 교차 검증하지 않으므로 계산 시간이 적게 걸리고, 1계층 모델 학습시 홀드아웃 데이터의 목적변수를 전혀 알 수 없으므로 데이터 정보 누출의 위험이 크지 않다는 장점이 있다.
    • 그러나 사용할 수 있는 데이터의 양이 줄어들어 많이 사용되지 않는다.

앙상블 대상 모델의 선택 기준

  • 앙상블로 높은 효과를 내려면 다양성이 풍부한 모델을 조합하는게 좋다고 알려져 있다.
  • 성능이 낮아도 성질이 서로 다른 모델이라면 앙상블을 통해 성능 개선에 기여할 수 있다.
  • 앙상블에서는 성능보다 다양성이 중요하므로 모델 하나의 성능이 낮더라도 버리지 않는 편이 좋다.

다양한 모델 활용

  1. GBDT
  2. 신경망
  3. 선형 모델
  4. k-최근접 이웃 알고리즘
  5. ERT 혹은 랜덤 포레스트
  6. RGF(regularized greedy forest)
  7. FFM(field-aware factorization machines)

<괜찮은 조합>
1. 2~3개의 GBDT(결정 트리의 깊이가 얕은 것, 중간 정도의 것, 깊은 것)
2. 1~2개의 랜덤 포레스트(결정 트리의 깊이가 얕은 것, 깊은 것)
3. 1~2개의 신경망(각각 계층 수가 많은 것과 적은 것)
4. 1개의 선형 모델

하이퍼파라미터 변경

  1. 상호작용 방식을 변경(결정 트리의 깊이 변경 등)
  2. 정규화 강도를 변경
  3. 모델의 표현력을 변경(신경망 계층이나 유닛 수 변경 등)

특징 변경

  1. 특정 특징의 조합을 사용/사용하지 않음
  2. 특징의 스케일링을 수행/수행하지 않음
  3. 특징 선택을 강행/그다지 하지 않음
  4. 이상치를 제외/제외하지 않음
  5. 데이터 전처리와 변환 방식을 변경

문제 파악 방식을 변경

  1. 회귀 문제에서는 어느 값 이상과 이하의 이진 분류 문제 모델을 만든다.
  2. 0 이상의 값을 받은 판매액의 회귀 문제에서 판매여부를 판단하는 이진 분류 모델을 만든다.
  3. 다중 클래스 분류에서 일부 클래스만을 예측하는 모델을 만든다. 그 모델에서는 일부 클래스에 특화된 기법을 사용할 수 있다.
  4. 중요하지만 결측값이 많은 특징이 있을 때 그 특징을 예측하는 모델을 만든다.
  5. 어느 모델에 의한 예측값의 잔차(=목적변수 - 예측값)에 대해 예측하는 모델을 만든다.

참고 : 데이터가 뛰어노는 AI 놀이터, 캐글

profile
데이터 분석하고 있습니다
post-custom-banner

0개의 댓글