Counting the Mistakes

개념 확인: Evaluation Metrics


회귀 오차와 분류의 두 가지 실수를 지표로 계산하고 목적에 맞게 읽는다.

문제 1

회귀 지표 계산

관측값 y = (3, 5, 7, 9), 예측값 ŷ = (4, 5, 6, 12)다.

  1. MSE, RMSE, MAE를 구한다(소수 둘째 자리까지).
  2. 평가 자료의 평균 ȳ와 R²를 구한다.
  3. R²가 음수라면 무엇을 뜻하는지 적는다.
  4. 큰 오차를 강하게 반영하고 싶을 때와 원래 단위로 오차를 보고하고 싶을 때 각각 알맞은 지표를 적는다.
해설 펼치기
  1. 오차는 −1, 0, 1, −3이다. MSE = (1 + 0 + 1 + 9)/4 = 2.75, RMSE = √2.75 ≈ 1.66, MAE = (1 + 0 + 1 + 3)/4 = 1.25다.
  2. ȳ = 6이고 Σ(y − ȳ)² = 9 + 1 + 1 + 9 = 20이므로 R² = 1 − 11/20 = 0.45다.
  3. 평가 자료의 평균을 항상 예측한 것보다 제곱오차가 크다는 뜻이다.
  4. 큰 오차는 MSE나 RMSE, 원래 단위 보고는 RMSE나 MAE다.
문제 2

혼동행렬에서 지표 계산

문제 2~4는 관측 500개 중 실제 양성 40개, 실제 음성 460개인 가상 평가 자료를 쓴다.

임계값 0.5에서 TP = 30, FP = 10, FN = 10, TN = 450이다.

  1. 정확도, 정밀도, 재현율, F₁을 구한다.
  2. 특이도(TNR)를 구한다(소수 셋째 자리까지).
  3. FP와 FN이 각각 어떤 실수인지 이 자료의 ‘양성’을 불량품으로 두고 적는다.
  4. 양성을 반대 범주로 바꾸면 달라지는 지표와 달라지지 않는 지표를 적는다.
해설 펼치기
  1. 정확도 (30 + 450)/500 = 0.96, 정밀도 30/40 = 0.75, 재현율 30/40 = 0.75, F₁ = 2 × 0.75 × 0.75/1.5 = 0.75다.
  2. 450/460 ≈ 0.978이다.
  3. FP는 실제 정상품을 불량으로 예측한 것, FN은 실제 불량품을 정상으로 예측한 것이다.
  4. 정밀도·재현율·F₁은 새 양성 기준으로 다시 계산해 값이 달라진다(정밀도와 재현율 모두 450/460 ≈ 0.978). 정확도는 0.96으로 같다.
문제 3

한 지표만 보면

문제 2의 평가 자료를 사용한다.

  1. 모든 관측을 음성으로 예측하는 모델의 정확도와 재현율을 구한다.
  2. 모든 관측을 양성으로 예측하는 모델의 정밀도, 재현율, F₁을 구한다(소수 셋째 자리까지).
  3. 두 모델을 문제 2의 모델과 비교해 정확도 하나로 판단하면 안 되는 이유를 적는다.
  4. F₁이 정밀도와 재현율의 산술평균이 아닌 조화평균이라서 생기는 특징을 적는다.
해설 펼치기
  1. 정확도 460/500 = 0.92, 재현율 0/40 = 0이다.
  2. 정밀도 40/500 = 0.08, 재현율 1, F₁ = 2 × 0.08 × 1/1.08 ≈ 0.148이다.
  3. 양성을 하나도 찾지 못하는 모델도 정확도 0.92가 나온다. FP와 FN의 상대적 비용을 반영하지 못하므로 여러 지표와 혼동행렬을 함께 봐야 한다.
  4. 두 값이 불균형하면 산술평균보다 작아진다. 한쪽이 1이어도 다른 쪽이 낮으면 F₁은 낮다.
문제 4

임계값을 옮기면

문제 2의 평가 자료에서 같은 모델의 예측 확률에 세 임계값을 적용했다.

임계값TPFP
0.7204
0.43215
0.23860
  1. 각 임계값의 FN, 정밀도, 재현율, FPR을 구한다(소수 셋째 자리까지).
  2. 임계값을 낮출 때 FP와 FN이 어떻게 변하는지 적는다.
  3. 불량품을 놓치는 비용이 매우 크다면 세 임계값 중 무엇을 고려하고 어떤 대가를 치르는지 적는다.
  4. 임계값 하나의 혼동행렬만으로 ROC AUC를 계산할 수 없는 이유를 적는다.
  5. confusion_matrix가 행을 실제 음성·양성, 열을 예측 음성·양성 순서로 놓는다고 할 때, 임계값 0.7의 2×2 출력 배열을 쓰고 TN·FP·FN·TP의 위치와 .ravel()로 펼친 값의 순서를 적는다.
해설 펼치기
  1. 0.7: FN 20, 정밀도 20/24 ≈ 0.833, 재현율 0.5, FPR 4/460 ≈ 0.009. 0.4: FN 8, 정밀도 32/47 ≈ 0.681, 재현율 0.8, FPR 15/460 ≈ 0.033. 0.2: FN 2, 정밀도 38/98 ≈ 0.388, 재현율 0.95, FPR 60/460 ≈ 0.130.
  2. 고정된 예측값에서 임계값을 낮추면 FP는 늘거나 같고 FN은 줄거나 같다.
  3. 재현율이 높은 0.2를 고려할 수 있지만 FP가 60건으로 늘어 정밀도가 떨어진다.
  4. ROC 곡선은 임계값을 옮기며 TPR과 FPR 점을 이어 만든다. 점 하나로는 곡선과 그 아래 넓이를 구할 수 없다.
  5. 첫 행은 실제 음성, 둘째 행은 실제 양성이다. 출력 배열은 [[456, 4], [20, 20]]이고 왼쪽 위부터 차례로 TN, FP, FN, TP다. .ravel()은 행 순서대로 (456, 4, 20, 20)을 돌려준다. FP 4는 실제 음성을 양성으로 예측한 칸이므로 첫 행 둘째 열에 놓인다.
문제 5

ROC와 보고

  1. ROC AUC가 1.0, 0.5, 0.5 미만일 때 각각 무엇을 뜻하는지 적는다.
  2. FPR 2%인 모델을 실제 음성 5,000개와 50,000개 자료에 적용할 때 FP 건수를 구하고, ROC만으로 부족한 이유를 적는다.
  3. 분류 결과를 보고할 때 함께 적어야 할 항목 네 가지를 적는다.
  4. 프로젝트에서 평가지표를 결과를 본 뒤가 아니라 먼저 정해야 하는 이유를 적는다.
해설 펼치기
  1. 1.0은 모든 양성의 점수가 모든 음성보다 높음, 0.5는 양성·음성 쌍의 평균 순위 성능이 무작위 수준, 0.5 미만은 점수 방향과 양성 범주 지정부터 확인해야 함을 뜻한다.
  2. 0.02 × 5,000 = 100건, 0.02 × 50,000 = 1,000건이다. ROC는 범주별 비율을 보여 주므로 실제 FP 건수는 혼동행렬에서 함께 확인한다.
  3. 혼동행렬 그대로, 쓴 임계값, 양성으로 둔 쪽, 범주별 비율이다.
  4. 결과를 본 뒤 유리한 지표로 바꾸면 평가가 편향되기 때문이다.