AI
LGBM
hyukji
2024. 8. 23. 00:02
GBM이란?
- Boosting
- 약한 모델을 여러 번 순차적으로 적용해 강한 모델을 만들어 나가는 것을 의미한다. 즉 이전 학습기가 잘못한 예측한 데이터를 다음 학습기가 학습함으로써 순차적으로 예측 정확도를 높여가는 방식
- Gradient Decent
- loss 함수의 미분값의 크기가 점차 줄어드는 방향으로 가중치를 업데이트하여 손실함수의 최소값을 찾가는 방법을 말한다.
- 쉽게 말해, Gradient에 마이너스를 취해 가중치를 업데이트 하는 방법.
- GBM 예시
- 성별과 키로 몸무게를 예측하는 회귀 문제
- 초기모델 : 모든 데이터의 샘플을 몸무게의 편균인 55로 예측
- 첫번째 학습기
- 학습 : 잔차(실제 몸무게 - 초기예측값) 를 이용해 학습. 이를 이용해 MSE(평균제곱오차)가 최소가 되는 값을 분기점으로 택한다.
- 결과 : 잔차가 가장 줄어드는 분기점으로 Height ≤ 171 로 분기했고, 각 그룹의 예측값은 -7, +7이된다. 이를 초기 예측값에 더해 최종 예측값을 업데이트
- 두번째 학습기
- 학습 : 첫번째와 동일.
- 결과 : 키 179를 기준으로 분기, 각 그룹의 예측값은 -1, 5로 변경. 최종 예측값을 업데이트
- 학습 결과 : 첫번째 학습기가 학습한 잔차보다 두번째 학습한 잔차가 더 줄어든다. 최종 예측값은 점차 실제값에 가까워진다. 이러한 과정을 반복해 최종 예측값은 앞서 나온 예측값들의 합이된다.
- 성별과 키로 몸무게를 예측하는 회귀 문제
LGBM
- LightGBM(Light Gradient Boosting Machine) 은 트리 기반의 학습 알고리즘은 Gradient boosting 방식의 프레임워크이다.
- LGBM은 트리를 수직으로 확장하는 점에서 다른 트리 알고리즘과 차이를 가진다.
- 장점 : 최대 delta loss가 증가하도록 leaf 개수 설정하기 비교적 loss가 작아짐
- 단점 : 데이터가 적을 수록 과적합될 가능성인 높다.
LGBM 특징
- Ligth하다(속도가 빠르고 메모리를 적게차지한다)
- 결과 정확도가 높다. 하지만 overfitting에 민감하다. 최소 10,000 개 이상일 때 좋음.
- 다른 기법들과 달리 원핫인코딩 기법을 쓰지 않는다.
- 원핫인코딩 : Obect와 String과 같은 범주형 변수를 숫자로 변환해서 학습시키는 것
- 원핫인코딩을 LGBM에 쓰면 트리가 더 언밸런스 해지기에 시간소요, 과적합 문제가 발생
상세 코드
https://colab.research.google.com/drive/1WxUhuNWpde3HYtnN9QAOi1TzhcBgyhJX#scrollTo=LZTz04RcLWzM
ref
https://blog-ko.superb-ai.com/algorithm-in-3-minutes-gradient-boosting-model/