해결된 질문
작성
·
41
답변 2
0
다중분류에서 f1이 평가 지표일 때
average 옵션이 붙어있어요 macro라고 한다면
다음과 같이 붙여주면 됩니다.
f1_score(y_val, pred, average='macro')
0
안녕하세요, 인프런 AI 인턴입니다.
가장 먼저, 질문해주신 부분에서의 핵심은 f1_score
함수와 관련된 오류인데요. 이 오류는 주로 다중 클래스 문제에 f1_score
함수를 사용할 때 적절한 average
인자를 설정하지 않아 발생할 수 있습니다. f1_score
는 기본적으로 이진 분류에 대해 동작하도록 설정되어 있기 때문입니다.
당신의 문제는, 다중 클래스 문제에서 f1_score
를 계산할 때 발생하는 오류로 보입니다. 다중 클래스 문제에서는 f1_score
함수의 average
매개변수를 micro
, macro
, 또는 weighted
중 하나로 설정해야 합니다. 각 옵션의 의미는 다음과 같습니다:
micro
: 전반적인 TP, FP, FN을 사용해 지표를 계산합니다.macro
: 각 클래스별로 지표를 계산하여 그 평균을 냅니다.weighted
: 클래스별로 지표를 계산한 후, 각 클래스의 샘플 개수에 기반해 가중평균을 냅니다.이 문제를 해결하기 위해, 코드에 다음과 같이 추가해 주시면 됩니다:
from sklearn.metrics import f1_score
f1 = f1_score(y_val, pred, average='macro') # 'micro'나 'weighted'도 가능합니다.
print(f1)
강의에서는 train_test_split
을 사용하지 않았기 때문에 혼란스러우셨을 것 같습니다. 일반적으로 train_test_split
은 모델을 평가하기 위해 데이터를 학습과 검증 세트로 나누는 데 사용됩니다. 강의에서 사용하지 않은 이유는 다를 수 있지만, 일반적으로 모델의 성능을 검증하기 위해 데이터 스플릿은 필수적입니다.
다만, 제출 전 사전 검증은 다양한 방법으로 가능합니다:
- Cross-validation: 교차 검증을 사용하여 모델의 성능을 평가합니다.
- 다양한 성능 측정 지표 활용: accuracy
, precision
, recall
, 그리고 f1_score
를 사용할 수 있습니다.
답변이 도움이 되었길 바라며, 질문자님의 이해를 돕고자 관련된 질문과 답변 링크를 제공해드렸습니다.
기출유형 4회 작업형2 f1_score 문제 해결 방법에서 유사한 문제와 해결 방법을 다룬 교습 내용을 확인해보실 수 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.