NIST: 필기체 인식을 위해서 수집한 데이터
MNIST: NIST에서 숫자들만 모아놓은것








random.choice() 활용





Pipeline을 사용한다는 것은
PCA와 KNN의 파라미터를 모두 고려하여 최적의 파라미터 조합을 찾는다는 것이다.
즉, PCA로 차원을 축소한 후, 그 축소된 데이터를 사용하여 KNN을 학습시키고, 이 두 단계에서의 하이퍼파라미터를 모두 조정하여 전체 파이프라인의 성능을 최적화한다는 것.

cv=5 vs StratifiedKFold
cv=5 (기본적인 K-Fold 교차 검증)
- 데이터셋을 5개의 폴드로 나누어 각 폴드에 대해 모델을 평가함.
 - 폴드는 랜덤하게 나뉘기 때문에, 데이터의 클래스 비율이 균형 잡혀 있지 않을 수 있음.
 
(여기서 말하는 클래스란? 데이터의 레이블 or 타겟 값을 의미)StratifiedKFold
- 각 폴드에서 클래스의 비율이 전체 데이터셋과 유사하게 유지되도록 데이터를 나누는 방법.
 - 데이터셋의 클래스 분포가 불균형할 때 유용함. 각 폴드에서 클래스의 비율이 원본 데이터셋과 비슷하게 유지되므로 모델 평가가 더 신뢰성 있게 진행됨.
 


결과를 보니 골고루 잘 맞추고 있다.





