now is better than never
[쇼핑데이터를 활용한 머신러닝] 7. 머신러닝 기본개념 (2) 본문
2. Validation Strategy
1) Validation Strategy
- Test Data Set
- 프로젝트 결과물과 직결되는 데이터셋
- 최대한 전체 데이터셋을 대표할 수 있는 데이터가 좋음
- 지속적으로 바꾸는 것은 프로젝트 진행에 좋지 못함
-> 필요할 경우 validation data set 을 control
- Validation Data Set
- 머신러닝 모델을 test data set 에 적용하기 전에 모델의 성능을 파악하기 위해서 선정
- 이를 이용하여 Early Stop, 기타 Regularization 기법을 사용
- Test data set 과 최대한 유사하게 구성하는 것이 좋음
- Test data set 의 정보를 알 수 없을 경우 전체 데이터셋과 유사하게
- Train Data Set
- 머신러닝 모델이 학습하는 데이터셋
- Noise 데이터를 포함할지 안 할지 고민해야 함
2) Hold-out Validation
- 하나의 validation data set 을 고정 -> train 1, validation 1
- Validation Hold
- 고정하는 방법
- random sampling
- startified split
- 특정값, label/data 의 카테고리와 feature 의 비율을 유지하며 split
- 9:1, 8:2 가 대중적
- sklearn 에서 stratified 옵션 사용하면 구현 가능
3) Cross Validation
- train - validation 쌍을 여러 개 구성하는 방법
- 각 쌍에 적합한 여러 개의 모델을 생성하여 test data set 에 모두 적용해서 score 계산
-> K-Fold 방식
- K-Fold
- random sampling
- stratified K-Fold
- category feature 를 fold 별로 동일한 비율을 맞춰 split
- 분류 문제에서는 class 별로 비율을 유지시켜야 모델의 성능이 좋음 -> 더 적합
- group K-Fold
- group 들을 하나의 덩어리라고 생각하고 train-validation 을 뭉쳐있게 구성
- 같은 그룹이 동일한 fold 에 들어가지 않도록 하는 방식
- group 은 항상 fold 개수보다 커야함
- Time Series Split
- 시계열 데이터의 경우 순차 시간을 고려해서 validation set 을 선정하는 방법
- 미래 데이터로 과거 데이터를 예측하는 일이 없게하기 위해
- 앞쪽 fold 일 수록 train 데이터가 적어질 수 있음
3. Reproducibility (재현성)
- 실행할 때마다 똑같은 조건으로 샘플링해서 정확한 성능을 측정할 수 있게 함
1) Fix Seed
- random 성을 제거하는 방법
- random.seed(seed)
4. Machine Learning Workflow
- 데이터 추출 (가장 중요한 단계)
- 데이터 전처리 (feature scaling & feature selection)
- 머신러닝 모델링 및 학습
- 성능 평가
'Python > [코칭스터디 10기] Beyond AI Basic' 카테고리의 다른 글
[쇼핑데이터를 활용한 머신러닝] 9. 피처 엔지니어링 (1) (1) | 2023.05.10 |
---|---|
[쇼핑데이터를 활용한 머신러닝] 8. 트리 모델 (0) | 2023.05.08 |
[쇼핑데이터를 활용한 머신러닝] 6. 머신러닝 기본개념 (1) (0) | 2023.05.08 |
[쇼핑데이터를 활용한 머신러닝] 5. 정형 데이터 전처리 (2) (0) | 2023.05.08 |
[쇼핑데이터를 활용한 머신러닝] 4. 정형 데이터 전처리 (1) (0) | 2023.05.04 |