분류 모델의 성능을 평가할 때 많이 사용되는 것 중에는 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)
그러면 에러가 나지 않고 제대로 계산될 것입니다.
관련 글
'Dev > python' 카테고리의 다른 글
[python] Pydantic 이해하기 (data class보다 더 나은 듯?) (0) | 2023.01.04 |
---|---|
[python] 패키지 관리자 poetry의 pyproject.toml과 poetry.lock (2) | 2023.01.03 |
[python + sqlalchemy] sqlalchemy로 SQL 없이 관계형 데이터베이스 CRUD 하기 (0) | 2022.12.30 |
[python] pip install 중에 Warning: Retrying ... NewConnectionError와 같은 메시지가 뜨는 이유 (0) | 2022.11.17 |
[python] k-means 알고리즘으로 도매업 고객사 분류하기 (0) | 2022.11.14 |
[python] 의사결정 나무(decision tree)로 유방암 진단하기 (0) | 2022.11.13 |
[python] 가상 환경에 설치되어 있는 패키지 목록을 전달해주는 방법(pip freeze) (0) | 2022.11.09 |
[matplotlib] 박스플롯(boxplot) 해석하기 (0) | 2022.11.04 |