ML 개발 수명 주기

EDA, 전처리, 피처 엔지니어링, 과적합, 평가 지표(정밀도·재현율·F1), SageMaker 배포·모니터링까지 ML 파이프라인 9단계를 초보자도 이해할 수 있도록 요리 비유로 정리합니다.

AIF-C01 시험에서 ML 개발 수명 주기 도메인은 전체의 약 20%를 차지합니다. 데이터 수집부터 모델 배포·모니터링까지 각 단계의 역할과 주요 개념(과적합, 평가 지표, MLOps)이 핵심입니다.

---

 

ML 파이프라인 전체 흐름 — 요리에 비유하기

ML 모델을 만드는 과정은 처음 보면 복잡해 보입니다. 하지만 요리 과정에 비유하면 각 단계가 왜 필요한지 직관적으로 이해할 수 있습니다.

| ML 단계 | 요리 비유 | 핵심 목표 | |--------|---------|---------| | 1. 데이터 수집 | 재료 구하기 | 충분하고 다양한 데이터 확보 | | 2. EDA | 재료 상태 확인 | 데이터 분포, 결측값, 이상값 파악 | | 3. 데이터 전처리 | 재료 손질 | 누락값 처리, 정규화, 이상값 제거 | | 4. 피처 엔지니어링 | 레시피 개발 | 모델이 학습하기 좋은 형태로 변환 | | 5. 모델 훈련 | 요리 | 알고리즘이 데이터에서 패턴 학습 | | 6. 하이퍼파라미터 튜닝 | 간 맞추기 | 모델 설정값 최적화 | | 7. 모델 평가 | 맛보기 | 정밀도, 재현율, F1, AUC 측정 | | 8. 배포 | 서빙 | 실제 환경에서 예측 제공 | | 9. 모니터링 | 지속 품질 관리 | 시간 경과에 따른 성능 저하 감지 |

!데이터 수집부터 배포까지, ML 개발 생명주기

1단계 — 데이터 수집

좋은 요리는 좋은 재료에서 시작합니다. 좋은 ML 모델도 마찬가지입니다. 데이터의 양과 질이 모델 성능을 결정합니다.

데이터 증강 (Data Augmentation)

훈련 데이터가 충분하지 않을 때 기존 데이터를 변형해 인위적으로 늘리는 기법입니다.

이미지 데이터 예시: 고양이 사진 1,000장이 있다면, 각 사진을 좌우 반전, 밝기 조절, 회전시켜 3,000장으로 늘릴 수 있습니다. 내용은 같지만 모델이 다양한 관점에서 학습합니다.

데이터 불균형

사기 탐지 시스템을 만든다고 합시다. 정상 거래가 99%, 사기 거래가 1%라면 어떻게 될까요? 모델이 모든 것을 "정상"이라고 예측해도 99% 정확도가 나옵니다. 하지만 이 모델은 쓸모가 없습니다.

해결 방법: 오버샘플링: 소수 클래스(사기 거래) 데이터를 인위적으로 늘림 언더샘플링: 다수 클래스(정상 거래) 데이터를 줄임

---

 

2단계 — 탐색적 데이터 분석 (EDA)

데이터를 모델에 넣기 전에 "데이터가 어떤 모습인지" 이해하는 단계입니다. 요리 전에 재료가 신선한지, 상한 곳은 없는지 확인하는 것과 같습니다.

EDA에서 확인하는 것들: 분포 확인: 값들이 어떻게 분포되어 있는가? (히스토그램, 박스플롯) 결측값(Missing Values): 비어 있는 데이터가 있는가? 그대로 두면 알고리즘 오류 발생 이상값(Outlier): 극단적으로 튀는 값이 있는가? (예: 나이가 150세인 데이터) 상관관계: 어떤 변수가 목표 변수와 관련 있는가?

---

 

3단계 — 데이터 전처리

EDA에서 발견한 문제들을 해결하는 단계입니다.

| 작업 | 방법 | 이유 | |------|------|------| | 결측값 처리 | 평균값·중앙값으로 채우기, 또는 행 삭제 | 빈 데이터가 있으면 알고리즘 오류 | | 정규화 (Normalization) | 값을 0~1 사이로 조정 | 단위가 다른 변수들이 동등하게 처리되도록 | | 표준화 (Standardization) | 평균 0, 표준편차 1로 변환 | 정규 분포를 가정하는 알고리즘에서 사용 | | 이상값 제거 | 임계값을 벗어난 값 제거 | 모델이 이상값에 과도하게 영향받는 것 방지 | | 인코딩 | 범주형 데이터를 숫자로 변환 | ML 알고리즘은 숫자만 처리 가능 |

---

 

4단계 — 피처 엔지니어링

원본 데이터를 모델이 더 잘 학습하도록 새로운 특성(피처)으로 변환합니다.

예시: 날짜 데이터 "2026-03-21 토요일"을 하나의 값으로 두면 모델이 계절성이나 요일 패턴을 파악하기 어렵습니다. "연도", "월", "요일", "주말 여부", "계절"로 분리하면 훨씬 잘 학습합니다.

차원 축소 (PCA 등): 변수가 너무 많으면 중요한 정보를 담은 적은 수의 변수로 압축합니다. 과적합 방지와 계산 효율 향상에 도움이 됩니다.

---

 

5단계 — 모델 훈련과 과적합

데이터 분할

| 데이터 세트 | 역할 | 일반적 비율 | |-----------|------|-----------| | 훈련 세트 (Training) | 모델이 패턴을 학습 | ~70% | | 검증 세트 (Validation) | 훈련 중 성능 모니터링, 하이퍼파라미터 조정 | ~15% | | 테스트 세트 (Test) | 최종 성능 평가 (훈련 완료 후 한 번만 사용) | ~15% |

과적합 (Overfitting)

시험 문제를 달달 외워서 그 문제는 모두 맞히지만, 유형이 조금 바뀌면 전혀 못 푸는 학생을 상상해보세요. 이것이 과적합입니다. 모델이 훈련 데이터를 너무 완벽하게 외워서 새로운 데이터에서 성능이 떨어지는 현상입니다.

| 문제 | 원인 | 해결 방법 | |------|------|---------| | 과적합 | 모델이 너무 복잡, 훈련 데이터 적음 | 정규화, 드롭아웃, 데이터 증강, 교차 검증 | | 과소적합 | 모델이 너무 단순 | 더 복잡한 모델 사용, 피처 추가 |

---

 

6단계 — 하이퍼파라미터 튜닝

모델 훈련 전에 사람이 설정하는 값들입니다.

신경망에서 "층을 몇 겹으로 쌓을지" "학습률(learning rate)을 얼마로 할지" "한 번에 몇 개 데이터를 처리할지(배치 크기)"

이 값들을 잘못 설정하면 모델 성능이 크게 떨어집니다. Amazon SageMaker Automatic Model Tuning이 자동으로 최적값을 찾아줍니다.

---

 

7단계 — 모델 평가 지표

모델이 얼마나 잘 작동하는지 측정하는 지표들입니다.

분류 모델 평가 지표

| 지표 | 공식(개념) | 언제 중요한가? | |------|----------|-------------| | 정확도 (Accuracy) | 전체 예측 중 맞은 비율 | 클래스가 균형 잡혀 있을 때 | | 정밀도 (Precision) | 양성 예측 중 실제 양성 비율 | 오탐(False Positive)을 줄여야 할 때 | | 재현율 (Recall) | 실제 양성 중 예측 성공 비율 | 미탐(False Negative)을 줄여야 할 때 | | F1 점수 | 정밀도와 재현율의 조화 평균 | 두 지표의 균형이 필요할 때 | | AUC-ROC | 분류 모델의 전반적 성능 곡선 | 임계값 무관한 전체 성능 비교 |

쉽게 기억하는 방법: 정밀도: "내가 양성이라고 한 것 중에서 진짜 양성은 몇 개인가?" (스팸 필터 — 정상 메일을 스팸으로 잘못 분류하는 것이 더 나쁨) 재현율: "진짜 양성 중에서 내가 맞게 잡아낸 것은 몇 개인가?" (암 진단 — 암 환자를 정상으로 놓치는 것이 더 나쁨)

---

 

8~9단계 — 배포와 모니터링

Amazon SageMaker를 사용해 모델을 배포하고 지속적으로 관리합니다.

| 기능 | 역할 | |------|------| | SageMaker Endpoints | 실시간 추론 API 엔드포인트 제공 | | SageMaker Batch Transform | 대량 데이터 배치 추론 | | SageMaker Model Monitor | 배포 후 데이터 드리프트, 모델 성능 저하 감지 | | SageMaker Pipelines | ML 워크플로 자동화 |

모델 드리프트(Model Drift): 시간이 지남에 따라 실제 데이터의 분포가 훈련 데이터와 달라져 모델 성능이 저하되는 현상입니다. SageMaker Model Monitor가 이를 감지합니다.

---

 

블로그 목록으로 돌아가기