Model Selection API
- Scikit-learn API
- 최적의 머신러닝 모델 탐색
- 모델 구성 및 학습에 필요한 다양한 API 제공(데이터 셋 분리, 교차 검증 분할 및 평가, 하이퍼 파라미터 튜닝, etc)
머신러닝 모델 개발 과정
1. Training 데이터셋으로 모델 학습
2. 학습된 모델을 Validation 데이터셋으로 검증
3. 검증 결과, 성능이 좋지 않으면 모델을 튜닝한 후 Training 데이터셋으로 재학습
4. 만족할만한 성능이 나올 때까지 1부터 3까지 반복
5. 최종적으로 최적화된 모델(Optimized Model)을 Testing 데이터셋으로 모델의 서비스 가능 여부를 확인
Training Data Set : 머신러닝 모델의 학습에 사용되는 데이터셋
Validation Data Set : 학습된 머신러닝 모델에서 성능 개선 지표로 사용되는 데이터셋
Testing Data Set : 학습된 머신러닝 모델의 서비스 가능 여부를 최종 확인하는 데이터셋
* Cross Validation(교차 검증)을 해야하는 이유
Testing 데이터셋만을 이용하여 모델 성능 개선을 이룰 때. (Validation 데이터셋 없이)
-> Testing 데이터에만 최적화된 모델이 만들어짐
-> 최종적으로 모델의 서비스 가능 여부를 확인하는 테스트 데이터의 효과가 사라짐
Training 데이터셋에서 Validation 데이터셋을 분리하여 성능 개선을 이룰 때.
-> 데이터의 분포가 편향될 수 있음
-> 정확한 검증이 되지 않음
따라서, 여러 셋으로 구성된 Validation Data Set을 통해 성능 개선을 해야한다.
K-Fold Cross Validation(K겹 교차 검증)
- 가장 보편적으로 사용되는 교차검증 방법
- K개의 데이터 Fold(train과 validation 데이터셋의 묶음)를 만들어 학습과 검증 평가를 반복 수행
- 데이터 Fold들의 평가 지표를 평균낸 값이 K-Fold 평가 지표
- 교차검증을 편리하게 수행하기 위해 Scikit-learn에서 제공되는 API : KFold, StratifiedKFold, cross_val_score
Stratified K Fold Cross Validation
- cross_val_score의 방식
- 회귀분석 : 연속된 숫자 값을 예측하기 때문에 label 데이터의 분포는 의미 없음. K Fold를 사용한 Cross Validation 수행
- 분류분석 : 반드시 Stratified K Fold를 사용한 교차검증을 수행해야 함
'프로젝트 > 코드프레소 체험단' 카테고리의 다른 글
머신러닝을 위한 사이킷런 활용 팁 - 머신러닝 모델의 최적 파라미터 탐색 (0) | 2022.02.13 |
---|---|
머신러닝을 위한 사이킷런 활용 팁 - K-Fold 교차 검증 실습 (0) | 2022.02.13 |
파이썬으로 구현하는 머신러닝 - 완강 후기 (0) | 2022.02.13 |
파이썬으로 구현하는 머신러닝 : 비지도학습 - LDA 실습 (0) | 2022.02.12 |
파이썬으로 구현하는 머신러닝 : 비지도학습 - 선형판별분석(LDA)의 개념 (0) | 2022.02.12 |