본문 바로가기
Error Note

confusion_matrix: ValueError: not enough values to unpack (expected 4, got 1)

by ga.0_0.ga 2023. 7. 17.
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
반응형

댓글