
5일차 갓생일기! 오늘도 갓생을 살기위해 책상에 앉았다.
요즘 머신러닝 모델들을 하나씩 뜯어보면서 느끼는건,
"아 그냥 쓰는 거"랑 "왜 이런 구조인지 이해하고 쓰는거"는
생각보다 차이가 크다는 점이다.
그래서 오늘은
그래디언트 부스팅 계열 모델 중에서도 자주 보이던 LightGBM을 정리해봤다.
LightGBM(Light Gradient Boosting Machine)은
Microsoft에서 개발한 고성능 그래디언트 부스팅 프레임 워크다
정형 데이터(tabular data)를 다룰 때
빠른 학습 속도와 좋은 성능 덕분에
실무와 캐글에서 정말 자주 등장한다.
🥸여기서 질문
그래디언트 부스팅,프레임 워크이 뭔데? 어떤 상황일때 쓰는거지?
이전 모델이 틀린 부분(오차)을
다음 모델이 보완하면서 학습한다.
-처음 모델 ->대충 예측
-그 오차를 기준으로 다음 모델 학습
-이 과정을 여러 번 반복
-점점 예측이 정교해짐
여기서 Gradient(경사)라는 말이 붙은 이유는
->오차를 줄이는 방향을 손실 함수의 기울기(gradient)로 계산하기 때문
그래서
-단일 모델보다 성능이 좋음
-대신 과적합 위험도 있어서 제어가 중요함
미리 정해진 구조와 규칙 안에서
우리의 필요한 부분만 채워서 쓰게 해주는 틀
LightGBM을 프레임워크라고 부르는 이유
즉,
"이 규칙 안에서 모델을 학습시켜라"
라고 방향을 잡아주는 역할
GBDT(Gradient Boosting Decision Tree)는
오래전부터 널리 쓰이던 강력한 알고리즘이다.
그 구현 중 하나가 바로 XGBoost.
다만, GBDT 계약 모델들은
특성 차원이 높아질수록 모든 분할 지점의 정보 이득을 계산해야 해서
학습 기간이 오래 걸리고 메모리 사용량이 커지는 문제가 있었다.
이런 한계를 개선하기 위해
대규모 데이터셋에서도빠르게 학습할 수 있도록
LightGBM이 등장했다.
데이터가 1만개 이하로 적을 경우 과적합 위험이 있다.
그럼에도 불구하고 다음 장점들 때문에 많이 사용된다.
"그럼 전처리 이후에 스케일링은 안해도 되는 건가 ? Pipeline에 LightGBM은 안 들어가는 건가?"
👉 결론부터 말하면
LightGBM은 스케일에 민감하지 않지만,
Pipeline은
LightGBM의 고속 처리와 효율성을 가능하게 하는 핵심은
병렬 처리 + 데이터 최적화
특히 히스토그램 기반 분할 방식을 사용해
모든 값을 일일이 스캔하지 않고도 빠르게 분할기준을 찾는다
둘 다 그래디언트 부스팅 기반 라이브러리지만
트리를 키우는 방식에서 차이가 있다.
XGBoost : Level-wise

Level-wise 방식은
트리 높이를 최소화하면서 성장하기 때문에
과적합을 막는 데 유리하다.
"깊이나 가지 수는 하이퍼파라미터로 제한하는 건가? 안하면 끝없이 자라서 과적합이 생기나?"
-맞음. 트리 모델은 자동으로 적당히 멈추지 않음
그래서
LightGBM : Leaf-wise


"그리드 탐색 같은건가? 눈앞의 이득으로 노드를 확장하는 건가?"
n_estimators
max_depth
num_leaves
from lightgbm.callback import early_stopping, log_ecaluation
이 둘은 모델의 정의가 아니라 모델을 학습시킬때(fit할 때)사용하는 콜백(callback)이다.
early_stopping
log_evaluation
*과적합 방지 + 학습 과정 모니터링용
그럼 콜백(callback)이란?
콜백(callback) : 학습 도중 특정 시점에 자동으로 호출되는 함수
모델이 학습을 계속 진행하는 동안
쉽게 말해
"지금 이 시점에 이거 한 번 확인해줘"
"조건 만족하면 멈춰줘"
같은 역할을 하는 장치
*항상 검증 성능과 함께 해석해야함 !
🖍️공부 정리🖍️
오늘은 LightGBM이 "빠르다"에서 끝나는 모델이 아니라 왜 빠른지,어떤 구조인지를 조금은 이해한 날이다.
예전에는 XGBoost랑 비슷한 모델 정도로만 봤다 . 전에도 적었다시피 결과값도 똑같이나오기도해서 단순 생각으로 !
이제는 언제 LightGBM을 쓰면 좋은지도 조금씩조금씩 이제는 감이 잡히는 느낌이다.
아직은 낯설지만, 이런 정리가 쌓이면
나중에는 스스로가 모델을 선택할 때 분명 도움이 될거라고 믿는중이다!! 아니 분명 도움이될꺼야!!
탑쌓듯이 아주 조그마한 돌도 옆에 올려가면서 쌓는중이다 𐔌՞・·・՞𐦯