728x90
반응형
sklearn의 confusion_matrix 함수를 다음과 같이 사용시 예측 라벨과 정답 라벨이 모두 일치할 때 발생하는 에러입니다.
TN, FP, FN, TP = confusion_matrix(target, pred).ravel()
전체 에러 문구는 아래와 같습니다.
ValueError: not enough values to unpack (expected 4, got 1)
confusion_matrix는 아래처럼 예측 라벨과 정답 라벨이 모두 일치할 때 element 1개의 1차원 행렬을 반환합니다.
>>> confusion_matrix([1, 1, 1, 1], [1, 1, 1, 1]).ravel()
array([4], dtype=int64)
이런 경우에 반환 값은 1개인데 반환값을 받을 변수로 4개를 적어주어 발생하는 에러였습니다.
- 해결 방법
예측 라벨과 정답 라벨이 모두 일치할 때도 4개의 값을 반환하도록 하고싶다면 labels 파라미터를 사용해주면 됩니다 :)
>>> confusion_matrix([1, 1, 1, 1], [1, 1, 1, 1], labels=[0, 1]).ravel()
array([0, 0, 0, 4], dtype=int64)
728x90
반응형