[4-4] LightGBM, CatBoost

LightGBM

기존 GBM 은 "모든 Feature, 모든 데이터"를 체크하기 때문에 수행시간이 오래 걸렸다. XGBoost 는 모든 데이터를 로드할 수 없는 상황에서 데이터를 Bucket 단위로 분할하여 탐색하면서 수행시간을 감소시키었습니다. LightGBM 은 데이터의 수와 데이터의 특징 수를 줄이기 위하여 다음 두가지를 수행한다.

  • [탐색 Data 감소] Gradient-based One-Side Sampling (GOSS) : Data Instance 마다 각각이 갖는 gradient 가 다르다. gradient 가 크면 information gain 이 많으므로, gradient 가 큰 상위 데이터는 고정시키고, 작은 gradient 를 갖는 데이터들은 랜덤 샘플링(드롭)을 한다.

  • [탐색 특성 감소] Exclusive Feature Bundling (EFB) : 번들링을 한다고 해서 성능의 저하는 일어나지 않는다.

Gradient-based One-Side Sampling

그라디언트가 작은쪽부터 큰쪽까지 정렬한 후, 상위 a * N 개는 고정적으로 사용하되, 선택되지 않은 데이터에 대해서는 랜덤하게 b * N 개를 추출합니다. 데이터의 다양성을 확보할 수 있다. Hyperparameter 로 a, b 를 정해야 한다. 아래 수식을 만족하면 더 효과가 좋습다. Case b 에 해당한다.

1ab>1\frac{1-a}{b} >1

Exclusive Feature Bundling

다수의 특성을 합치는 그래프 컬러링 문제라 생각할 수 있다. 아래 초록색으로 된 노드는 특성 하나로 번들링 될 수 있다.

0이 아닌 값이 등장한 횟수로 에지의 가중치를 표현하자면 다음과 같다.

이를 그래프로 표현하자면,

CatBoost

기존 Gradient Boosting 의 문제점

  1. Prediction Shift : 학습시 사용되었던 데이터 셋를 가지고 만들어놓은 누적함수와 테스트시 사용한 데이터 셋의 분포가 다르다.

  2. Target Leakage : TS(Target Statistic) -> 범주형 데이터를 수치형으로 변환시키기 위해서 해당 속성에 타깃값의 평균값을 사용하여 수치형 데이터로 변환하는데 이는 타깃 정보의 누수가 일어난다.

해결책

  1. Ordered Boosting for Prediction Shift

  2. Ordered Target Statistics for Target Leakage

    1. One-Hot Encoding : 비효율적

Last updated