평가 지표·연습 문제

결정계수 (R²)

문제 설명PROBLEM

preview

결정계수 (R²)

회귀 모델의 표준 평가 지표. "평균만 예측하는 bar 모델" 에 비해 얼마나 낫냐 를 묻습니다:

R2=1i(yiy^i)2i(yiyˉ)2R^2 = 1 - \frac{\sum_i (y_i - \hat{y}_i)^2}{\sum_i (y_i - \bar{y})^2}

분자는 잔차 제곱합 (SSR), 분모는 총 변동 (SST).

해석

의미
1.0완벽한 예측
0.0평균 예측과 동일한 성능 (쓸모없음)
음수평균 예측보다 더 나쁨 — 모델 망가진 상태

가까워질수록 좋지만, 과적합으로 R²만 높을 수 있어 다른 지표(MAE, CV 등)와 함께 봐야 합니다.

과제

함수 r2_score(y_pred, y_true) 를 완성하세요.

  • 반환: Python float.
  • 힌트: SSR = ((y_true - y_pred)**2).sum(), SST = ((y_true - y_true.mean())**2).sum().
  • SST == 0 (상수 타깃) 경우 방어해도 좋음 (0.0 반환).

테스트 케이스

#이름y_predy_true기대
1완벽[1, 2, 3][1, 2, 3]1.0
2평균 예측[2, 2, 2][1, 2, 3]0.0
3일반[1, 2.5, 2.5][1, 2, 4]0.73~0.75
4매우 나쁨[0, 0, 0][1, 2, 3]음수
5sklearn 일치random 데이터sklearn.metrics.r2_score
개념 노트와 실수 포인트

평가 지표

  • ⚠️ 정확도는 클래스 불균형에 약함(99% 음성이면 다 음성 찍어도 99%).
  • 정밀도(예측한 양성 중 진짜) vs 재현율(실제 양성 중 잡은 것) 트레이드오프, F1=조화평균.