손실 함수·연습 문제

평균 절대 비율 오차 (MAPE)

문제 설명PROBLEM

preview

MAPE — 평균 절대 비율 오차

20번 MAE절대 오차 지표 — 단위가 y 와 같음. 그런데 매출이 100인 항목과 1000인 항목의 "오차 10" 은 체감이 다르죠. 상대 오차(%) 로 스케일을 맞춰야 공정한 비교가 됩니다:

MAPE=100Ni=1Nyiy^iyi\text{MAPE} = \frac{100}{N} \sum_{i=1}^{N} \left| \frac{y_i - \hat{y}_i}{y_i} \right|

반환값은 퍼센트 (0 ~ 100 이상).

쓰임

  • 매출/수요 예측 (retail, finance)
  • 경쟁 대회·리더보드의 친숙한 단위 (예: "MAPE 5%")
  • 서로 다른 규모의 시계열을 동일 지표로 평가

주의

  • y = 0 에서 정의 안 됨 (0으로 나눔). 필터링 혹은 epsilon 추가.
  • 비대칭 : 예측이 낮을 때 (y_pred < y_true) 상한이 100%, 높을 때는 무한대 가능.

과제

함수 mean-absolute-error-v2(y_pred, y_true) 를 완성하세요.

  • 반환: 퍼센트 단위 float.
  • y_true != 0 인 원소만 계산하도록 방어 (0인 항목은 스킵).
  • 모든 y_true = 0 이면 0.0 반환.

테스트 케이스

#이름y_predy_true기대
1완벽 예측[10, 20][10, 20]0
2균일 10% 오차[110, 220][100, 200]10.0
3큰 절대 오차지만 작은 비율[1001][1000]0.1
40 항목 스킵[5, 10][0, 10]10 만 고려 → 0
5전체 0 → 0[0][0]0.0 (방어)
개념 노트와 실수 포인트

손실 함수

  • MSE=평균제곱오차, MAE=평균절대오차, CrossEntropy=분류용.
  • ⚠️ CrossEntropy 의 log(0)-inf. 작은 epsilon 을 더해 방지.
  • 평균(mean) vs 합(sum) reduction, 예측·정답 인자 순서 확인.