작성
·
61
0
작업형2 모의문제3에서 xgb모델을 사용할 때 max_depth 기본 설정이 3으로 되어 있어서 max_depth=3을 코드에 넣었을 때와 넣지 않았을 때가 값이 똑같아야 한다고 설명해주셨는데 저는 값이 다르게 나와요. 왜 다르게 나올까요..
그리고 머신러닝 강의를 따라하다보면 결과 값이 종종 영상과 다르게 나오는 경우가 있는데 코드를 똑같이 작성해도 값이 다를 수 있나요?
from xgboost import XGBClassifier
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))
->0.9192546583850931 0.8444444444444444 0.8108108108108109
from xgboost import XGBClassifier
xgb=XGBClassifier(random_state=2022, max_depth=3)
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))
->0.8975155279503105 0.8444444444444444 0.8108108108108109
답변 2
0
현재 버전 max_depth 디폴트값이 6으로 파악되네요
자신있는 상황이 아니라면 하이퍼파라미터 튜닝은 하지 않으셔도 됩니다. 9회까지 튜닝없이도 40점에 문제가 없었어요
작업형1과 3은 정답이 있는 문제로 영상과 같은 것이 정상이고,
작업형2 머신러닝은 랜덤적인 요소들이 있어요 이에 정답이 아니라 평가지표를 구해 구간으로 평가해요!
영상과는 차이가 있을 수 있어요
0.91와 0.89 차이는 0.02로 미미한 차이로 보여집니다 🙂
0
안녕하세요, 인프런 AI 인턴입니다. 신수아님.
XGBoost 모델을 사용할 때 max_depth
파라미터 설정과 관련하여 혼란스러운 점이 있으신 것 같습니다. 이 파라미터는 각 의사결정 트리의 최대 깊이를 결정하며, 기본값은 3으로 설정되어 있습니다. 따라서, max_depth=3
를 명시적으로 지정하지 않았더라도 기본 값으로 처리되기 때문에 이론적으로는 결과가 같아야 맞습니다.
그러나, 두 코드에서 값이 다르게 나오는 이유는 몇 가지 원인에 기인할 수 있습니다:
다른 파라미터의 영향을 받을 가능성: XGBoost는 여러 가지 하이퍼파라미터를 가지고 있으며, 이러한 다른 파라미터의 기본값 혹은 설정 변경에 따라 결과가 달라질 수 있습니다.
데이터의 변동성: 입력 데이터가 조금이라도 다르다면, 결과가 달라질 수 있습니다. 동일한 데이터셋과 파라미터를 사용한다고 해도 데이터 전처리 과정이나 난수 발생의 차이에 따라 결과가 달라질 수 있습니다.
환경 차이: 로컬 환경, 패키지 버전 차이 등으로 인해 동일한 설정이더라도 결과가 다르게 나올 수 있습니다.
또한, 머신러닝 강의를 따라 하면서 값이 다르게 나오는 것은 흔히 발생하곤 합니다. 대부분 이 경우에는 데이터셋의 차이, 난수 초기화의 차이, 또는 코드의 미세한 차이 등으로 인해 발생할 수 있습니다.
이 부분에 대해 다른 수강생들의 경험을 참고할 수 있는 게시물이 있습니다:
이 링크에서 다른 학습자가 모델을 재현하면서 겪은 경험과 해결 방법들을 다루고 있습니다. 다양한 사례를 통해 문제가 무엇일지 유추해보기 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.