
정확도(14번) 가 분류 성능을 숫자 하나로 요약한다면, 혼동 행렬은 어떻게 틀리는지 를 드러냅니다. 클래스 불균형이나 특정 방향 오류(예: 스팸을 정상으로 오판 vs 반대)를 파악할 때 필수.
이진 분류의 경우:
| pred = 0 | pred = 1 | |
|---|---|---|
| true = 0 | TN | FP |
| true = 1 | FN | TP |
C[i, j] = 실제 클래스 i 를 j 로 예측한 샘플 수. 대각선은 정답, 비대각선은 오답.
다중 클래스로 일반화: (K, K) 행렬.
함수 confusion_matrix(y_pred, y_true, num_classes) 를 완성하세요.
y_pred, y_true (같은 길이), 클래스 개수 K.(K, K) 정수 배열, C[i, j] = count(true=i, pred=j).np.add.at(C, (y_true, y_pred), 1) 또는 np.bincount.| # | 이름 | 검증 |
|---|---|---|
| 1 | 완벽 예측 | 대각 성분만 non-zero |
| 2 | 총합 = N | C.sum() == len(y_true) |
| 3 | shape | (K, K) |
| 4 | 이진 분류 케이스 | 알려진 y_pred, y_true에 대해 정확한 값 |
| 5 | sklearn 일치 | 무작위 데이터에서 sklearn 결과와 동일 |
코드를 작성하고 Run 을 눌러보세요.