본문 바로가기
AI

(2024-02-02) XGBoost와 아이들

by busybee-busylife 2024. 2. 2.
반응형
  • XGBoost 계열 모델은 하이퍼파라미터 튜닝이 매우 중요
    • 하이퍼파라미터 튜닝보다는 피처 엔지니어링이 중요하긴 함
    • LgighGBM: depth를 여유롭게 잡고, 그 여유로운 범위 내에서 리프노드의 갯수를 제한하도록 셋팅
      • 리프들만 확장하는 방식으로 성능 향상
      • num_leaves: 실효성이 있으려면 2의 최대제곱보다 작아야 의미가 있다
      • colsample_bynode 옵션이 아예 없음
      • colsample_bytree를 사용
      • GPU 사용시 이슈가 많음(안되는 경우가 많다)
    • CatBoost
      • Categorical feature 학습을 잘하도록 설계
      • Categorical feature가 많을때 사용하면 좋다(Categorical feature의 비율이 50% 이상)
      • 칼럼 갯수는 200개 이하일 때 사용
      • row 갯수는 크게 상관없음
      • hyperparameter 튜닝을 덜 해도 성능이 좋게 나온다
      • GPU 사용 최적화: LightGBM의 경우 구글코랩에서 사용 안됨
      • one_hot_max_size: 인코딩 없이 그냥 넣으면 CatBoost가 저절로 원핫인코딩해줌
        • 보통의 경우 크게 핸들링 할 필요 없음
      • depth: LightGBM 경우 skewed 되어있어서 가능하나, XGBoost나 CatBoost의 경우 level-wise라서 max-depth가 35까지 갈 일은 거의 없다
      • max_leaves: 다른 부스팅 모델처럼 보통 depth를 제한하지 리프를 제한하지는 않음
      • rsm: colsample_bynode와 비슷
    • 데이터가 천개 이상: RandomForest
    • 천개 이상 십만개 미만: XGBoost, CatBoost
    • 데이터가 십만개 이상: LightGBM
    Q. 앙상블할 때 모델끼리 많이 다를수록 개별 모델의 정확도가 높을수록 좋다고 알고 있는데요. 랜덤포레스트가 배깅 기반이니까 부스팅기반이랑 앙상블하면 좋을 가능성이 높지 않나요?
  • A. 데이터가 적을때(천개 정도) 유의미. 데이터가 크면 할 수 없다
    • XGBoost 계열 모델은 하이퍼파라미터 튜닝이 매우 중요
      • 하이퍼파라미터 튜닝보다는 피처 엔지니어링이 중요하긴 함
      • LgighGBM: depth를 여유롭게 잡고, 그 여유로운 범위 내에서 리프노드의 갯수를 제한하도록 셋팅
        • 리프들만 확장하는 방식으로 성능 향상
        • num_leaves: 실효성이 있으려면 2의 최대제곱보다 작아야 의미가 있다
        • colsample_bynode 옵션이 아예 없음
        • colsample_bytree를 사용
        • GPU 사용시 이슈가 많음(안되는 경우가 많다)
      • CatBoost
        • Categorical feature 학습을 잘하도록 설계
        • Categorical feature가 많을때 사용하면 좋다(Categorical feature의 비율이 50% 이상)
        • 칼럼 갯수는 200개 이하일 때 사용
        • row 갯수는 크게 상관없음
        • hyperparameter 튜닝을 덜 해도 성능이 좋게 나온다
        • GPU 사용 최적화: LightGBM의 경우 구글코랩에서 사용 안됨
        • one_hot_max_size: 인코딩 없이 그냥 넣으면 CatBoost가 저절로 원핫인코딩해줌
          • 보통의 경우 크게 핸들링 할 필요 없음
        • depth: LightGBM 경우 skewed 되어있어서 가능하나, XGBoost나 CatBoost의 경우 level-wise라서 max-depth가 35까지 갈 일은 거의 없다
        • max_leaves: 다른 부스팅 모델처럼 보통 depth를 제한하지 리프를 제한하지는 않음
        • rsm: colsample_bynode와 비슷
      • 데이터가 천개 이상: RandomForest
      • 천개 이상 십만개 미만: XGBoost, CatBoost
      • 데이터가 십만개 이상: LightGBM
      Q. 앙상블할 때 모델끼리 많이 다를수록 개별 모델의 정확도가 높을수록 좋다고 알고 있는데요. 랜덤포레스트가 배깅 기반이니까 부스팅기반이랑 앙상블하면 좋을 가능성이 높지 않나요?
    • A. 데이터가 적을때(천개 정도) 유의미. 데이터가 크면 할 수 없다
      • XGBoost 계열 모델은 하이퍼파라미터 튜닝이 매우 중요
        • 하이퍼파라미터 튜닝보다는 피처 엔지니어링이 중요하긴 함
        • LgighGBM: depth를 여유롭게 잡고, 그 여유로운 범위 내에서 리프노드의 갯수를 제한하도록 셋팅
          • 리프들만 확장하는 방식으로 성능 향상
          • num_leaves: 실효성이 있으려면 2의 최대제곱보다 작아야 의미가 있다
          • colsample_bynode 옵션이 아예 없음
          • colsample_bytree를 사용
          • GPU 사용시 이슈가 많음(안되는 경우가 많다)
        • CatBoost
          • Categorical feature 학습을 잘하도록 설계
          • Categorical feature가 많을때 사용하면 좋다(Categorical feature의 비율이 50% 이상)
          • 칼럼 갯수는 200개 이하일 때 사용
          • row 갯수는 크게 상관없음
          • hyperparameter 튜닝을 덜 해도 성능이 좋게 나온다
          • GPU 사용 최적화: LightGBM의 경우 구글코랩에서 사용 안됨
          • one_hot_max_size: 인코딩 없이 그냥 넣으면 CatBoost가 저절로 원핫인코딩해줌
            • 보통의 경우 크게 핸들링 할 필요 없음
          • depth: LightGBM 경우 skewed 되어있어서 가능하나, XGBoost나 CatBoost의 경우 level-wise라서 max-depth가 35까지 갈 일은 거의 없다
          • max_leaves: 다른 부스팅 모델처럼 보통 depth를 제한하지 리프를 제한하지는 않음
          • rsm: colsample_bynode와 비슷
        • 데이터가 천개 이상: RandomForest
        • 천개 이상 십만개 미만: XGBoost, CatBoost
        • 데이터가 십만개 이상: LightGBM
        Q. 앙상블할 때 모델끼리 많이 다를수록 개별 모델의 정확도가 높을수록 좋다고 알고 있는데요. 랜덤포레스트가 배깅 기반이니까 부스팅기반이랑 앙상블하면 좋을 가능성이 높지 않나요?
      • A. 데이터가 적을때(천개 정도) 유의미. 데이터가 크면 할 수 없다
        • XGBoost 계열 모델은 하이퍼파라미터 튜닝이 매우 중요
          • 하이퍼파라미터 튜닝보다는 피처 엔지니어링이 중요하긴 함
          • LgighGBM: depth를 여유롭게 잡고, 그 여유로운 범위 내에서 리프노드의 갯수를 제한하도록 셋팅
            • 리프들만 확장하는 방식으로 성능 향상
            • num_leaves: 실효성이 있으려면 2의 최대제곱보다 작아야 의미가 있다
            • colsample_bynode 옵션이 아예 없음
            • colsample_bytree를 사용
            • GPU 사용시 이슈가 많음(안되는 경우가 많다)
          • CatBoost
            • Categorical feature 학습을 잘하도록 설계
            • Categorical feature가 많을때 사용하면 좋다(Categorical feature의 비율이 50% 이상)
            • 칼럼 갯수는 200개 이하일 때 사용
            • row 갯수는 크게 상관없음
            • hyperparameter 튜닝을 덜 해도 성능이 좋게 나온다
            • GPU 사용 최적화: LightGBM의 경우 구글코랩에서 사용 안됨
            • one_hot_max_size: 인코딩 없이 그냥 넣으면 CatBoost가 저절로 원핫인코딩해줌
              • 보통의 경우 크게 핸들링 할 필요 없음
            • depth: LightGBM 경우 skewed 되어있어서 가능하나, XGBoost나 CatBoost의 경우 level-wise라서 max-depth가 35까지 갈 일은 거의 없다
            • max_leaves: 다른 부스팅 모델처럼 보통 depth를 제한하지 리프를 제한하지는 않음
            • rsm: colsample_bynode와 비슷
          • 데이터가 천개 이상: RandomForest
          • 천개 이상 십만개 미만: XGBoost, CatBoost
          • 데이터가 십만개 이상: LightGBM
반응형

'AI' 카테고리의 다른 글

(2024-03-14) Hydra  (1) 2024.03.14
(2024-03-14) Pytorch Lightning  (0) 2024.03.14
(2024-01-17) 통계  (0) 2024.01.24
(2023-12-29) Python EDA  (0) 2024.01.10
(2023-12-26) 파이썬 프로젝트: 웹크롤링  (0) 2023.12.28