TIL - 2023.06.07

배엘리·2023년 6월 7일
0

TIL

목록 보기
6/23

오늘은 XGBoost 다음으로 LightGBM을 배웠다.
수업 시작하기 전 강사님이 DS 과정의 미래?에 대해 설명해 주시는데 역시 대학원밖에 없을까...하는 생각이 들었다. 대학원을 바로 가야하나.. 그런 생각과 대학원을 간다면 나는 어떻게 발전될 수 있을지 (무엇을 얻어갈 수 있을지)에 대한 고민이 많아졌다.


📝 오늘 공부한 내용

LightGBM

Leaf-wise tree growth

XGBoost의 경우 level-wise tree growth인 반면 LightGBM은 Leaf-wise tree growth이다.
-> leaf 단위로 트리를 확장시킨다.

information gain

  • Decision trees들은 highest information gain으로 best split을 알아낸다.
  • information gain은 split전과 후의 entropy (measure of uncertainty or randomness)로 불순도가 높아질 수록 entropy는 높다.
  • information gain을 바탕으로 split을 진행한다.
  • leaf nodes들 중 성능향상에 도움이 제일 큰 leaf node에 split을 진행하며 트리를 확장시킨다.

장점

1) 성능 개선에 도움이 되지 않는 노드들을 만들지 않는다.
2) 더 적은 노드로도 높은 성능을 낼 수 있다.

  • 훨씬 작은 메모리로 빠르게 성능이 좋은 트리를 만든다.

단점

  • 데이터의 row가 10000이하라면 overfitting이 되기 쉽다.

꼭 기억하자!

  • num_leaves(leaf node)수 조절이 필수
  • max_depth를 세팅해야함
    -> max_depth를 크게 주고 num_leaves를 조절해야 함

LightGBM Parameters

CART

  • max_depth: 4~15
  • num_leaves:
    - tree가 가질 수 있는 최대 leaf node의 갯수
    • 2N12^N-1 개 e.g (31, 63, 127, 255, 511...)
  • min_child_samples:
    - 회귀모델일 때 leaf node가 되는 최소 sample 수 =
  • colsample_bytree:
    - feature 갯수 조절
    • 0.5 ~ 0.8
    • 데이터가 많을수록 줄어들어야 함
  • reg_lambda:
    - 0.1 ~ 20
    • 높을수록 overfitting 덜 하게

Tree ensemble 관련 param

  • n_estimators:
    - 50 ~ 2000
  • learning_rate:
    - 0.1, 0.01, 0.001
    • n_estimators가 올라가면 learning rate이 낮아져야함

🌷 느낀점

XGBoost도 그렇고 LightGBM도 그렇고 파라미터를 뭐로 어떻게 설정하냐가 정말 중요한 것 같다. 오죽하면 optuna같은 파라미터를 조절해주는 프레임워크도 나왔을까..하는 생각이 든다. 각 모델의 이론과 장단점을 잘 파악해서 언제 어떤 모델을 사용해야 하는지 감이라도 잡아가야겠다는 생각이 든다.

0개의 댓글