▶이번 시간엔 앙상블이다. 여기서는 수업때 듣기로(?) 느낌으로, booting? voting? 그 개념만 확실히 잡으면 된다. 차차 같이 보자.
앙상블 (Ensemble)
- 여러 모델이 동일한 문제를 해결하고 더 나은 결과를 얻도록 훈련시키는 기계 학습 패러다임이다.
- 주된 가설은, "약한 모델이 결합되면 더 좋은 모델을 얻을 수 있다" 이다.
정밀도가 높다
- 예측값들이 실제 정답(빨간 점)과 가까운 위치에 몰려 있는 상태를 의미한다.
- 즉, 모델이 얼마나 정확히 정답에 가까운 값을 내놓는지를 나타낸다.
- 편향(Bias)이 낮다고도 표현한다.
재현율이 높다
- 예측값들이 서로 흩어져 넓게 퍼져 있는 상태를 의미한다.
- 이는 모델이 얼마나 다양한 경우를 고려할 수 있는지를 나타낸다.
- 분산(Variance)이 높다고도 표현한다.
▶편향과 분산의 관계는 tradeoff 관계 (음의 관계 (?))이다.
앙상블 학습 ?
- 앙상블 학습은 여러 개의 모델을 결합하여 예측 성능을 향상시키는 방법이다.
- 개별 모델(예: Linear Regression, ANN, SVM 등)의 예측 결과를 결합해 최종 결과를 도출한다.
- 목적: 개별 모델의 약점을 보완하고, 더 나은 일반화 성능(테스트 데이터에 대한 성능)을 얻는 것.
앙상블의 Voting기법 [시험 출제]
- Voting은 앙상블 학습에서 사용되는 기법 중 하나로, 여러 모델의 결과를 바탕으로 최종 예측 값을 결정한다.
- 회귀 문제) 모델의 평균 예측 값을 사용하여 최종 결과를 도출한다.
- 분류 문제) 모델들의 분류 결과를 바탕으로 최종 결과를 결정한다.
- 방식으로는 Hard Voting이 있고, Soft Voting이 있다.
- Hard Voting : 각 모델의 다수결로 최종 클래스를 결정
- Soft Voting : 각 모델이 예측한 클래스의 확률 평균을 사용
앙상블의 Bootstrap 학습 기법 [시험 출제]
- 하나의 데이터에서 중복을 허용하는 여러 개의 독립적인 데이터를 생성한다.
- Bootstrap은 중복을 허용한 샘플링(Sampling with Replacement) 기법으로, 통계학에서 데이터의 불확실성을 줄이고 더 나은 예측을 위해 사용된다.
- 주어진 데이터셋에서 반복적으로 샘플을 추출하여 새로운 데이터셋(샘플 셋)을 만든다.
- 각 샘플 세트는 초기 데이터셋과 동일한 크기를 가지며, 중복 허용으로 인해 일부 데이터는 여러 번 선택되고, 일부는 선택되지 않을 수 있습니다.
- 여러 샘플 세트를 사용해 모델을 학습시킴으로써, 개별 모델의 편향(Bias)과 분산(Variance)을 줄이고 더 좋은 성능을 얻는 데 목적이 있다.
앙상블의 Bagging 프로세스 [시험 출제 가능성 매우 높음]
- 하나의 데이터에서 중복을 허용하는 여러 개의 독립적인 데이터 셋을 만든다. (부트스트랩 방식)
- 각 모델들은 모두 같은 모델로 독립적으로 학습한다.
- 결과의 결과를 과반수로 결합하여 최종적인 예측을 진행한다.
- 각각의 모델에서 잘 분류한 데이터에 대한 결과를 제공한다.
앙상블의 Boosting 프로세스 [시험 출제 가능성 매우 높음]
- 순차적으로 여러 약한 분류기로부터 편향이 적은 강한 분류기를 얻는다.
- 전체 데이터를 학습했을 때, 정답과 거리가 멀었던 문제들에 대해 높은 가중치를 부여하고 정답이었던 문제들에 대해서는 낮은 가중치를 부여해 새로운 모델을 다시 학습시킨다.
- 전 단계를 통해 정확도를 높일 수 있지만 과대적합이 되기 쉽기 때문에 적당히 하는 것이 좋다.
- (모델에 초점을 두었다. Adaboost와 차이점)
앙상블의 Adaboost 프로세스 [시험 출제 가능성 매우 높음]
- 모든 데이터셋을 이용해 하나의 모델을 훈련시킨다.
- 그 모델을 이용해 나온 결과값들 중 예측이 잘못된 문제들의 가중치를 높이고 다시 반복한다.
- (데이터 샘플에 초점을 두었다, Boosting과의 차이점)
※ 코드는 이따 실습때 해볼 예정이다.
'머신러닝2 > 수업 필기' 카테고리의 다른 글
머신러닝2 14주차 (1) | 2024.12.11 |
---|---|
머신러닝2 12주차 (2) | 2024.12.11 |
머신러닝2 11주차 (0) | 2024.12.11 |
머신러닝2 10주차 (0) | 2024.12.11 |
머신러닝2 7주차 (2) - 코드 부분 (0) | 2024.10.23 |