Burned Calories Prediction AI Hackathon

Algorithm | Tabular | Regression | Health | RMSE

 

비록 실패한 코드지만 제출 시 RMSE 점수가 엉망입니닷,. 아이디어 공유 부탁드립니닷.,

2023.04.15 02:50 1,841 Views language

XGBoost 와 optuna 를 이용해서 하이퍼파라미터를 튜닝한 후 validation set 에선 RMSE 가 꽤 괜찮게 나왔습니다 (2~5점 사이)

물론 마지막 코드에서 오류가 발생해서 베스트 파라미터를 프린트 하지 못했지만 텍스트 로그를 찾아가 하이퍼 파라미터를 찾아서 모델에 피팅 시켜줬고요

혹시 validaion set을 만들 때 사용한 train set 이 잘못되었나 하고 반복문을 이용해서 split 도 계속 랜덤하게 해주었고요 .. 

그런식으로 최종적으로 찾은 하이퍼 파라미터를 가지고 split 한 test set 을 예측하니 2.5 정도 나오는데

제출만 하면 RMSE 가 엉망입니다 ㅠ_ㅠ_ㅠ_ㅠ_ㅠ_ㅠ_ㅠ_ㅠ_ㅠ_ㅠ 거의 9 이상 나오네요 

어디서부터 잘못되었을까요? 

다들 어떤 아이디어로 일반화 성능을 높히고 test.csv 파일에 대한 예측력을 높히셨나요?

Code
Login Required
0 / 1000
설빙더아이스
2023.04.15 05:45

코드를 살펴봤는데 test에서 RMSE가 증가한 이유는 잘 모르겠네요ㅠㅠ

(+ 대회 안내 - 규칙 - 5.유의사항 을 보시면 test 데이터 셋에 pd.get_dummies() 함수 적용은 Data Leakage라고 되어 있어 주의해야 할 것 같아요!)

따봉캣
2023.04.15 13:35

그렇군요 유념하겠습니다 

데이콘은 익숙치 않아 어색한지라 여쭙는데 훈련 세트에 원 핫 인코딩을 시행 할 때 테스트 셋을 사용한게 아니라 훈련세트만으로 원 핫 인코딩을 시행하고, 테스트 셋만으로 원 핫 인코딩을 사용하는 것도 데이터 유출로 보나요? 그렇담 어떤 식으로 test set의 범주형 변수를 처리하나요?? 

 답변 감사합니다 🥹

따봉캣
2023.04.15 13:45

규정을 살펴보니 train set 에 fit한 인코더를 가지고 트랜스폼을 시켜야 하는군요.. 유념하고 다시 해봐야겠습니다

ㅁㅍ
2023.04.15 15:55

저 딱 원핫인코딩만 적용하고 lgbm 돌렸을 때 2점 나왔었어요! 그리고 저는 새로운 변수를 만들어서 돌렸더니 val rmse는 0.7 나오고 제출했더니 8로 껑충 뛰더라구요... 

따봉캣
2023.04.15 18:36

피트랑 인치를 합쳐서 파생변수를 만들었던게 오버피팅의 원인이 되었나봅니다.. 하면 할 수록 어렵군요 감사합니다 내일 다시 시도해봐야겠어요 ㅎㅎ