작성
·
22
0
작업형2 모델 분석 및 결과 제출에 대해 질문이 있습니다.
회귀분석을 예로들면 랜덤포레스트회귀, XGB회귀, 릿지, 라쏘 등 다양한 모델을 사용해서 모델 마다 도출하는 값이 다른고 그 중 가장 높은 값(r2값이나 mse 값 등 문제에서 평가로 제시된 지표)을 사용한다고 알고 있습니다. val데이터로 학습을하고 가장 높은 값을 찾아서 마지막에 pred = model.predict(test)로 대입하는데, 모델을 선택하는 과정이 없는 것 같습니다.
이렇게 두개의 모델을 사용해서 각각 값을 도출해서 위와 같은 값이 나왔고
이런식으로 test데이터를 예측값에 적용하는데
위 두개에 모델중에 더 나은 모델을 선택하는 과정이 없는건가요??
두개의 모델이 다 활성화 되어있는데 저렇게 밑에 model.predict만 적어놓으면 이 모델이 xgb인지 랜덤포레스트인지 어떻게 인식하는걸까요?
답변 2
0
저는 model이란 변수 1개만 사용하면서 덮어썼습니다.
따라서 위 코드에서는 가장 마지막인 xgb가 model변수에 들어 있어요
model 변수 1개만 아니라 변수명을 달리가져가는 것이 일반적입니다.
rf = 랜덤포레스트()
xgb = xgboost()와 같이요
혹시 이해가 안 되었으면 댓글 부탁드리겠습니다 :)
0
안녕하세요, 인프런 AI 인턴입니다.
tmdfus9929님께서 작업형 2에 대한 중요한 부분을 질문해주셨네요. 두 개 이상의 모델을 사용하면서 최종적으로 어떤 모델의 예측값을 사용할지 결정하는 것은 데이터 분석, 특히 대회나 실무 프로젝트에서 매우 중요한 과정입니다. 각 모델의 성능을 평가하고 선택하는 과정이 명확히 이루어져야 정확하고 최적의 결과물을 제출할 수 있습니다.
이에 대한 설명을 드리자면:
모델 성능 평가 및 선택: 여러 모델로 학습을 마친 뒤, 평가 지표를 사용하여 비교합니다. 일반적으로 회귀에서는 r2_score
, mean_squared_error
(MSE), root_mean_squared_error
(RMSE) 등을 사용하여 평가합니다. 성능 평가 결과를 토대로 가장 성능이 좋은 모델을 선택하여 최종 예측에 사용합니다.
코드 구조: 이미지에서 보이듯, 두 개의 모델이 각기 다른 성능을 보임을 확인한 후, 이 중에서 하나의 모델을 선택하는 코드가 필요합니다. 이 단계는 종종 코드로 명시되지 않거나 ‘주석 처리’되지만, 반드시 수행되어야 합니다. 예:
# 각 모델 결과 비교 후, 최적 모델 선택
if r2_xgb > r2_rf:
best_model = xgb_model
else:
best_model = rf_model
선택한 모델에 기반하여, best_model.predict(test)
와 같이 사용합니다.
model.predict()
를 사용하는 코드가 단독으로 존재한다면, 그 모델이 어떤 것이 사용되었는지 명시하는 변수(best_model
)를 지정해주는 것이 중요합니다. 그렇지 않으면, 여러 개의 모델 속에서 어느 것이 적용된 것인지 명확하지 않게 코드가 실행될 수 있습니다.비슷한 질문 사례를 참고하실 수 있습니다. “작업형2 질문있습니다.” 는 작업형 2에서 모델 선택 및 평가에 대한 기초적인 과정과 로직을 설명하고 있습니다.
최종적으로, 여러 모델의 결과를 바탕으로 신중히 비교하고 결정한 후, 최종 선택된 모델의 결과를 예측에 활용해야 정확한 분석 결과를 도출할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
그렇다면 왜 강의파일에서는 best_model을 따로 지정을 안하고 그냥 model로 혼재하고 있는건가요??