portable
- 이식성이 높다
- 다른 프로그래밍 언어를 지원하기 적합한 구조로 설계, 여러 언어 지원.
배깅
- 병렬트리를 여러 개 생성, 오버피팅에 좀 더 덜 취약.
- 랜덤포레스트, ExtraTree
부스팅
- 순차적으로 트리를 생성, 오버피팅에 좀 더 취약하며, 개별 트리의 성능이 중요할 때 사용.
- GBM, XGBoost, LightGBM, CatBoost
XGBoost
- xgboost는 GBT에서 병렬 학습을 지원하여 학습 속도가 빨라진 모델.
- 기본 GBT에 비해 더 효율적이고, 다양한 종류의 데이터에 대응할 수 있으며 이식성이 높음.
- 모든 가능한 트리를 나열하여 최적 트리를 찾는 것은 거의 불가능
- 2차 근사식을 바탕으로 한 손실함수를 토대로 매 iteration마다 하나의 leaf로부터 가지를 늘려나가는 것이 효율적
- 손실 함수가 최대한 감소하도록 하는 split point(분할점)를 찾는 것이 XGBoost의 목표
XGBoost
장점
- GBM 대비 빠른 수행시간
- 병렬 처리로 학습, 분류 속도가 빠름.
- 과적합 규제(Regularization)
- 표준 GBM 경우 과적합 규제기능이 없으나, XGBoost는 자체에 과적합 규제 기능으로 강한 내구성을 가진다.
- Early Stopping(조기 종료) 기능이 있다. - 다양한 옵션을 제공하며 Customizing이 용이하다.
단점
- XGBoost는 GBM에 비해 좋은 성능을 보여주고 비교적 빠르지만 그래도 여전히 학습시간이 느림
- Hyper Parameter 수가 많아 Hyper Parameter 튜닝을 하게되면 시간이 더욱 오래 걸림
- 모델의 Overfitting
LightGBM(Light Gradient Boosting Machine)
- GOSS(Gradient based One Side Sampling)와 EFB(Exclusive Feature Bundling) 적용
- XGBoost와 비교해 정확도는 유지, 학습 시간을 상당히 단축시킨 모델
- 트리 기준 분할이 아닌 리프 기준 (leaf wise tree) 분할 방식을 사용.
- 학습에 소요되는 시간이 짧고 메모리 사용량도 절약할 수 있어 대용량 데이터 처리가 가능.
- 적은 데이터셋에서 과적합 발생 우려.
1) GOSS => 행을 줄입니다.
- 기울기 기반 단측 표본 추출법
- “모델의 학습에 많은 도움이 되는 샘플” 모두 학습에 사용,
- "학습에 별 도움이 안 되는 샘플”은 일부만 학습에 사용.
- 틀린 문제 위주로 다시 샘플을 구성 -> 트리를 시각화시 한쪽 방향으로 트리가 만들어지는 것 확인
2) EFB => 열을 줄입니다.
- 변수 개수를 줄여 차원을 효과적으로 감소
- 트리의 가지를 뻗어나가면서 사용되는 feature의 가짓수를 줄여 트리가 overfitting되는 것을 방지.
- 인코딩이 되어있는 데이터는 밀도가 낮은데, 낮은 밀도의 데이터끼리 합칠 수 있는 것은 합침.
- ex) 바이너리 값인 연장자 여부를 주니어, 시니어 각각 인코딩했다면 불필요한 인코딩. (서로 배타적)
- 이런 피처를 합쳐서 사용 > EFB 기법입니다.
- 알고리즘 내부에서 서로 배타적인 특징을 갖는 피처를 찾아 합칩니다.
=> 행(틀린 문제 위주로 샘플링)과 열을 줄여서 학습시간을 더 빠르게 합니다.
Quiz
Q. 성능에 고려 없이 GBM 에서 훈련시간을 줄이려면?
A. learning_rate 를 올리면 학습시간은 줄어들지만 발산(제대로 된 loss(손실)가 0이 되는 지점을 제대로 찾지 못할 수도)
Q. GBM 에서 훈련시간에 상관없이 성능을 높이려면?
A. learning_rate 를 작게 하면 오차가 최소가 되는 지점을 찾아가지만, 속도는 오래 걸림.
Q. 주어진 데이터가 충분하지 않아 랜덤 샘플링을 통해 training data를 늘리는 방법
A. Bootstrapping
'멋쟁이사자처럼 AI School 8기(fin) > TIL(Today I Learn)' 카테고리의 다른 글
[멋쟁이사자처럼 AI스쿨] TIL(23.3.27) 텍스트 분석, 자연어처리 (0) | 2023.03.27 |
---|---|
[멋쟁이사자처럼 AI스쿨] TIL(23.3.22) confusion matrix (0) | 2023.03.22 |
[멋쟁이사자처럼 AI스쿨] TIL(23.3.20), RandomSearchCV (0) | 2023.03.20 |
[멋쟁이사자처럼 AI스쿨] TIL(23.3.17 ) - 태블로3 with 강승일 (0) | 2023.03.17 |
[멋쟁이사자처럼 AI스쿨] TIL(23.3.13), RandomForest, OneHotEncoding (0) | 2023.03.13 |