개요
: 모델의 사용 편의성과 모델 성능이 높다보니 경진 대회에서 차지하는 존재감이 매우 강하다.
특징
주요 라이브러리
xgboost 사용팁
booster
: GBDT를 사용하고 싶다면 디폴드값인 gbtree로 성정한다. gblinear로 설정하면 선형 모델이 되고 dart로 설정하면 정규화에 dart라는 알고리즘을 사용한 GBDT가 된다.
gblinear는 모델의 표현력이 선형 모델과 같으므로 잘 쓰이지 않는다. DART는 경진 대회에 따라 효과를 볼 때가 있어 간혹 사용된다.
DART : 그레디언트 부스팅에서는 초반에 만들어지는 트리의 영향이 강하다 보니 마지막에 작성되는 트리는 소소한 부분에 맞춰진다. DART는 이처럼 소소한 부분에 적합한 트리 작성을 억제하고자 신경망에서 사용되는 드롭아웃을 적용하는 방법이다. 결정 트리를 작성할 때마다 드롭아웃 방법처럼 일정 비율의 트리가 존재하지 않는 셈 치고 학습시킨다. 한편 존재하지 않는 트리와 새롭게 작성된 트리의 가중치를 그대로 더하면 과적합이 되므로 이들 트리의 가중치를 약하게 조정한다.
lightgbm
속도가 느려 lightgmb이나 xgtboost에 비해 많이 쓰이지는 않는다. 다만 상호작용이 중요한 경우 모델 성능이 잘 나올 때도 있어서 시도해볼 가치가 있는 모델이다.
개요
: 정형 데이터는 딥러닝에 사용되는 10층 이상의 신경망이 아닌, 은닉 계층이 2~4층 정도의 완전 연결 계층으로 이루어지는 다층 퍼셉트론(MLP)이라는 구조를 사용한다.
특징
케라스 사용 팁
목적 함수
: 모델을 컴파일할 때는 매개변수 loss에 목적함수를 설정하고 목적함수가 최소화하도록 학습이 진행된다.
하이퍼파라미터
: 신경망에서는 계층의 구성 등 자유로운 부분이 많으므로, 매개변수에 따라 은닉 계층의 계층 수나 유닛 수가 서로 다른 네트워크를 구현하는 코드를 먼저 작성한 뒤에 매개변수를 설정하고 조정한다. 옵티마이저 종류와 학습률 등 매개변수, 은닉 계층의 계층수와 드롭아웃 강도 등을 하이퍼파라미터로 튜닝한다.
드롭아웃
학습 데이터와 검증 데이터으 ㅣ점수 모니터링
콜백
: 학습할 때 미니배치의 처리별 또는 에폭별로 짖어한 처리를 빠르게 진행할 수 있다.
임베딩 계층
: 양의 정수를 밀접 벡터(dense vector)로 변환하는 계층으로, 모델의 첫번째 층으로만 설정할 수 있다. 이 계층은 범주형 변수를 입력으로 할 때 사용할 수 있다. 이진 변수가 아닌 범주형 변수는 본래 원-핫 인코딩에서 전처리가 이루어졌지만, 레이블 인코딩에서 임베딩 계층을 적용하는 방법이 활용되기 시작했다. 또한 자연어를 다룰 때 Word2Vec이나 Glove와 같이 학습이 끝난 임베딩을 가중치로 설정할 수도 있다.
배치 정규화
: 배치 정규화 계층을 이용해 각 계층의 출력 편차를 미니배치 단위로 표준화함으로써 적절히 억제하는 방법으로, 효과가 높아 널리 쓰인다.
개요
: 모델 성능이 그리 높지 않고 GBDT나 신경망을 뛰어넘는 특장점이 거의 없다. 앙상블에서 하나의 모델이나 스태킹의 최종 계층에 적용하는 식의 용도로 주로 쓰이며 경진 대회에 따라 드물게 활약한다.
데이터가 충분하지 않거나 노이즈가 많은 등 과적합이 이루어지기 쉬운 데이터에서 종종 활약하기도 한다.
특징
FFM
범주형 변수(사용자, 상품, 장르)의 조합을 평가한 값이 목적변수로 주어지는 문제를 가정한다. 사용자, 상품, 장르를 원-핫 인코딩으로 나타내는 '사용자 수+상품 수+장르 수'를 특징의 개수로 삼고 희소 데이터로 나타낼 수 있다.
참고 : 데이터가 뛰어노는 AI 놀이터, 캐글