해결된 질문
작성
·
277
·
수정됨
0
총 3가지 질문이 있습니다!
교차검증에서 cross_val_score 을 활용하면
from sklearn.metrics import f1_score 을 활용하지 않아도 되는 건가요?
(scoring='f1_macro' 라고 되어 있어서 train_test_split 과 f1_score 평가를 동시에 진행하는 방식 같은데..맞나요..?)
문제에서 평가 : Macro f1_score 라고 되어 있는데,
강사님처럼 교차검증에서 cross_val_score을 활용해도 되고, train_test_split +from sklearn.metrics import f1_score 활용해도 되는건가요?
이전 강의에서
f1_score 평가 설명시
from sklearn.metrics import f1_score
f1 = f1_score(y_true_str, y_pred, average = 'macro')
라고 알려 주셨는데, metrics 를 불러와서 f1_score을 평가하는 것은 train_test_split 을 통해 X_tr, X_val, y_tr, y_val 로 분리한 경우에만 사용할 수 있는 거죠??(2번 질문과 이어짐)
ps. 친절한 강의, 답변 감사합니다!
답변 2
1
안녕하세요, 인프런 AI 인턴입니다.
최초로 제시하신 질문에 대해서는, 교차 검증에서 cross_val_score
을 활용할 경우 from sklearn.metrics import f1_score
을 별도로 사용하지 않아도 f1_macro
와 같은 스코어링 옵션을 지정하여 직접 평가할 수 있습니다. 이것은 cross_val_score
함수가 모델 평가 메트릭으로 f1_macro
를 받아내부적으로 교차 검증 동안 각 부분 집합에 대한 F1 점수를 계산하기 때문입니다.
문제에서 요구하는 평가 지표가 Macro F1_score 인 경우, 강사님이 설명하신 교차검증을 사용하는 방법과 train_test_split
과 f1_score
를 사용하는 방법 모두 유효합니다. 각각의 방법은 평가 절차에서 약간의 차이가 있지만, 최종적으로는 macro F1 점수를 계산하는 것이 목적이므로 문제의 요구사항에 부합하는 결과를 제공한다면 어느 방식을 사용해도 괜찮습니다.
기존 강의에서 f1_score
평가 설명을 제공할 때, average='macro'
옵션은 다중 클래스 문제에 있어 각 클래스에 대한 F1 점수의 평균을 계산하는 데 사용됩니다. 이 방법은 train_test_split
을 통해 학습 데이터와 검증 데이터를 분리한 경우에만 사용할 수 있습니다.
위의 내용과 관련하여 유사한 상황에서의 기존 답변 링크를 확인해보시면 좋을 것 같습니다.
- 4회 기출-2유형 macro-f1 score 관련
- 교차 검증과 cross_val_score
사용에 대한 설명이 포함되어 있어 질문자님의 상황에 도움이 될 수 있습니다.
f1_score
함수 사용시 average
매개변수를 어떻게 지정해야하는지에 대한 질문입니다. 다중분류 문제에서는 macro
를 설정해야합니다.macro_f1
평가 방법에 대한 구체적인 코드 사용 예시가 있어 참고하시면 도움이 될 수 있습니다.저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
0
우선 교차 검증은 심화학습이고 필수는 아니라는점 안내드려요!
1.
train_test_split 함수는 실제 데이터가 나눠져요!
cross_val_score는 실제 데이터가 나눠지기보다 검정할때만 나눠지고, 실제 데이터는 그대로 유지됩니다.
둘다 모델 성능을 측정하기 위한 것이므로 둘 중 1개만 사용하면 됩니다.
2.
네 맞습니다. 그런데 X_val와 y_val데이터를 분리하지 않으면 검증을 할 수가 없어요!
혼란스럽다면 교차 검증 나중에 학습하고 예전에 배웠던 방식으로 진행해주세요 :)
화이팅입니다.