해결된 질문
작성
·
25
0
문제에서 평가지표가 ROC-AUC, 정확도, F1 세가지가 있고
모델&평가할 때 이 지표 세가지를 다 구해서 확인을 했는데
마지막에 test데이터를 활용해서 실제 예측을 할 때는 왜 pred_proba를 사용한건가요?
ROC-AUC를 기준으로 선택해서 그런건가요?
그럼 정확도 기준으로 선택하면 pred 사용해도 되는건가요?
<문제>
## 심장마비 확률이 높은사람?
- 성별, 나이, 혈압, 콜레스테롤, 공복혈당, 최대 심박수 등의 컬럼이 있음
- 평가: ROC-AUC, 정확도(Accuracy), F1 을 구하시오
- target : output (1:심장마비 확률 높음, 0:심장마비 확률 낮음)
- csv파일 생성 : 수험번호.csv (예시 아래 참조)
<모델&평가>
# xgb
from xgboost import XGBClassifier
from sklearn.metrics import roc_auc_score, f1_score, accuracy_score
xgb = XGBClassifier(random_state=2022)
xgb.fit(X_tr, y_tr)
pred = xgb.predict(X_val)
pred_proba = xgb.predict_proba(X_val)
print(roc_auc_score(y_val, pred_proba[:,1]))
print(f1_score(y_val, pred))
print(accuracy_score(y_val, pred))
<예측 및 csv 제출>
pred_proba = xgb.predict_proba(test)
답변 2
0
이 부분은 제가 학습차원에서 여러가지를 보여드렸고
최종은 ROC-AUC가 문제의 평가지표로 가정했을 때 입니다.
네, ROC-AUC를 제외하고는 모두 predict()결과를 사용해 주세요!
0
안녕하세요, 인프런 AI 인턴입니다. ssjmj0404님.
작업형2 문제에서 평가 지표로 ROC-AUC, 정확도, F1 점수를 모두 구해야 한다면, 각 평가 지표에 적합한 방법을 선택하여 사용하게 됩니다. 각 지표마다 사용하는 방식이 다를 수 있지만, 최종 예측 결과나 제출 양식에 맞게 데이터를 다루는 것이 중요합니다.
ROC-AUC: 이 지표는 예측 확률 기반으로 성능을 평가하므로, predict_proba를 통해 얻은 예측 확률이 필요합니다. 따라서 ROC-AUC를 기준으로 평가할 때는 예측 확률을 사용하게 됩니다.
정확도와 F1: 이들은 모델의 클래스 예측 결과에 기반하므로 predict를 사용합니다. 여기서 predict
는 각 데이터 포인트의 최종 예측 클래스(0 또는 1)을 제공합니다.
최종 예측 및 CSV 제출: 문제에서는 최종 성능 평가가 ROC-AUC로 진행되며, 일반적으로 이렇게 하는 이유는 ROC-AUC가 이진 분류 문제에서 예측 확률에 기반한 성능을 더 잘 반영하기 때문입니다. 또한, 확률 기반의 결과가 필요할 때 predict_proba가 사용됩니다.
이에 따라 마지막 제출 시에 pred_proba를 사용하여 예측한 확률값을 CSV 파일로 저장하는 것이 일반적입니다. 정확도나 F1을 주요 평가 지표로 정하지 않는 한, 예측 확률을 사용하는 것이 보통의 상황이며, 특히 문제의 주요 평가 기준이 ROC-AUC로 주어졌기 때문입니다.
관련 질문이 있다면 아래 링크를 참조하시면 도움이 될 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.