머신러닝 앙상블 52! 보팅, 배깅, 부스팅으로 예측 정확도 폭발시키는 핵심 비법!
앙상블 기법: 여러 모델이 힘을 합쳐 더 똑똑해지기!
이번 시간에는 머신러닝에서 엄청 중요한 앙상블 기법에 대해 알아볼 거야. 지금까지는 혼자 똑똑한 모델(선형 모델, 트리 모델 등)을 배웠다면, 이제는 여러 모델을 합쳐서 더 좋은 성능을 내는 방법을 배울 거야.
오늘 배울 앙상블 기법은 크게 세 가지야.
- 보팅 (Voting)
- 배깅 (Bagging)
- 부스팅 (Boosting)
이 강의를 다 보고 나면,
- 앙상블이 뭔지, 왜 혼자보다 여러 명이 똑똑한지 이해할 수 있을 거야.
- 보팅이랑 배깅이 어떻게 다른지 확실히 알게 될 거야.
- 각 기법의 대표 모델을 직접 써보고 성능도 비교해 볼 거야.
앙상블, 그게 뭔데?
앙상블은 말 그대로 여러 개의 약한 모델들을 합쳐서 하나의 강한 모델을 만드는 방법이야. 마치 한 명의 전문가보다 여러 명의 전문가 의견을 모았을 때 더 좋은 판단이 나오는 것과 비슷하지.
앙상블은 크게 세 가지로 나눌 수 있어.
- 보팅: 서로 다른 모델들의 예측을 모아서 투표하는 방식이야.
- 배깅: 똑같은 모델을 여러 번 학습시키는 방식이야.
- 부스팅: 이전 모델이 틀린 부분을 다음 모델이 고쳐나가는 방식이야.
이제 이 세 가지를 하나씩 자세히 살펴보자!
1. 보팅 (Voting): 다양한 전문가들의 의견 모으기
보팅은 서로 다른 알고리즘을 쓰는 여러 모델들의 예측을 합치는 방법이야. 예를 들어, 로지스틱 회귀, 의사 결정 나무, 서포트 벡터 머신처럼 성격이 다른 모델들을 같이 쓰는 거지.
- 주의할 점: 로지스틱 회귀나 SVM 같은 모델은 데이터의 크기에 영향을 많이 받아서, 스탠더드 스케일러 같은 걸로 데이터를 보기 좋게 만들어줘야 해. 의사 결정 나무는 그런 거 신경 안 써도 돼. 이렇게 모델마다 다르게 전처리해주는 것도 중요해!
이번 실습에서는 소프트 보팅을 사용할 건데, 이건 각 모델이 "이건 A일 확률이 70%, B일 확률이 30%야"라고 예측한 확률값들을 평균 내서 최종 결정을 내리는 방식이야. 그냥 "A야!"라고 투표하는 하드 보팅보다 훨씬 안정적인 결과를 보여줘.
결과를 보면 개별 모델들의 정확도랑 보팅 모델의 정확도를 비교할 수 있는데, 보통 보팅 모델이 개별 모델보다 성능이 조금 더 좋거나 안정적으로 나와.
정리하면 보팅은:
- 장점: 다양한 관점을 반영해서 성능을 높일 수 있어.
- 단점: 계산량이 많아지고, 각 모델을 따로따로 신경 써서 조절해줘야 해.
2. 배깅 (Bagging): 같은 친구 여러 명에게 다른 숙제 내주기
배깅은 똑같은 알고리즘을 쓰는 모델을 여러 개 만들어서 학습시키는 방법이야. 대신, 매번 학습할 때 사용하는 데이터는 조금씩 다르게 해줘.
배깅의 핵심은 부트스트랩 샘플링이야. 이건 원래 데이터에서 중복을 허용해서 무작위로 데이터를 뽑아내서 여러 개의 학습용 데이터셋을 만드는 거야. 이렇게 하면 모델이 특정 데이터에만 너무 빠져드는 과적합을 막아주고, 모델의 분산을 줄여줘서 더 안정적으로 만들어줘.
이번 실습에서는 의사 결정 나무를 기본 모델로 쓸 건데, 트리를 50개 만들고 각 트리는 전체 데이터의 80%만 사용하고 중복 추출도 허용할 거야. 이렇게만 해도 혼자 쓰는 트리보다 훨씬 안정적인 모델이 돼.
결과를 보면 보통 혼자 쓰는 의사 결정 나무보다 배깅 모델이 더 좋은 성능을 보여줄 거야.
정리하면 배깅은:
- 장점: 같은 모델을 여러 개 쓰고 데이터만 다르게 학습시켜서 과적합에 강해.
- 단점: 학습 시간이 좀 더 오래 걸려.
랜덤 포레스트 (Random Forest): 배깅의 업그레이드 버전!
랜덤 포레스트는 배깅의 대표적인 모델인데, 여러 개의 의사 결정 나무를 만들고 그 결과들을 평균 내서 예측하는 방식이야.
랜덤 포레스트는 배깅에 추가적인 무작위성을 더해. 데이터뿐만 아니라, 트리가 갈라질 때마다 어떤 특징(변수)을 사용할지도 무작위로 선택하는 거지. 이렇게 하면 트리들 간의 다양성이 더 커져서 성능이 더 좋아져.
아래 그래프처럼 랜덤 포레스트는 어떤 특징이 모델 판단에 중요한지 보여주기도 해. 모델이 어떤 변수를 중요하게 생각하는지 알 수 있다는 것도 큰 장점이야!
3. 부스팅 (Boosting): 틀린 문제 다시 풀기!
부스팅은 이전 모델이 틀린 부분을 다음 모델이 계속 보완해 나가는 방식이야. 모델들이 순서대로 학습된다는 게 핵심이야.
- 아다부스트 (AdaBoost): 처음에는 쉬운 모델로 시작해서, 틀린 데이터에 점점 더 높은 점수(가중치)를 줘. 그러면 다음 모델이 그 틀린 데이터를 더 잘 맞추려고 노력하게 돼.
- 그라디언트 부스팅 (Gradient Boosting): 이전 모델의 예측과 실제 값의 차이를 미분이라는 수학적인 방법으로 줄여나가. 이 방식은 예측력이 엄청 뛰어나서 실제 현장에서도 많이 쓰여.
정리하면 부스팅 모델은:
- 장점: 정확도가 매우 높아.
- 단점: 학습 시간이 오래 걸리고, 모델을 잘 조절해주는 하이퍼파라미터 튜닝이 중요해.
앙상블 성능 비교: 누가 제일 똑똑할까?
이제 보팅, 배깅, 랜덤 포레스트, 아다부스트, 그라디언트 부스팅 모델들을 직접 실행해서 어떤 모델이 이번 데이터에서 가장 좋은 성능을 보였는지 그래프로 한눈에 확인할 수 있을 거야.
오늘 내용 정리!
- 앙상블: 여러 모델이 힘을 합쳐서 더 똑똑해지는 거야.
- 보팅: 서로 다른 모델들을 합치는 방식.
- 배깅: 똑같은 모델을 여러 번, 다른 데이터로 학습시키는 방식.
- 부스팅: 이전 모델의 실수를 다음 모델이 고쳐나가며 학습하는 방식.
실제 현장에서는 랜덤 포레스트나 부스팅 계열 모델들이 가장 많이 사용돼!
다음 시간에는 오늘 배운 앙상블 개념을 바탕으로 더 발전된 모델들을 알아보자!