이번 신규 아이템을 진행하면서 설비 생산량을 예측하는 Rest API를 개발하게 되었다.
학습 모델을 만들면서, 자격증 취득을 위해 학습 알고리즘들을 열심히 공부했다고 생각했지만
모델 선택과 하이퍼 파라미터 튜닝에 있어서는 기술의 부재가 상당히 컸고
학습 알고리즘을 정확하게 이해하지 못한 채 결과값에 의존하고 있다는 생각을 하게 되었다.
모델 평가와 선택 과정에서 많은 경우에 대해 XGBoost가 좋은 성능을 보여주었고,
해당 알고리즘을 정확하게 이해할 필요성을 느꼈다.
XGBoost(Extreme Gradient Boosting)
- 분산환경에서 실행할 수 있도록 구현한 라이브러리
- 회귀(Regression), 분류(Classification) 모두를 지원
- 앙상블(Ensemble) 기법 중 성능과 효율면에서 우수해 많이 이용
- Boosting 방식
앙상블(Ensemble)
- 앙상블이란 여러 개의 모델을 만들고, 각 모델의 예측을 결합해 보다 정확한 예측을 이끌어내는 기법
- 강력한 하나의 모델을 사용하는 것보다 약한 모델 여러개를 조합하는 것이 더 정확한 예측을 이끌어 낼 수 있다는 아이디어에 기반
- 앙상블 기법으로 Voting, Bagging, Boosting 세 가지 유형으로 나눌 수 있다.
보팅(Voting)
- 여러 개의 모델이 투표를 통해 최종 예측 결과를 도출하는 방식
- 서로 다른 학습 알고리즘을 결합해서 사용
하드 보팅(hard voting)
- 다수의 학습 알고리즘이 예측한 값을 최종 결과로 선택
소프트 보팅(soft voting)
- 모든 학습 알고리즘이 예측한 레이블의 결정 확률 평균을 구한 뒤 가장 높은 확률의 레이블을 최종 결과로 선택
배깅(Bagging, Bootstrap Aggregating)
- 데이터 샘플링(Bootstrap)을 통해 각 모델을 학습시켜 집계(Aggregating)
- 같은 유형의 분류기 사용
- 중복을 허용
- Categorical Data의 경우 다수결 투표 방식으로 최종 결과를 선택하고, Continuous Data의 경우 평균값으로 최종 결과를 선택
- Overfitting 방지에 효과적
- 대표적으로 배깅 방식으로 Random Forest가 있다.
부스팅(Boosting)
- 여러개의 학습 모델이 순차적으로 학습을 수행한다.
- 이때, 이전 학습 모델이 예측이 실패한 데이터에 대해 다음 학습 모델은 가중치(weight)를 부여해 학습과 예측을 진행한다.
- 대표적인 부스팅 알고리즘으로는 LightGBM, XGBoost가 있다.
- 부스팅 방식의 경우 배깅에 비해 성능이 좋지만, 학습 속도가 느리고 Overfitting이 발생할 가능성이 존재한다.
XGBoost
- XGBoost는 위의 앙상블 기법 중에 부스팅 기법에 포함되며, GBM에 비해 병렬 처리로 인한 학습 및 예측 속도가 빠르다.
- 또한 과적합 규제 기능으로 강한 내구성을 지니고 있으며, Early Stopping 및 다양한 옵션을 제공하고 있다.
'Artificial Intelligence' 카테고리의 다른 글
[논문 리뷰] DR3 : Value-Based Deep Reinforcement Learning Requires Explicit Regularization (ICLR 2022) (0) | 2024.03.12 |
---|---|
차원 축소 (0) | 2022.02.02 |
데이콘 - 잡케어 추천 알고리즘 (1) (0) | 2022.01.02 |
데이콘 코드리뷰 - 와인 품질 (0) | 2021.12.19 |
데이콘 코드리뷰 4 (0) | 2021.12.16 |
댓글