LightGBM

LightGBM

LightGBM의 개발 배경

XGBoost는 GBDT(Gradient Boosting Decision Tree)의 일종으로 그것의 효과적인 구현 중 하나로 꼽히지만, 특성 차원이 높을 때와 모든 가능한 분할 지점의 정보 이득을 추정해야 할 때 많은 시간자원을 소모한다는 문제점을 가지고 있다.

이를 극복하기위해 마이크로소프트에 의해 LightGBM이 개발되었는데, Gradient-based One-Side Sampling(GOSS)과 Exclusive Feature Bundling(EFB)과 같은 알고리즘을 사용했다. 이 두 알고리즘을 통해 전체 데이터셋의 일부만을 사용해 각 트리를 훈련시킬 수 있으며, 고차원의 희소 특징을 효율적으로 처리할 수 있게 되었다.

LightGbM의 특징

특징 설명
고속처리 및 효율성 병렬 처리 및 데이터 샘플링 최적화를 통해 기존 GBDT보다 훨씬 빠른 학습 가능
메모리 효율성 연속형 변수에 대해 구간을 만듦으로써 계산 과정에서 메모리 사용량 감소
결측치 자동 처리 결측치 처리 과정 없이 결측치가 있는 데이터를 자동으로 인식하고 이를 학습 과정에 사용
범주형 변수 자동 처리 자료형을 category로 변경하면 별도의 인코딩 과정 없이 처리 가능
스케일링 불필요 트리 기반 모델로서 입력 변수의 스케일에 민감하지 않아 일반적으로 별도의 스케일링 작업이 불필요

XGBoost와의 차이

XGBoost란?

XGBoost(eXtreme Gradient Boosting)는 고성능 그래디언트 부스팅 라이브러리로, 정형 데이터 분석 대회에서 널리 사용되어 왔다. 그래디언트 부스팅의 전통적인 방식을 발전시켜 병렬 처리와 과적합 방지 기능에서 강력한 성능을 발휘한다.

LightGBM vs. XGBoost

둘 모두 그래디언트 부스팅에 기반한 라이브러리이지만 주요한 차이점이 존재한다.

  • 성장방식 XGBoost는 level-wise 방식을 사용하여 균형 잡힌 트리를 만들어 과적합을 방지하지만, LightGBM은 Leaf-wise 방식을 사용하여 비대칭적인 트리를 빠르게 성장시킬 수 있다.

Level-wise는 모든 노드가 같은 레벨로 도달할때까지 자식 노드를 확장한다. 트리가 균형 성장을 하며 트리의 높이가 최소화되기 때문에 과적합을 방지할 수 있다는 장점이 있는 반면 자원 효율성이 떨어진다.

Leaf-wise는 트ㄹ의 성장을 최적화하여 가장 큰 손실 감소를 제공하는 노드를 우선적으로 확장한다. 종종 더 깊은 트리를 만들어 과적합의 우려가 있지만, 적절하게 모델을 구성할 경우 과적합의 위험을 관리하면서도 정확한 모델을 빠르게 구축할 수 있다.

  • 속도 및 대규모 데이터 처리 XGBoost는 병렬 처리 기능을 사용하여 동시에 트리를 구축하고 학습 속도를 향상시키는 능력이 있다. 그러나 이 과정에서 전체 데이터셋의 모든 특성을 스캔해야 하므로, 매우 큰 데이터셋의 경우 상당한 자원이 소모된다.

반면 LightGBM은 히스토그램 기반 분할 방식을 사용하여 자원 소모를 최적화한다. 히스토그램 기반 분할 방슥을 통해 데이터의 모든 연속형 변수를 미리 정의된 구간(Bin)으로 변환하고, 이 구간 정보를 바탕으로 트리의 분할을 결정한다.

  • 범주형 변수 처리 XGBoost는 범주형 데이터를 처리하기 위해 인코딩 과정을 거쳐 수치형 데이터로 변환하여야 하는 반면, LightGBM은 범주형 변수의 자료형을 카테고리로 변환하기만 해도 학습이 가능하다.



Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • [CS231n]Exercise1.5 - Features
  • [CS231n]Exercise1.4 - Two Layer Net
  • [CS231n]Exercise1.3 - Softmax
  • [CS231n]Exercise1.2 - Support Vector Machine