CertNote/ 출퇴근 학습 노트
로드맵
KOEN
CLF-C02 · FoundationalCloud Practitioner - Foundational
DVA-C02 · AssociateDeveloper - Associate
SAA-C03 · AssociateSolutions Architect - Associate
SOA-C02 · AssociateCloudOps Engineer - Associate
SAP-C02 · ProfessionalSolutions Architect - Professional
DOP-C02 · ProfessionalDevOps Engineer - Professional
SCS-C03 · SpecialtySecurity - Specialty
MLA-C01 · AssociateMachine Learning Engineer - Associate
AIF-C01 · FoundationalAI Practitioner - Foundational
DEA-C01 · AssociateData Engineer - Associate
MLS-C01 · SpecialtyMachine Learning - Specialty
  • Week 1
    • 1.ML 수명주기(ML Lifecycle): 비즈니스 문제 정의부터 A/B 테스트까지
    • 2.ML용 데이터 저장소: S3·EFS·FSx for Lustre·데이터 포맷
    • 3.데이터 수집: Kinesis·Glue·배치 vs 스트리밍
    • 4.데이터 레이블링: SageMaker Ground Truth·액티브 러닝(Active Learning)·레이블 품질
    • 5.1주차 종합 복습: ML 개요와 데이터 엔지니어링 1
  • Week 2
  • Week 3
  • Week 4
  • Week 5
  • Week 6
  • Week 7
  • Week 8
  • Week 9
    • 1.분류 평가지표: 정확도·정밀도·재현율·F1과 혼동행렬
    • 2.ROC/AUC와 임계값 조정: 곡선으로 읽는 모델 성능
    • 3.회귀 평가지표: RMSE·MAE·MAPE·R²와 잔차 분석
    • 4.모델 디버깅과 편향: SageMaker Debugger와 Clarify
    • 5.Week 9 종합 복습: 평가와 디버깅
  • Week 10
  • Week 11
  • Week 12
합격 후기

© CertNote · 주간랩스

  • 소개
  • 수정 기록
  • 문의
  • 이용약관
  • 개인정보처리방침
← MLS-C01/Week 9/Day 3

기준: MLS-C01 시험 가이드·오류 제보

MLS-C01· AssociateWeek 9 · Day 3읽기 약 11분
핵심 정리
  • 회귀 지표는 모두 잔차 y − ŷ를 어떻게 압축하느냐의 차이다. 제곱하는가, 절댓값인가, 비율인가.
  • MAE는 이상치에 강건하고 RMSE는 큰 오차에 민감하다. 둘 다 타깃과 같은 단위이며 항상 RMSE ≥ MAE다.
  • MAPE는 스케일 무관 상대 오차지만 실제값이 0 근처면 분모가 폭발해 쓸 수 없다.
  • R²는 "타깃 평균으로 예측하기" 대비 설명력이다. 음수면 평균보다도 못하다는 강한 경고다.
  • 지표가 좋아도 잔차 플롯에 패턴(U자·깔때기·치우침)이 있으면 모델 가정이 깨진 것이다.

Day 3 - 회귀 평가지표: RMSE·MAE·MAPE·R²와 잔차 분석

오차에서 출발하기

분류가 "맞았나 틀렸나"를 따진다면, 회귀는 "얼마나 빗나갔나"를 잰다. 각 샘플 i에 대해 오차는 다음과 같다.

residual_i = y_i (실제값) - ŷ_i (예측값)

모든 회귀 지표는 이 오차들을 모아 하나의 점수로 압축한다. 차이는 오차를 어떻게 다루느냐 — 제곱하는가, 절댓값을 취하는가, 비율로 보는가 — 에 있다.

MAE와 RMSE

MAE  = (1/n) Σ |y_i - ŷ_i|
MSE  = (1/n) Σ (y_i - ŷ_i)²
RMSE = √[ (1/n) Σ (y_i - ŷ_i)² ]
항목MAERMSE
오차 처리절댓값제곱 후 제곱근
단위타깃과 동일(예: 달러)타깃과 동일
이상치 민감도낮음(강건)높음(증폭)
모든 오차 취급동등큰 오차에 가중
적합한 상황이상치가 데이터 품질 문제일 때한 번의 큰 실수가 치명적일 때
최적화 대상조건부 중앙값조건부 평균
오차 [1, 1, 1, 1, 6]
MAE  = (1+1+1+1+6)/5 = 2.0
RMSE = √((1+1+1+1+36)/5) = √8 = 2.83  ← 6짜리 오차가 더 부각됨
  • 같은 오차 집합이라도 RMSE ≥ MAE이며, 둘의 격차가 클수록 큰 오차(이상치)가 존재함을 시사한다.
  • 모든 오차 크기가 같으면 RMSE = MAE가 된다. 즉 격차 자체가 진단 신호다.
  • RMSE는 SageMaker 빌트인 회귀(XGBoost, Linear Learner 등)의 기본 평가/튜닝 지표로 자주 쓰인다.

RMSE와 MAE의 선택은 "큰 오차를 얼마나 벌줄 것인가"의 문제다. RMSE는 제곱으로 큰 오차를 강하게 벌주므로, 한 번의 큰 실수가 치명적인 문제(수요 과소예측으로 인한 품절 등)에 맞다. MAE는 큰 오차도 비례적으로만 반영하므로 이상치가 데이터 품질 문제(센서 오류 등)일 때 안정적이다.

MAPE: 평균 절대 백분율 오차

MAPE = (100%/n) Σ |y_i - ŷ_i| / |y_i|

오차를 실제값 대비 비율(%)로 환산해 평균한다.

  • 스케일 무관: 서로 다른 단위/규모의 예측 성능을 비교 가능(예: 매출 규모가 다른 여러 지점)
  • 상대 오차 관점: 1000을 1100으로 예측하면 MAPE 10%
  • 함정: 실제값 y_i가 0이거나 0에 가까우면 분모가 폭발하거나 정의 불가
[같은 절대오차 1.0이 실제값에 따라 어떻게 보이나]
 
실제값 y = 1000, 예측 1001  →  |1|/1000  =   0.1%
실제값 y =   10, 예측 11    →  |1|/10    =  10.0%
실제값 y =    1, 예측 2     →  |1|/1     = 100.0%
실제값 y =  0.1, 예측 1.1   →  |1|/0.1   = 1000.0%   ← 한 건이 평균을 지배
실제값 y =    0, 예측 1     →  |1|/0     = 정의 불가(∞)
  • 수요예측처럼 규모가 다른 항목을 비교할 때 유용하지만, 0에 가까운 값이 많으면 부적합하다. 품절·비수기·신규 상품처럼 실제값 0이 흔한 데이터가 대표적이다.
  • MAPE는 비대칭이기도 하다. 과소예측은 최대 100%까지지만(0으로 찍는 경우), 과대예측은 상한이 없다. 그래서 MAPE를 최소화하면 모델이 낮게 예측하는 쪽으로 편향될 수 있다.

⚠️ 함정: "스케일이 다른 지점들을 비교하고 싶다"만 보고 MAPE를 고르면 안 된다. 지문에 "일부 지점 매출이 0에 가깝다", "수요가 없는 날이 있다"가 함께 있으면 MAPE는 오답이고, 스케일 보정이 필요하면 RMSLE나 지점별 정규화를 검토한다.

R²: 결정계수

R² = 1 - (SS_res / SS_tot)
SS_res = Σ (y_i - ŷ_i)²        (모델 오차 제곱합)
SS_tot = Σ (y_i - ȳ)²          (평균선 대비 분산)

"모델이 타깃 분산의 몇 %를 설명하는가"를 잰다.

R² 값의미
1.0완벽한 예측 (SS_res = 0)
0.7 ~ 0.9상당한 설명력
0그냥 평균값(ȳ)으로 예측한 것과 같은 수준
음수평균보다도 못한 모델 — 신호를 전혀 못 잡음
  • 단위가 없어 서로 다른 문제 간 비교에 좋지만, 절대 오차 크기는 알려주지 않는다. R² 0.9라도 RMSE가 사업상 감당 못 할 크기일 수 있다.
  • 그래서 R²(상대 설명력)와 RMSE/MAE(절대 오차)는 함께 본다.

R² vs Adjusted R²

피처를 추가하면 R²는 의미 없이도 올라간다. 무관한 컬럼이라도 잡음에 맞춰 SS_res를 조금은 줄이기 때문이다.

Adjusted R² = 1 - (1 - R²) × (n - 1) / (n - p - 1)
   n = 표본 수,  p = 피처(설명변수) 수
항목R²Adjusted R²
피처 추가 시절대 감소하지 않음기여가 없으면 감소
값의 범위최대 1 (음수 가능)최대 1, R²보다 항상 작거나 같음
용도단일 모델의 설명력피처 수가 다른 모델 간 비교
함정피처만 늘려도 좋아 보임표본 수 n이 작고 p가 크면 급격히 나빠짐

R²는 "기준선 대비 얼마나 나은가"를 잰다는 점이 핵심이다. 기준선은 항상 타깃의 평균(ȳ)이다. 그래서 R²가 음수면 모델이 단순 평균보다도 못하다는 뜻이고, 이는 모델이 신호를 전혀 못 잡았다는 강한 경고다. RMSE/MAE가 절대 오차 크기를, R²가 상대적 설명력을 보완적으로 알려준다.

회귀 지표 선택표

지표단위이상치 민감도언제 쓰나언제 쓰면 안 되나
MAE타깃과 동일낮음이상치가 노이즈일 때, 해석 쉬운 오차가 필요할 때큰 오차를 특별히 벌주고 싶을 때
RMSE타깃과 동일높음큰 실수가 치명적일 때, 튜닝 기본 지표이상치가 센서 오류 등 데이터 품질 문제일 때
MSE타깃 단위의 제곱매우 높음최적화 손실함수로결과를 사람에게 보고할 때(단위 해석 불가)
MAPE% (무단위)중간규모가 다른 항목 비교, 상대 오차가 의미 있을 때실제값이 0이거나 0 근처일 때
R²무단위높음(제곱합 기반)설명력을 비율로 보고할 때절대 오차 크기가 중요한 의사결정
Adjusted R²무단위높음피처 수가 다른 모델을 비교할 때표본이 매우 적을 때
RMSLE로그 스케일낮음타깃이 크게 왜곡(skew)되고 상대 오차가 중요할 때음수 타깃이 있을 때
회귀 지표를 골라야 한다
├─ 데이터에 극단 이상치가 있고 그것이 오류인가?
│    ├─ 예   → MAE (제곱하지 않아 강건)
│    └─ 아니오 ↓
├─ 한 번의 큰 오차가 사업상 치명적인가? (품절·과충전 등)
│    ├─ 예   → RMSE (큰 오차를 제곱으로 벌줌)
│    └─ 아니오 ↓
├─ 규모가 제각각인 항목들을 한 지표로 비교해야 하나?
│    ├─ 실제값이 0 근처가 없다 → MAPE
│    └─ 실제값 0이 흔하다      → MAPE 금지, RMSE/MAE 또는 정규화
└─ "얼마나 설명하는가"를 비율로 보고해야 하나?
     ├─ 단일 모델        → R²
     └─ 피처 수가 다른 모델 비교 → Adjusted R²

잔차 분석: 단일 숫자가 숨기는 것

지표 하나로 좋다고 판단해도 모델은 체계적 결함을 가질 수 있다. 잔차 플롯(예측값 vs 잔차)을 그리면 드러난다.

① 이상적 — 등분산·패턴 없음                 ② 깔때기 — 이분산성
 잔차                                        잔차
  +│  ·  ·   ·  ·   ·                         +│        ·      ·
   │ ·   ·  ·   ·  ·                           │     ·     ·  ·   ·
  0├──·──·───·──·───·──→ 예측값               0├──·──·───·───·────·──→
   │  ·  ·  ·   ·  ·                           │     ·    ·   ·   ·
  -│   ·   ·  ·   ·                            -│        ·      ·
   → 잔차 0 중심, 폭이 일정                     → 예측값이 커질수록 퍼짐
 
③ U자/곡선 — 비선형성 미포착                 ④ 치우침 — 체계적 편향
 잔차                                        잔차
  +│ ·                    ·                    +│  ·  ·  ·  ·  ·  ·
   │  ·                 ·                       │ ·  ·  ·  ·  ·  ·
  0├────·─────────·────────→                  0├──────────────────────→
   │      ·   ·   ·                             │
  -│        · · ·                               │  (거의 모두 0 위)
   → 선형모델의 한계, 피처 변환 필요            → 일관되게 과소예측
패턴진단조치
무작위 산포, 폭 일정정상그대로 진행
곡선/U자비선형성 미포착피처 변환(제곱·로그), 비선형 모델(트리·부스팅)
깔때기 모양이분산성(heteroscedasticity)타깃 로그 변환, 가중 회귀
한쪽으로 치우침편향(bias), 체계적 과대/과소 예측절편·피처 재점검, 데이터 시프트 확인
시간축 자기상관시계열 구조 미반영시차(lag) 피처, 시계열 모델
import matplotlib.pyplot as plt
 
residuals = y_true - y_pred
plt.scatter(y_pred, residuals, alpha=0.3)
plt.axhline(0, color="red", linestyle="--")
plt.xlabel("예측값")
plt.ylabel("잔차 (실제 - 예측)")
# 무작위 산포면 양호, 패턴이 보이면 모델 가정 위반

잔차의 분포도 함께 본다

  • 잔차 히스토그램이 0을 중심으로 대칭이면 정상. 한쪽으로 긴 꼬리면 특정 방향의 큰 실수가 반복된다는 뜻이다.
  • 평균이 0에서 벗어나 있으면 모델 전체가 일관되게 과대/과소 예측하고 있다는 신호다.
  • 잔차 분포가 정규분포에서 크게 벗어나거나 패턴이 있으면, 지표가 좋아 보여도 모델 형태나 피처를 재검토해야 한다.

RMSE가 낮아도 잔차에 패턴이 있으면 모델은 신뢰할 수 없다. 단일 지표는 오차를 한 숫자로 평균해 "어디서, 어떻게" 틀리는지를 지워버리기 때문이다. 잔차 플롯은 그 평균이 숨긴 구조 — 비선형성, 이분산성, 편향 — 를 복원한다. 시험에서 "지표는 좋은데 특정 구간에서 계속 틀린다"는 지문은 잔차 분석/모델 형태 점검으로 답이 향한다.

SageMaker에서의 회귀 지표

빌트인 회귀 알고리즘은 RMSE를 기본 검증 지표로 내보낸다. Automatic Model Tuning에서 회귀 목적 지표 예:

tuner = HyperparameterTuner(
    estimator=xgb_estimator,
    objective_metric_name="validation:rmse",  # 회귀 기본
    objective_type="Minimize",                 # 오차이므로 최소화
    hyperparameter_ranges=ranges,
)

⚠️ 함정: 분류는 보통 Maximize(정확도/F1/AUC), 회귀는 Minimize(RMSE/MAE)다. objective_type을 반대로 잡으면 튜너가 가장 나쁜 모델을 고른다. R²처럼 클수록 좋은 회귀 지표를 쓴다면 그때는 Maximize다.

지문 단서 → 정답 매핑

지문 단서고를 답이유
"센서 오류로 인한 극단 이상치가 섞여 있다"MAE제곱하지 않아 이상치에 강건
"RMSE가 MAE보다 현저히 크다"소수의 큰 오차(이상치성 잔차) 존재RMSE만 제곱으로 증폭됨
"품절이 치명적이라 큰 과소예측을 피해야"RMSE큰 오차를 강하게 벌줌
"매출 규모가 다른 지점들을 비교"MAPE스케일 무관 상대 오차
"단, 일부 지점 매출이 0에 가깝다"MAPE 부적합분모 폭발로 왜곡
"R²가 -0.2로 나왔다"평균으로 예측하는 것보다 나쁨기준선이 타깃 평균(ȳ)
"피처를 추가했더니 R²만 올랐다"Adjusted R²로 비교피처 수에 페널티 부여
"RMSE는 좋은데 잔차가 U자 곡선"비선형성 미포착 → 피처 변환/비선형 모델모델 형태 가정 위반
"예측값이 커질수록 잔차가 퍼진다"이분산성 → 타깃 로그 변환 검토깔때기 패턴의 전형
"회귀 튜닝 objective_type은?"Minimize (RMSE/MAE 기준)오차 지표는 작을수록 좋음

내일은 모델이 왜 틀리는지 들여다보는 도구 — SageMaker Debugger, Clarify(편향 탐지·SHAP 설명가능성), 오류 분석 — 으로 넘어간다.

📖 용어

  • 잔차(residual) : 실제값 − 예측값. 모든 회귀 지표의 재료이며, 부호가 있어 과대/과소를 구분한다.
  • MAE (평균 절대 오차) : 오차 절댓값의 평균. 타깃과 같은 단위이고 이상치에 강건하다.
  • RMSE (평균 제곱근 오차) : 오차를 제곱해 평균한 뒤 제곱근. 큰 오차를 크게 벌준다. 항상 MAE 이상이다.
  • MAPE (평균 절대 백분율 오차) : 오차를 실제값으로 나눈 상대 오차의 평균(%). 실제값이 0 근처면 무너진다.
  • R² (결정계수) : 타깃 평균으로 예측하는 기준선 대비 얼마나 나은지의 비율. 음수가 될 수 있다.
  • Adjusted R² : 피처 수에 페널티를 준 R². 설명변수 개수가 다른 모델을 비교할 때 쓴다.
  • 이분산성(heteroscedasticity) : 예측 구간에 따라 오차의 퍼짐 정도가 달라지는 현상. 잔차 플롯의 깔때기 모양.
  • 잔차 플롯 : 가로축 예측값, 세로축 잔차의 산점도. 지표 한 숫자가 지운 구조적 결함을 되살린다.
  • RMSLE : 실제값과 예측값에 로그를 취한 뒤 RMSE를 계산. 타깃이 크게 왜곡됐고 상대 오차가 중요할 때 쓴다.
  • objective_type : SageMaker 튜닝에서 목적 지표를 키울지 줄일지 지정하는 값. 오차 지표는 Minimize, 정확도·AUC·R²는 Maximize.

📝 연습 문제

선택지를 클릭하면 정답·해설이 펼쳐집니다.

문제 1

데이터에 센서 오류로 인한 소수의 극단적 이상치가 섞여 있고, 이들에 과민 반응하지 않는 평가지표를 원한다. 가장 적절한 것은?

문제 2

동일한 예측 결과에서 RMSE가 MAE보다 현저히 크게 나왔다. 이는 무엇을 시사하는가?

문제 3

매출 규모가 제각각인 여러 지점의 예측 성능을 스케일에 관계없이 비교하려 한다. 단, 일부 지점은 매출이 0에 가깝다. 이 지표의 주의점으로 옳은 것은?

문제 4

어떤 회귀 모델의 R²가 -0.2로 계산되었다. 이것이 의미하는 바는?

문제 5

RMSE가 낮아 만족스러운데, 잔차 플롯(예측값 vs 잔차)에서 뚜렷한 U자 곡선이 나타났다. 가장 합리적인 해석과 조치는?

이전ROC/AUC와 임계값 조정: 곡선으로 읽는 모델 성능Week 9 · Day 2다음 모델 디버깅과 편향: SageMaker Debugger와 ClarifyWeek 9 · Day 4

참고 공식 자료

  • MLS-C01 공식 시험 안내(새 탭에서 열림)
  • Amazon SageMaker AI 공식 문서(새 탭에서 열림)

이 페이지

  • 오차에서 출발하기
  • MAE와 RMSE
  • MAPE: 평균 절대 백분율 오차
  • R²: 결정계수
  • R² vs Adjusted R²
  • 회귀 지표 선택표
  • 잔차 분석: 단일 숫자가 숨기는 것
  • 잔차의 분포도 함께 본다
  • SageMaker에서의 회귀 지표
  • 지문 단서 → 정답 매핑
  • 용어
  • 연습 문제