XGBoost 개요
XGBoost
eXtra Gradient Boost
주요장점
- 뛰어난 예측 성능
- GBM 대비 빠른수행 시간
- CPU 병렬 저리 ,GPU 지원
- 다양한 성능 향상 기능
- 규제 (Regularization) 기능 탑재
- Tree Pruning
- 다양한편의 기능
- 조기 중단(Early Stopping)
- 자제 내장된 교차 검증
- 결손값 자체 저리
XGBoost 파이썬 구현
XGBoost 파이썬 래퍼와 사이킷런 래퍼 API 비교
래퍼 - 사용하기 쉽게 포장해 놓은 것, API와 유사한 기
XGBoost 파이썬 래퍼와 사이킷런 래퍼 하이퍼 파라미터 비교
트리 부스팅 계열은 하이퍼파라미터 종류가 너무 많아서 튜닝하느라 너무 시간을 보낼 필요는없다.
XGBoost 조기 중단기능 (Early Stopping)
- XGBoost 는 특정 반복 횟수 만큼 더 이상 비용함수가 감소하지 않으면 지정된 반복횟수를 다 완료하지 않고 수행을 종료할 수 있음.
- 학습을 위한 시간을 단축 시킬 수 있음. 특히 최적화 튜닝 단계에서 적절하게 사용 가능.
- 너무 반복 횟수를 단축할 경우 예즉 성능 죄적화가 안된 상태에서 학습이 종료 될 수 있으므로 유의 필요.
- 조기 중단 설정을 위한 주요 파라미터.
- early_stopping_rounds : 더 이상 비용 평가 지표가 감소하지 않는 죄대 반복횟수.
- eval_metric : 반복 수행 시 사용하는 비용 평가 지표.
- eval_set : 평가를 수행하는 별도의 검증 데이터 세트. 일반적으로 검증 데이터 세트에서 반복적으로 비용 감소 성능 평가.
- 이 검증데이터는 기존의 CV에서 사용하던 검증이 아니라, 애초에 처음에 데이터를 분할 할 때, Vaild, Test, Train으로 나눈 데이터이다.
- 하지만 귀찮아서 Test를 검증데이터로 사용하는 경우가 많다... (일종의 관례)
학습을 반복한다...(목표는 1000번 이었는데)
학습 데이터에 대해서는 무조건 성능이 좋아지게 되어있다. -> 수학능력이 좋아짐...
검증 데이터가 중간중간 체크할때마다 점수가 점점 상승하다가,(에러가 낮아짐)
어느 순간부터 검증 데이터에 대한 점수가 떨어지게 됨. why? 학습 데이터에 대해서만 학습하니까.
여기서 학습을 중단하자! -> early stopping! (400~500 정체) -> 500에서 stop!
모델 짠!
test 데이터로 성능 측정
'Machine Learning > 머신러닝 완벽가이드 for Python' 카테고리의 다른 글
ch. 4.7 LightGBM (0) | 2022.10.11 |
---|---|
ch.4.6.1 XGBoost(eXtra Gradient Boost)(실습) (0) | 2022.10.11 |
ch 4.03_4.05_앙상블, 랜덤포레스트, GBM(실습) (0) | 2022.10.11 |
ch. 4.5 앙상블-부스팅 (0) | 2022.10.11 |
ch.4.4 앙상블 - 배깅 (1) | 2022.10.06 |