인프런 커뮤니티 질문&답변
f1_score
작성
·
44
0
안녕하세요 항상 강의 잘 보고있습니다 몇가지 궁금한게 생겨서 질문하고싶은데
전에 강의 들을때 f1스코어 에서 pos_label을 붙이셨던걸 봤는데 이걸 붙이고 안붙이고는 어떻게 판별해야 할까요?
from sklearn.metrics import f1_score
f1= f1_score(y_val, pred[:,1], pos_label='>50K')
average=macro는 왜 붙이는건지 알수 있을까요?
혹시 macro나 pos_label처럼 뒤에 따로 붙여야 하는 평가지표가 있다면 또 알려주실수 있을까요?
감사합니다
답변 2
0
1
타겟이 문자인 경우 0과 1로 변경하는 것이 깔끔해요! 그럼 pos_label을 신경쓰지 않아도 되거든요
다만 최근 모델이 문자 그대로 예측이 가능(xgb 제외)하고 이 전처리가 입문자에게는 어려운 것 같아
별도의 처리 없이 예측하고
그리고 나서
평가지표로 점검할 때 pos_label이 어떤 컬럼인지 알려주고 있어요!, 0과 1이 아닐 때 주로 사용합니다. 0과 1이면 1이 pos_label 입니다.
2
f1 평가 지표를 계산 하는 방식은 여러가지가 있습니다. 이건 문제에서 요구하는대로 지정하면됩니다.
3
평가지표를 모두 학습할 필요는 없습니다.
모르는 평가 지표가 나온다면 알고 있는 평가지표로 대체해도 좋아요!
Precision(정밀도), Recall(재현율)에서 0과 1이 아닌 이진 분류인 경우 pos_label가 필요해요
0
안녕하세요, 인프런 AI 인턴입니다. pseoin0907님.
질문 주신 f1_score에 관한 내용을 정리하여 답변드리겠습니다.
1. pos_label 사용 여부
- pos_label은 이진 분류 문제에서 양성 클래스(Positive class)를 명시하기 위해 사용됩니다. 데이터가 숫자로 표현되어 있을 때는 일반적으로 1이 양성 클래스로 취급됩니다. 그러나 라벨이 문자로 되어 있는 경우, pos_label을 통해 어떤 값이 양성인지를 지정해야 합니다. 예를 들어, ‘pos_label=’>50K”는 ‘>50K’가 양성 클래스라는 것을 의미합니다.
2. average=macro 사용 이유
- average 매개 변수는 다중 클래스 문제에서 F1 스코어를 계산할 때 사용됩니다. ‘macro’는 각 클래스의 F1 스코어를 개별적으로 계산한 후, 단순 평균을 내는 방식을 의미합니다. 이는 클래스 간의 균형이 맞지 않을 때, 클래스의 크기에 무관하게 각 클래스의 중요성을 동일하게 간주합니다.
3. 추가 사용 가능한 옵션들
average: ‘micro’, ‘macro’, ‘weighted’, ‘samples’ 등의 옵션이 있습니다.
- ‘micro’: 전체 클래스에 대한 글로벌 통계를 기반으로 계산합니다.
- ‘weighted’: 각 클래스의 F1 스코어에 클래스의 실제 support를 가중치로 주어 가중 평균을 계산합니다.
- ‘micro’: 전체 클래스에 대한 글로벌 통계를 기반으로 계산합니다.
다른 옵션으로
zero_division이 있으며, 이를 통해 분모가 0이 될 가능성이 있는 상황에서 값을 설정할 수 있습니다.
아래 유사한 질문과 답변이 도움되실 수 있습니다:
- 모델 평가할 때 pos_label 사용 방법 질문입니다.
- pos_label 설정에 관한 설명이 담겨 있습니다.
질문에 대한 답변이 pseoin0907님의 이해에 도움이 되기를 바랍니다. 다음 추가적인 질문이 있으시다면 언제든지 남겨주세요. 곧 지식공유자께서 답변해 주실 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.






답변 감사합니다 !!!