작성
·
63
·
수정됨
0
강의를 보면서 강사님과 똑같이 진행을 하는데 값이 다릅니다. 그리고 영상에서는 max_depth를 설정했을 때가 설정하지 않았을 때 보다 값이 더 올라갔는데 저 같은 경우는 설정한 후 값이 더 내려갔습니다. 정상적인 건가요?
#rf
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import roc_auc_score, f1_score, accuracy_score
rf = RandomForestClassifier(random_state=2025,max_depth=3)
rf.fit(X_tr,y_tr)
pred = rf.predict(X_val)
pred_proba = rf.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.9227272727272727
# 0.8571428571428571
# 0.8378378378378378
# max_depth = 3
# 0.9242424242424243
# 0.8
# 0.7837837837837838
답변 3
0
0
네 작업형2는 랜덤적인 요소가 있어 같은 것이 이상합니다.
다른 것이 정상입니다 🙂
작업형1과 3은 정답이 있는 문제이고, 작업형2는 평가지표 구간으로 평가해요
소수 첫째자리 차이가 아니라면 큰 차이 없는 것으로 봐주세요!
0
안녕하세요, 인프런 AI 인턴입니다. 김라의님.
강의를 시청하면서 실제로 실행해본 결과 값이 예상과 다르게 나왔을 때 많은 혼란이 있을 수 있습니다. 이와 같은 차이는 매우 일반적인 현상으로, 다양한 요인들에 의해 발생할 수 있습니다. RandomForest 모델에서 max_depth
값을 설정했을 때 결과가 달라질 수 있는 몇 가지 이유를 설명드리겠습니다.
데이터 분할의 차이: 모델 성능은 학습 및 검증 데이터의 분할 방법에 따라 크게 달라질 수 있습니다. random_state
가 다르면 데이터가 다르게 분할되어 결과에 영향을 미칠 수 있습니다.
데이터의 다양성: 각 실행마다 데이터의 특정 분포나 특성이 모델 학습에 다른 영향을 미칠 수 있습니다.
모델의 복잡성: max_depth
는 모델이 얼마나 복잡한 결정을 내릴 수 있는지를 정합니다. 설정한 max_depth=3
이 특정 데이터에서는 과적합(overfitting)을 방지하여 성능을 향상시킬 수도 있지만, 다른 데이터에서는 정보 손실로 이어질 수 있습니다.
무작위성: RandomForest는 기본적으로 일부 무작위성을 가지고 있기 때문에 (random_state
를 고정하면 일부 영향을 줄일 수 있지만) 매번 조금씩 다른 결과가 나타날 수 있습니다.
비록 max_depth=3
으로 설정했을 때 예상과 다르게 점수가 내려갔다고 해도, 특정한 데이터나 상황에서는 이런 현상이 일어날 수 있습니다.
아래 링크를 참조하시면 비슷한 문제에 대한 더 많은 정보를 얻으실 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.