[XGBoost]
부트스트래핑(Bootstrapping) 방식의 앙상블 알고리즘
부트스트래핑 : 임의로 샘플 및 변수를 선택하여 학습
부스팅 알고리즘 (Boosting algorithm)
각 트리(이터레이션)가 맞히지 못한 샘플에 대해 가중치를 부여,
추후 학습할 때 가중치를 반영하여 새로운 트리를 생성
XGBoost는 균형 트리 분할 방식(level-wise)으로 모델을 학습하여 대칭적 트리를 만듦
XGBoost의 장점
1. 강력한 병렬 처리로 학습과 처리가 빠름
(Gradient Boosting Model 대비 빠른 것)
2. Greedy-algorithm을 이용, 자동 가지치기(Pruning)가 가능
과적합(Overfitting) 방지
3. 자체 교차검증 알고리즘 탑재
4. 결측치 자체 처리
5. Early Stopping
100번으로 설정 시 100번 동안 성능이 좋아지지 않는다면 그 전에 생성된 최고로 좋은 모델을 선택
6. CART (Classification And Regression Tree)기반으로 분류, 회귀 둘다 구현
https://steadiness-193.tistory.com/257
Machine Learning - valid와 test를 train으로 전처리
https://steadiness-193.tistory.com/256 Machine Learning - train_test_split https://steadiness-193.tistory.com/253 Machine Learning - 랜덤으로 train과 test로 나누기 데이터 불러오기 seaborn의 iris 데..
steadiness-193.tistory.com
위 포스팅에서 만든 데이터셋을 이용한다.
아무 옵션을 넣지 않아도 약 81%의 정확도를 보여준다.
변수 중요도 (Feature_importance)
xgboost는 feature_importance를 바로 시각화하는 함수를 제공한다.
XGB 파라미터
n_estimatiors : 트리의 갯수, 높을 수록 정확도가 높아지나 시간이 오래 걸린다. (int)
n_jobs : 병렬처리 여부, -1을 입력하면 컴퓨터에 존재하는 모든 코어를 사용한다.
random_state : 결과를 고정시킴, Seed Number와 같은 개념 (int)
max_depth : 생성할 DecisionTree의 깊이 (int)
가지치기를 적용할 수 있는 파라미터
learning_rate : 훈련양, 학습할 때 모델을 얼마나 업데이트 할 것인지 (float)
colsample_bytree : 열 샘플링에 사용하는 비율 (float)
subsample : 행 샘플링에 사용하는 비율 (float)
reg_alpha : L1 정규화 계수 (float)
reg_lambda : L2 정규화 계수 (float)
booster : 부스팅 방법, 주로 gbtree를 이용
매개변수(파라미터) 조정
임의로 L1, L2 정규화 계수만 조정을 해보았다.
정확도가 약 0.38%p 상승했다.
https://steadiness-193.tistory.com/262
Regression - L1 규제(Lasso), L2 규제(Ridge)
* 수학적 증명, 수식보단 기본 개념과 활용법에 초점을 맞춤 Regularization (정형화, 규제, 일반화) 모델이 과적합되게 학습하지 않고 일반성을 가질 수 있도록 규제 하는 것. 하늘색 선은 오버피팅 �
steadiness-193.tistory.com
규제에 대한 내용은 위 포스팅 참조
참조
lsjsj92.tistory.com/547
brunch.co.kr/@snobberys/137#comment
'Machine Learning > 분류(Classification)' 카테고리의 다른 글
Classification - predict_proba (log_loss) (0) | 2020.09.12 |
---|---|
Classification - LGBMClassifier (0) | 2020.09.10 |
Classification - RandomForestClassifier (0) | 2020.09.08 |
Classification - DecisionTreeClassifier (0) | 2020.09.08 |
Classification - SVM 서포트 벡터 머신 (0) | 2020.09.08 |