CatBoostClassifier 모델링

Yelim Kim·2021년 10월 15일
0

Kaggle

목록 보기
9/29

이전 글 랜포 모델링에 이어서 캣부스트로 모델링하는 방법을 소개한다.

가장 간단한 CatBoostClassifier로 모델링을 할 수 있다. 코드 형식은 랜포와 똑같다!

from catboost import CatBoostClassifier
cbc = CatBoostClassifier(verbose = 200)
cbc.fit(train2, train['OutcomeType'])

아래는 캣부스터 모델의 특징이다.

  • 이런 트리 모델은 정형데이터에서 점수가 잘 나온다.
    트리=모델이라고 생각하면 된다.
    캣부스트는 여러개의 모델이 합쳐져서 일을 더 잘하는 모델이 된다. 여기서 랜포와 캣부스트 모두 기본적으로 나무는 100개로 설정되어 있는데, 나무들이 도와주는 방식에서 차이가 난다.

  • 랜포는 나무들이 독립적이고, 서로 도와주지 않아서 각 나무(모델)들의 점수가 뒤죽박죽이다.

  • 캣부스트는 나무끼리 도와줄 수 있고 서로 피드백을 주고받는다. 나무들이 많을수록 성능은 좋아진다.
    그러나 이 성능이 좋아진다는 얘기는 리더보드에서 점수가 잘나온다기 보다 트레인을 얼마나 잘 학습하냐 로 해석된다. 즉, 학습 데이터를 너무 달달 외우기 때문에 새로운 데이터에 대해서는 제대로 학습을 하지 못할 수도 있다. (overfitting)

  • 따라서 캣부스트 모델을 사용할 경우에는 하이퍼파라미터의 설정을 잘 해줘야 한다. 그럼 랜포보다 훨씬 학습률이 좋게 나온다.

  • 캣부스트는 다른 부스터 모델보다 카테고리형 학습을 잘 하므로 참고하자!

  • 부스팅 모델은 결측치를 알아서 처리한다는 장점이 있다.

조금 더 연구해봐야 할 것 같다!

profile
뜬금없지만 세계여행이 꿈입니다.

0개의 댓글