LightGBM 파라미터 튜닝

LightGBM 파라미터 튜닝

Lightgbm은 leaf-wise 트리로서, 가로로 확장하며 가장 유망한 노드를 우선 탐색하는 알고리즘이다. depth-wise 알고리즘보다 빠르지만, 적절한 파라미터를 사용하지 않으면 오버피팅이 될 수 있다.

Leaf wise tree의 3가지 중요한 파라미터

1. num_leaves

오버피팅을 방지하는데 중요한 파라미터이다. 즉 오버피팅되었다 싶으면 값을 줄이면 된다.

트리의 최대 깊이를 의미한다.

일반적으로 num_leaves를 2^max_depth보다 작게 설정해야한다. 같으면 depth-wise tree와 같은 수의 leaves를 가지게 하여, 오버피팅이 발생할 수 있다.

2. min_data_in_leaf

오버피팅을 방지하는데 중요한 파라미터이다.

leaf가 가지고 있는 최소한의 데이터 수

값을 크게 하면 언더피팅이 생길 수 있다.

큰 데이터 셋(10000건 이상)에서는 100~1000의 값이면 충분하다.

3. max_depth

tree의 depth 최대치를 지정하는 것이다.

default값은 -1로, 가능한 최대로 설정된다.

4. learning_rate

최종 결과인 각 트리에 영향을 미치는 변수로, 일반적으로 0.1, 0.001 등으로 설정한다.

주요 3개의 파라미터를 튜닝할 때 순서는

1. 먼저 적절한 max_depth 값을 찾아낸다.

- max_depth를 찾을 때, 큰 값으로 설정하여 학습하면 default일 때와 성능이 같은 경우가 있다.

2. max_depth 값에 알맞게 num_leaves를 찾아낸다.

3. min_data_in_leaf를 찾아낸다.

from http://randomwalk.tistory.com/54 by ccl(A) rewrite - 2021-10-25 19:01:01