앙상블(ensemble)
- 여러 머신러닝 모델을 연결하여 더 강력한 모델을 만드는 기법
- 분류와 회귀 문제의 다양한 데이터셋에서 효과적인 앙상블 모델 예시
- 랜덤 포레스트(random forest)
- 그래디언트 부스팅(gradient boosting)
부스팅(Boosting)
Boosting은 약한 학습기(Weak Learner)를 여러 개 결합하여 강한 학습기(Strong Learner)를 만드는 방법이다. 약한 학습기란, 예측 성능이 랜덤 추측 수준이거나 그 이하인 모델을 말하며, 결정 트리가 대표적인 예이다.
그래디언트 부스팅(Gradient Boosting)
고객의 구매 이력 데이터를 통하여 다음 구매를 예측한다고 가정해보자. 이를 예측하기 위해 어떤 방법을 사용할 수 있을까?
그래디언트 부스팅은 Boosting 기법 중에서 Gradient Descent를 이용하는 방법이다. Gradient Descent는 경사 하강법으로, 오차(Residual)를 최소화하는 방향으로 모델을 학습시키는 방법이다. 즉, 이전 모델에서 남은 오차를 다음 모델에서 보완하도록 학습을 진행한다.
그러나, 이전 모델에서 학습한 내용을 그대로 반영하는 것이 아니라, 오차에 덜 학습한 모델을 만들어서 그 오차를 보완하도록 한다. 이를 Residual Learning이라고 부르며, 그래디언트 부스팅에서는 이를 이용하여 예측 성능을 개선한다.
그래디언트 부스팅(Gradient Boosting)은 여러 개의 결정 트리(Decision Tree)를 이용하여 예측 모델을 만드는 알고리즘이다. 각 결정 트리는 이전 트리가 잘못 예측한 데이터에 더 많은 가치를 부여하여 그것을 보완하는 방식으로 학습을 진행한다. 이를 통해 예측 성능을 점진적으로 개선해 나가는 알고리즘이라고 볼 수 있다.
그러나, 결정 트리는 과대적합(Overfitting)되기 쉬운 단점이 있다. 이를 해결하기 위해, 그래디언트 부스팅은 여러 개의 결정 트리를 이용하면서, 이전 트리에서 잘못 예측한 데이터에 더 많은 가중치를 부여하여 그것을 보완하는 방식으로 학습을 진행한다. 이를 통해 과대적합을 방지하고 예측 성능을 개선할 수 있다. 앞서 말했듯이, 그래디언트 부스팅은 예측 성능이 높고, 과대적합을 방지할 수 있는 강력한 알고리즘이지만, 하이퍼 파라미터(learning rate, n_estimators 등)를 설정하는 것이 중요하며, 모델 학습에 시간이 오래 걸릴 수 있다는 단점이 있다.
다시 고객의 다음 구매를 예측하는 문제로 돌아와 이를 해결하기 위해 결정 트리를 이용한다고 가정한다면, 결정 트리는 고객의 여러가지 정보(나이, 성별, 거주지 등)를 이용하여 다음 구매를 예측하는 모델을 만들게 된다.
그래디언트 부스팅 회귀 (Gradient Boosting Regressor)
그라디언트 부스팅 회귀기는 회귀 작업에 사용할 수 있는 머신 러닝 알고리즘이다.
그라디언트 부스팅의 작동 방식을 이해하려면 먼저 의사 결정 트리가 무엇인지 살펴보자. 의사 결정 트리는 일련의 간단한 "만약-그러면(if-then rules)" 규칙을 기반으로 예측을 하는 모델이다. 예를 들어, 누군가가 해변에 갈지 여부를 예측하는 의사 결정 트리에는 "날씨가 화창하고 따뜻하면 '예'로 예측", "비가 오면 '아니오'로 예측"과 같은 규칙이 있을 수 있다.
그라디언트 부스팅은 이러한 여러 가지 간단한 의사 결정 트리를 결합하여 보다 정확한 예측을 하는 방식으로 작동한다. 이 기능은 한 번에 하나의 의사 결정 트리를 학습시키고, 새로운 트리마다 이전 트리의 오류를 수정하는 방식으로 수행된다. 즉, 이전 트리의 약점을 개선하는 새로운 트리를 추가하여 이전 트리의 성능을 "향상"시키는 것이다.
Example
평방 피트, 침실 수, 위치를 기반으로 주택 가격을 예측하려고 한다고 가정해 보자. 이 데이터로 의사 결정 트리를 훈련하는 것으로 시작할 수 있지만 이 트리는 정확도가 높지 않을 수 있다. 정확도를 높이기 위해 동일한 데이터로 두 번째 의사 결정 트리를 훈련할 수 있지만 이번에는 첫 번째 트리가 잘못 예측한 주택에 더 많은 가중치를 부여할 것이다. 이 프로세스를 계속 진행하여 이전 트리의 오류를 점진적으로 개선하는 일련의 의사 결정 트리를 학습시켜 이러한 요소를 기반으로 주택 가격을 정확하게 예측할 수 있는 모델을 만들 수 있다.
전반적으로 그라디언트 부스팅 회귀분석은 금융, 의료, 마케팅 등 다양한 영역에서 정확한 예측을 하는 데 사용할 수 있는 강력한 알고리즘이다.
references.
https://jhryu1208.github.io/data/2020/11/16/ML_decision_tree_ensemble_gradientboosting/
https://anupkrsingh.medium.com/gradient-boosting-regression-example-in-python-abcd36126614
'Statistics > ML | Python' 카테고리의 다른 글
pandas_profiling 안될 땐 ? (0) | 2023.10.27 |
---|---|
딥러닝 기초 AI Modeling (1) (0) | 2023.02.26 |
wine 데이터 분석 (0) | 2023.02.20 |
머신러닝이 뭐여 9탄 (feat. k-means 군집분석, 연관규칙분석, 신경망) (0) | 2023.02.18 |
머신러닝이 뭐여 8탄 (feat. 의사결정나무, 앙상블, 랜덤포레스트) (0) | 2023.02.18 |