"이 모델은 정확도 99%입니다"라는 말만 듣고 좋은 모델이라고 판단하면 MLA-C01에서 함정에 빠집니다. 시험 안내서의 과제 2.3은 혼동 행렬, 히트맵, F1, 정확도, 정밀도, 재현율, RMSE, ROC, AUC 같은 평가 지표와 성능 기준선 만들기, 과적합 식별을 요구하고, 과제 1.3은 클래스 불균형(CI)과 레이블 비율 차이(DPL) 같은 사전 학습 편향 지표, 합성 데이터와 리샘플링 같은 불균형 해결 전략, 데이터 분할과 셔플을 묻습니다. 문제은행에서도 "사기 거래가 0.5%뿐인 데이터" 같은 불균형 상황이 반복해서 나옵니다.
이 글은 혼동 행렬에서 시작해 분류 지표 고르기, 임계값 조정, 회귀 지표, 기준선 모델, 클래스 불균형 대응, 그리고 SageMaker Clarify의 편향 지표 순서로 정리합니다. 과적합 진단과 정규화는 클라우드 엔지니어를 위한 ML 기초에서 먼저 다뤘습니다.
---
혼동 행렬부터: 네 칸의 의미
화재 경보기를 생각해 보세요. 불이 났을 때 울리면 제대로 잡은 것이고, 불이 안 났는데 울리면 오경보이며, 불이 났는데 안 울리면 가장 위험한 놓침입니다. 분류 모델의 모든 지표는 이 네 가지 경우에서 나옵니다.
| 구분 | 실제 양성(불이 남) | 실제 음성(불이 안 남) | |------|------|------| | 양성으로 예측(경보 울림) | TP 참 양성 | FP 거짓 양성(오경보) | | 음성으로 예측(경보 안 울림) | FN 거짓 음성(놓침) | TN 참 음성 |
FP와 FN 중 어느 쪽이 더 비싼지가 지표 선택의 출발점입니다. 정상 메일을 스팸함으로 보내는 것(FP)이 비싼 상황이 있고, 실제 사기를 놓치는 것(FN)이 비싼 상황이 있습니다.
!혼동 행렬의 TP, FP, FN, TN 네 칸에서 정밀도, 재현율, 정확도, F1이 계산되는 관계
---
분류 지표: 상황에 맞게 고르기
| 지표 | 계산 | 의미 | 중요한 상황 | |------|------|------|------| | 정확도 | (TP + TN) ÷ 전체 | 전체 중 맞힌 비율 | 클래스가 균형일 때만 의미 있음 | | 정밀도 | TP ÷ (TP + FP) | 양성이라고 한 것 중 진짜 양성 | FP가 비쌀 때 (스팸 필터, 마케팅 대상 선정) | | 재현율(민감도) | TP ÷ (TP + FN) | 진짜 양성 중 찾아낸 비율 | FN이 비쌀 때 (암 진단, 사기 탐지) | | 특이도 | TN ÷ (TN + FP) | 진짜 음성을 음성으로 맞힌 비율 | 정상을 정상으로 두는 것이 중요할 때 | | F1 점수 | 정밀도와 재현율의 조화 평균 | 둘의 균형 | 불균형 데이터에서 둘 다 중요할 때 | | ROC AUC | 모든 임계값에서 참 양성률과 거짓 양성률을 그린 곡선의 아래 면적 | 0.5는 무작위, 1에 가까울수록 좋음 | 임계값과 무관하게 모델끼리 비교 | | PR AUC | 정밀도-재현율 곡선의 아래 면적 | 양성이 매우 드물 때 ROC보다 차이를 잘 보여 줌 | 극심한 불균형 |
숫자로 보면 정확도의 함정이 바로 보입니다. 거래 1,000건 중 사기가 10건인데 모델이 모두 "정상"이라고 답하면, 정확도는 99%지만 재현율은 0%입니다. 사기를 하나도 못 잡은 모델입니다.
시험 팁: "희귀 질환을 하나라도 놓치면 안 된다"는 재현율, "정상 거래를 사기로 막으면 고객 불만이 크다"는 정밀도, "불균형 데이터에서 둘 다 중요"는 F1, "여러 모델을 임계값과 무관하게 비교"는 AUC입니다.
---
임계값 조정: 같은 모델, 다른 결과
대부분의 분류 모델은 확률을 내놓고, 그 확률이 임계값(보통 0.5)을 넘으면 양성으로 판단합니다. 임계값을 바꾸면 재학습 없이도 결과가 달라집니다.
| 임계값 | 재현율 | 정밀도 | 쓰는 상황 | |------|------|------|------| | 낮춤 (예: 0.5 → 0.3) | 올라감 | 내려감 | 놓치면 안 되는 사기 · 질병 탐지 | | 높임 (예: 0.5 → 0.8) | 내려감 | 올라감 | 오경보를 줄여야 하는 자동 차단 |
ROC 곡선은 임계값을 0에서 1까지 바꿔 가며 그린 것이라, 곡선 위의 한 점이 하나의 임계값입니다.
다중 클래스 평가
클래스가 셋 이상이면 클래스마다 정밀도와 재현율을 따로 구한 뒤 평균을 냅니다. 매크로 평균은 클래스마다 같은 무게로 평균해 작은 클래스의 성능도 똑같이 반영하고, 가중 평균은 샘플 수에 비례해 평균합니다. 혼동 행렬을 색으로 칠한 히트맵을 보면 어떤 클래스끼리 서로 헷갈리는지 한눈에 보입니다.
시험 팁: "모델을 다시 학습하지 않고 사기를 더 많이 잡고 싶다"는 임계값을 낮추는 것이 정답입니다.
---
회귀 지표
숫자를 예측하는 회귀 모델은 오차의 크기로 평가합니다.
| 지표 | 의미 | 특징 | |------|------|------| | RMSE | 오차 제곱 평균의 제곱근 | 큰 오차에 더 큰 벌점, 큰 오차를 특히 피해야 할 때 | | MAE | 오차 절댓값의 평균 | 이상치에 덜 민감, "평균적으로 몇 원 틀리나"처럼 해석이 쉬움 | | MAPE | 오차를 실제값 대비 백분율로 평균 | 단위가 다른 예측끼리 비교, 실제값이 0 근처면 불안정 | | R² | 모델이 설명하는 분산의 비율 | 1에 가까울수록 좋음 |
시험 팁: "가끔 크게 틀리는 것이 특히 치명적"이면 RMSE, "이상치가 많아 평균 오차를 안정적으로 보고 싶다"면 MAE입니다.
---
기준선 모델과 섀도 비교
복잡한 모델이 좋은지 판단하려면 비교할 기준이 필요합니다. 기준선(베이스라인)은 가장 단순한 방법으로 낸 성능입니다.
분류: 항상 다수 클래스를 예측하는 모델, 또는 로지스틱 회귀 · Linear Learner 같은 단순 모델 회귀: 항상 평균값을 예측하는 모델, 또는 선형 회귀 정형 데이터: XGBoost 기본 설정을 강력한 기준선으로
여기서 말하는 모델 성능 기준선은 Model Monitor가 학습 데이터로 만드는 기준선(통계와 제약 조건)과 다릅니다. 앞의 것은 "이 모델이 쓸 만한가"를, 뒤의 것은 "운영 중 데이터가 학습 때와 달라졌나"를 판단합니다.
새 모델이 실제 트래픽에서도 더 나은지는 섀도 테스트로 확인합니다. 운영 중인 변형과 같은 요청을 새 모델(섀도 변형)에도 보내되, 사용자에게는 운영 모델의 응답만 돌려주고 두 모델의 지표를 비교합니다.
시험 팁: "사용자에게 영향 없이 새 모델을 실제 트래픽으로 평가"는 섀도 테스트입니다. "트래픽 일부를 실제로 새 모델에 보내 결과를 비교"는 A/B 테스트(프로덕션 변형 가중치)입니다.
---
클래스 불균형 다루기
| 기법 | 방법 | 주의할 점 | |------|------|------| | 층화 분할 | 학습 · 검증 · 테스트 세트에 클래스 비율을 똑같이 유지 | 불균형 데이터 분할의 기본 | | 오버샘플링 | 소수 클래스 샘플을 복제 | 같은 샘플 반복으로 과적합 위험 | | SMOTE | 소수 클래스 샘플 사이에 새 합성 샘플을 만듦 | 학습 데이터에만 적용, 검증 · 테스트 데이터에는 적용하지 않음 | | 언더샘플링 | 다수 클래스 샘플을 줄임 | 정보 손실 | | 클래스 가중치 | 소수 클래스를 틀리면 더 큰 벌점 | 데이터는 그대로, XGBoost는 scale_pos_weight = 음성 수 ÷ 양성 수 | | 데이터 증강 · 합성 데이터 | 이미지 회전, 문장 바꿔 쓰기, 생성 모델로 샘플 생성 | 이미지 · 텍스트 데이터에 효과적 | | 지표 바꾸기 | 정확도 대신 재현율 · F1 · PR AUC | 불균형에서 정확도는 오해를 부름 |
SageMaker Data Wrangler에는 랜덤 오버샘플링, 랜덤 언더샘플링, SMOTE로 데이터를 맞추는 균형 변환이 있습니다. 순서도 중요합니다. 먼저 데이터를 나누고 학습 세트에만 리샘플링을 적용해야 합니다. 나누기 전에 SMOTE를 쓰면 합성 샘플이 검증 세트로 새어 들어가 성능이 실제보다 좋게 나옵니다.
시험 팁: "사기 거래가 0.5%라 모델이 사기를 거의 못 잡는다"의 정답 후보는 SMOTE, 클래스 가중치(scale_pos_weight), 재현율 · F1로 평가하기입니다. "정확도가 99%이니 배포한다"는 오답입니다.
---
데이터와 모델의 편향 측정: Clarify 지표
클래스 불균형은 레이블(정답)의 비율 문제이고, 편향은 특정 그룹(성별, 연령대 같은 패싯)이 불리하게 다뤄지는 문제입니다. SageMaker Clarify는 학습 전과 학습 후에 편향 지표를 계산합니다.
| 시점 | 대표 지표 | 의미 | |------|------|------| | 학습 전(데이터) | CI 클래스 불균형 | 그룹 간 샘플 수 차이 (예: 중년층 데이터가 대부분) | | 학습 전(데이터) | DPL 레이블 비율 차이 | 그룹 간 긍정 레이블 비율 차이 (예: 대출 승인 비율이 그룹마다 다름) | | 학습 후(예측) | DPPL 예측 레이블 비율 차이 | 모델이 그룹마다 긍정으로 예측하는 비율의 차이 | | 학습 후(예측) | DI 차별적 영향 | 그룹 간 긍정 예측 비율의 비 |
이 밖에 사전 학습 지표로 KL, JS, LP, TVD, KS, CDD가 있고, 모델 설명에는 SHAP 값을 씁니다. 데이터 편향의 원인으로는 모집단을 대표하지 못하는 표본(선택 편향)과 그룹마다 다르게 측정된 값(측정 편향)이 있습니다.
Clarify는 2026년 7월 30일부터 신규 고객을 받지 않습니다. AWS는 같은 편향 지표를 pandas와 scikit-learn으로 직접 계산하고 SHAP 라이브러리를 직접 쓰는 방법을 대안으로 안내합니다. 다만 MLA-C01에서는 여전히 편향 탐지와 설명 가능성의 정답으로 나옵니다.
시험 팁: "학습 전에 그룹별 긍정 레이블 비율의 차이를 측정"은 Clarify 사전 학습 편향 지표 DPL, "모델 예측이 그룹마다 다르게 나오는지"는 사후 학습 지표 DPPL · DI, "어떤 특징이 예측에 가장 영향을 줬나"는 SHAP입니다.
---
시나리오로 연습하기
| 상황 | 정답 | 이유 | |------|------|------| | 암 진단 모델, 환자를 놓치면 안 됨 | 재현율 최우선 | FN 비용이 가장 큼 | | 스팸 필터, 중요한 메일이 스팸함으로 가면 안 됨 | 정밀도 최우선 | FP 비용이 가장 큼 | | 사기 0.5%, 정확도 99.5% 모델이 사기를 못 잡음 | 재현율 · F1 · PR AUC로 평가, SMOTE · 클래스 가중치 | 정확도의 함정 | | 재학습 없이 사기를 더 많이 잡기 | 분류 임계값 낮추기 | 재현율 증가, 정밀도 감소 | | 주택 가격 예측, 큰 오차가 특히 문제 | RMSE | 큰 오차에 더 큰 벌점 | | 불균형 데이터를 학습 · 검증으로 나누기 | 층화 분할 | 양쪽의 클래스 비율 유지 | | 학습 전에 그룹별 승인 비율 차이 확인 | Clarify DPL | 사전 학습 편향 지표 | | 새 모델을 사용자 영향 없이 실제 트래픽으로 평가 | 섀도 테스트 | 응답은 운영 모델만 반환 |
---
시험 핵심 정리
시험장 가기 전 마지막으로 확인할 핵심 포인트입니다.