Generalization이 좋다
= 테스트 데이터에서의 성능이 학습 데이터와 비슷하게 나온다.
= 학습데이터의 성능이 안좋으면 generalization이 잘 되어도 성능이 안좋다.


k-fold로 나누어서 활용.
특히 Neural Network학습 시 최적의 hyperparameter (e.g., learning rate, loss function 등)를 정할 때 사용한다.
참고로, 주로 hyperparameter를 고정시키고 데이터를 학습시킬 때에는 모든 data를 다 사용한다. 그래야 더 많은 데이터로 모델 학습이 가능하기 때문이다. 
아래는 모델 성능 평가를 위한 개념이다. 결론적으로 보자면, low bias + low variance가 최고다.

(추가 설명)
내 학습 데이터가 노이즈가 껴 있는 데이터라고 가정하였을 때, 모델의 cost를 최소화하는 것은 크게 세 파트로 나누어 볼 수 있다. 
즉, 하나가 줄어들면 (e.g., bias) 다른 것 (e.g., variance)가 높아질 가능성이 높다는 의미이다.
부트스트래핑은 원본 데이터 세트에서 여러 번의 재표본 추출을 통해 새로운 데이터 세트를 생성하는 방법이다. 각 재표본 추출은 원본 데이터 세트에서 중복을 허용하여 동일한 크기의 샘플을 무작위로 추출한다.
1. Bagging
개념
Bagging은 Bootstrap Aggregating의 줄임말로, 데이터 샘플을 무작위로 선택하고 복원 추출(중복 허용)하여 여러 개의 훈련 데이터 세트를 생성한다. 각 훈련 세트로 개별 모델을 학습시키고, 최종 예측은 개별 모델의 예측을 평균(회귀의 경우)하거나 다수결(분류의 경우)로 결합하여 결정한다.
과정
2. Boosting
개념
Boosting은 Weak Learners를 순차적으로 학습시키며, 각 단계에서 이전 단계의 모델이 잘못 예측한 데이터를 더 중점적으로 학습합니다. 이를 통해 학습기들은 점점 더 어려운 패턴을 학습하게 되며, 최종적으로 Strong Learner를 만듭니다.
과정
잘못 예측된 데이터 포인트에 더 높은 가중치를 부여.
