본문 바로가기
머신러닝

[분석 방법론] Ensemble Learning(8) - LightGBM

by 하응 2023. 1. 1.

본 포스팅은 고려대학교 산업경영공학부 강필성 교수님의 [Korea University] Business Analytics (Graduate, IME654) 강의   04-8: Ensemble Learning - LightGBM영상을 보고 정리한 내용입니다.


1. LightGBM Idea

- 기존 GBM 알고리즘은 1) 모든 feature에 대해, 2) 모든 객체(data instance)를 스캔하여 information gain을 추정하는 방식으로 가능한 split point들을 탐색 

- 앞서 살펴봤던 XGBoost에서는 객체들을 "bucket"으로 구분하여 2) 모든 객체를 스캔 하는 부담을 줄였음 

- LightGBM에서는 1) 모든 feature에 대해 스캔하는 부담을 줄이기 위해 "Exclusive Feature Bundling(EFB)" 방법론을 적용하고, 2) 모든 객체를 스캔하는 부담을 줄이기 위해 "Gradient-based One-Sided Sampling(GOSS)" 방법론을 적용

- Exclusive Feature Bundling(EFB) : 

   + one-hot encoding의 경우와 같이 feature space가 매우 sparse한 경우에는, 많은 feature들이 대부분 exclusive하다는 가정 (하나의 객체에 대해서 2개의 변수가 0이 아닌 값을 동시에 가질 확률이 매우 작다는 의미) 

   + 이러한 exclusive features를 bundling(묶어서 변환)하는 방법론 

   + 간혹 feature들이 exclusive하지 않는 경우, 오류가 발생할 리스크 있음 

- Gradient-based One-Sided Sampling(GOSS) : 

   + 개별적인 데이터는 서로 다른 gradient를 가지고 있고, gradient가 큰 데이터가 더 중요함 

   + gradient가 큰 데이터는 탐색하고, gradient가 작은 데이터는 sampling하여 탐색

 

2. Exclusive Feature Bundling(EFB) 상세

- 1) greedy bundling, 2) merge exclusive features 2단계로 진행 

-  greedy bundling : 

   + 변수들을 bundle로 그룹핑 

   + Graph coloring problem으로 볼 수 있음, Graph(V, E) 에서 V는 feature, E는 feature 간 conflicts 를 의미, conflict가 없는 feature끼리 bundle을 구성할 수 있도록

   + cut-off 값은 hyper-parameter

original dataset에서 edge의 강도에 대한 matrix를 도출한 뒤, degree 순서대로 graph 생성
cut-off를 0.4로 가정할 때, 차수가 가장 높은 \(x_4\)부터 강도가 2 이상되는 edge 제거
\(x_5\), \(x_2\) 에 대해서도 edge 제거, 기존 5개의 변수를 3개의 bundle로 그룹핑 (x1, x3) , (x2, x4), (x5)

 

- merge exclusive features : 

   + bundle 내에 있는 feature에 대해 merge 

   + 기준 feature를 정하고, 기준 feature의 최댓값을 offset 값으로 정함 

   + 0이 아닌 값에 대해서는 기준 feature의 값을 그대로 사용하지만, 0인 경우에는 bundle 내 다른 변수 값에 offset을 더한 값을 사용 

   + conflict한 경우(둘 다 0이거나, 둘 다 0이 아닌 값을 갖는 경우), 기준 feature 값을 가져옴

   + bundle 내 변수가 3개 이상이어도 순차적으로 기준 변수를 정하고 merge 가능 

merge를 통해 정보량은 기존과 유사하게 보존하면서 변수의 수를 줄일 수 있음

 

3. Gradient-based One-Sided Sampling(GOSS) 상세

- 데이터 객체를 gradient 순서대로 정렬한 후, top a*100%의 객체들은 전부 활용하고, 나머지 객체의 b*100%의 객체들은 랜덤하게 선택하여 활용 

- a와 b는 hyper-parameter

 

4. LightGBM 성능 

-  어떠한 데이터인지, 어떠한 task인지에 따라 LightGBM, XGBoost, CatBoost 성능이 달라짐 

 


 

참고 자료 

- 고려대학교 산업경영공학부 강필성 교수님 강의  

 

반응형

댓글