강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

tjddml0908님의 프로필 이미지
tjddml0908

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

기출 4회 작업형 2, train_test_split

해결된 질문

작성

·

41

0

기출 4회 작업형 2 풀이 강의에서, train_test_split을 사용하지 않으시던데,

이건 target값이 이진분류가 아니라서 그런건지요?

 

train_test_split을 사용하여 모델을 분리하고,

f1_score로 검증해보려고 하니 오류가 나옵니다.

 

target값이 이진분류가 아니면 제출전 사전 검증이 불가능한건지 알고 싶습니다.

감사합니다.

1.JPG.webp2.JPG.webp

 

답변 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를 계산할 때 발생하는 오류로 보입니다. 다중 클래스 문제에서는 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을 사용하지 않았기 때문에 혼란스러우셨을 것 같습니다. 일반적으로 train_test_split은 모델을 평가하기 위해 데이터를 학습과 검증 세트로 나누는 데 사용됩니다. 강의에서 사용하지 않은 이유는 다를 수 있지만, 일반적으로 모델의 성능을 검증하기 위해 데이터 스플릿은 필수적입니다.

다만, 제출 전 사전 검증은 다양한 방법으로 가능합니다:
- Cross-validation: 교차 검증을 사용하여 모델의 성능을 평가합니다.
- 다양한 성능 측정 지표 활용: accuracy, precision, recall, 그리고 f1_score를 사용할 수 있습니다.

답변이 도움이 되었길 바라며, 질문자님의 이해를 돕고자 관련된 질문과 답변 링크를 제공해드렸습니다.

기출유형 4회 작업형2 f1_score 문제 해결 방법에서 유사한 문제와 해결 방법을 다룬 교습 내용을 확인해보실 수 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

tjddml0908님의 프로필 이미지
tjddml0908

작성한 질문수

질문하기