코딩재개발 RSS 태그 관리 글쓰기 방명록
2022-11-15 16:52:51

분류 모델의 성능을 평가할 때 많이 사용되는 것 중에는 F1 점수가 있습니다. 사이킷런 라이브러리로 F1 점수를 구하는 코드는 다음과 같습니다. 물론 y_test와 y_hat은 구해져있어야 합니다. 

 

from sklearn import metrics

score = metrics.f1_score(y_test, y_hat)

 

그런데 위와 같이 코드를 작성했는데, 오류가 나는 경우가 있습니다. 다음과 같이 말이죠.

 

ValueError: pos_label=1 is not a valid label.

 

 

보통 이런 에러는 클래스가 0, 1로 구성되어 있지 않을 때 발생합니다. pos_label 매개변수의 기본값으로 1이 들어가 있기 때문입니다. 만약 클래스가 0, 1이 아니라 2, 4 이렇게 구성되어 있다면, pos_label 매개변수의 값을 설정해줘야 합니다. 만약 클래스 2 예측 F1 점수를 구하고 싶다면, pos_label=2를 추가해줘야 하고, 클래스 4 예측 점수를 구하고 싶다면, pos_label=4를 추가해줘야 합니다. 

 

from sklearn import metrics

score = metrics.f1_score(y_test, y_hat, pos_label=2)

 

그러면 에러가 나지 않고 제대로 계산될 것입니다. 

 

관련 글

- [python] scikit-learn의 confusion matrix 해석하기

글을 읽던 중에 궁금했던 부분은 질문해주세요.
칭찬, 지적, 의문, 격려, 감사표현 등을 남겨주세요.
최대한 답변 드리도록 노력하겠습니다.
욕설과 광고를 담은 댓글은 가차없이 삭제합니다.
비밀글