반응형
- XGBoost
- Subsample설정에 따라 비복원 SamplingSampling 한다는 점 외에는 부스팅은 랜덤포레스트와 동일하다
- Subsample : 각 반복구간마다 샘플링할 입력 Data의 비율을 조정
- Eta : 부스팅 알고리즘에서 αm에 적용되는 축소비율을 결정하는 것으로서 가중치변화량을 낮추어 overfitting 방지효과를 가진다.
- 정규화 파라미터: L1정규화, L2정규화가 있으며 Parameter를 크게 할수록 Model이 복잡해지면 더 많은 Penalty부여로 트리의 크기가 작아진다.
- n_estimator: 부스팅 라운드 횟수로서 eta가 작으면 학습속도가 떨어지므로 n_estimator를 늘려야 한다. overfitting방지 파라미터 설정을 포함할 경우 늘려도 무관~
- max_depth: 최대 6 (Python default 3), 노이즈 많은 Data에 대해 Model이 복잡한 거짓 상호작용회피에 도움이 된다.
- XGBClassifier의 scale_pos_weight = 10 일 경우 10배의 크기로 upsampling 한다.
- (Python) XGBRegressor
- (booster=’dart’, rate_drop=0.5)
- dart : Gradient Boosting Tree라는 점에서 GBTree와 유사하지만 dart는 부스팅의 단계별 트리를 dropout(삭제)하는 것이 주요 차이이다.
- gblinear + sigmoid로 분류에 사용 가능하다 è LogisticRegressor보다 성능이 좋음
- min_child_weight의 값을 올리거나 subsample 값을 줄일 경우 일반화 성능향상에 도움이 된다.
- (booster=’dart’, rate_drop=0.5)
반응형
- LightGBM
- 히스토그램 기반의 Gradient Boosting
- 기본 max_bin을 256개의 구간으로 나누고 하나의 구간을 누락값을 위해 사용.
- 단, 누락값을 별도처리할 경우 누락값 구간에 대한 내용은 불필요하다
- Max_bin을 조절하여 메모리 효율성을 올릴 수 있다.
- Feature의 중요도를 시각화하는 plot_importance나 tree모양 시각화인 plot_tree 함수를 제공
- XGBoost도 해당 함수들 사용가능
- Joblib 라이브러리로 LGBRegressor나 LGBMClassifier 모델 저장 가능
- CatBoost
- 범주형 처리에 특화되어 있으며 gradient boosting library에 있다
- 범주형 특성을 OneHotEncoding이나 정수인코딩을 할 필요 없이 알려주기만 하면 된다.
- 깊이 성장(Depthwise)과 리프별성장(Lossguide)을 grow_policy옵션으로 변경 가능
- 범주형 특성의 경우 누락값을 처리하지 못하므로 따로 조작이 필요(kind ColumnTransformer)
- Training 속도는 다소 느린 편
- .get_feature_importance함수로 특성 중요도 호출 가능하다.(리턴값은 Numpy 배열 형식)
728x90
반응형
'Data Science & AI Theories' 카테고리의 다른 글
특성공학(feature engineering)과 특성 추출(Feature Extraction) (2) | 2023.08.15 |
---|---|
Machine Learning 용어 및 내용 정리(1) (0) | 2023.08.15 |
회귀(Regression) 자료 정리(7) - MAE vs MSE / RMSE vs RMSLE (0) | 2023.08.13 |
Required Variables Selection | 필수 변수 선택방법 (0) | 2023.08.13 |
Regularization | 정규화 - L1, L2, Elastic Net (2) | 2023.08.13 |