오늘은 저번시간까지 완료한 회귀예측 프로젝트 최종제출을 포스팅해보도록 하겠다.

 

이 포스트에서는 캐글 컴피티션에 최종test검증 및 최종제출까지 한 과정을 올려본다.

추후, 지금까지 했던 이 회귀예측 시리즈 1~16까지를 최종정리하는 포스트를 올려보도록 하겠다.

 

 

< 지난 포스팅 >

https://jayindustry.tistory.com/51

 

[머신러닝/딥러닝] 회귀예측 15 - 스태킹앙상블3, Cat,XGB,LGBM,KNN

오늘은 최종적으로 스태킹앙상블 회귀예측 프로젝트를 마무리하는 날이다. 최근까지의 진행사항을 정리해보겠다. 저번까지 베이스모델을 다음 3개로 고정시켜놓고, : LGBM,XGB,CatBoost 메타모델로

jayindustry.tistory.com

 

 

 

[ 개요 ]

 

1. 제출용 테스트데이터셋 전처리

2. 하이퍼파라미터 튜닝된 베이스모델 3개 (LGBM,XGB,Cat)를 가지고 테스트데이터셋을 통해 타겟밸류(cost) 결과값 예측

3. 예측값 csv로 저장

4. 저장한 예측값들을 concat하여 stacking ensemble을 위한 데이터셋 만들기

5. 하이퍼파라미터 튜닝된 메타모델 Catboost(**bestparams)를 가지고 4번 데이터셋의 cost 예측

6. Kaggle에서 원하는 submission.csv형태로 최종결과물을 전처리하여 저장

7. 로컬에도 저장하여, Kaggle 컴피티션에 최종제출 및 채점

8. 스태킹앙상블없이 진행한 이전의 결과물과 비교

 

 

 

 

[ 내용 ]

 

1. 제출용 테스트데이터셋 전처리

 

 

최종 test데이터셋이 모델들을 학습했던 트레인데이터셋 컬럼들과 맞게 전처리 되었다.

 

 

 

 

2. 하이퍼파라미터 튜닝된 베이스모델 3개 (LGBM,XGB,Cat)를 가지고 테스트데이터셋을 통해 타겟밸류(cost) 결과값 예측

 

 

예측하고 그 예측값들을 Csv로 저장하는 과정까지를 하나의 함수로 만들었다.

 

 

3. 예측값 csv로 저장

 

 

 

4. 저장한 예측값들을 concat하여 stacking ensemble을 위한 데이터셋 만들기

마지막에 이 두 함수들을 실행하였다.

 

3개의 베이스모델의 결과값들이 예쁘게 컨캣되었다.

이제 이 데이터셋을 최종테스트 메타모델의 예측을위한 데이터로 사용한다.

 

 

 

 

5. 하이퍼파라미터 튜닝된 메타모델 Catboost(**bestparams)를 가지고 4번 데이터셋의 cost 예측

+

6. Kaggle에서 원하는 submission.csv형태로 최종결과물을 전처리하여 저장

 

 

 

 

캐글에서 원하는 제출형식으로 잘 전처리가 되었다.

 

 

 

 

7. 로컬에도 저장하여, Kaggle 컴피티션에 최종제출 및 채점

 

Kaggle Notebook의 오른쪽메뉴탭에 캐글환경에 저장된 최종 submission.csv를 로컬환경에 저장한다.

 

 

이렇게 로컬에 저장하는 이유는 다음과 같다.

 

캐글 컴피티션에는 제출하는 방법이 여러가지 있다.

바로 Submit 버튼을 눌러 제출하면, 간편하나 모든 코드를 다시 Running하여 제출하게 되므로 시간이 매우 오래걸린다.

하지만 이렇게 결과파일만 업로드하는 방식으로 제출하면, 그 결과물을 가지고 채점만 하게 되므로 매우 빠르다.

 

 

 

이렇게 해당 컴피티션의 Leaderboard에서 Late Submission을 누르고,

 

 

여기에 제출파일을 올리고 서브밋하면 된다.

 

 

8. 스태킹앙상블없이 진행한 이전의 결과물과 비교

 

 

이번에 진행한 스태킹 앙상블을 사용한 결과

 

 

이전에 진행한 LGBM, CatBoost, XGBoost 따로따로 제출했을 때 결과

3개의 모델 중, CatBoost가 가장 좋은 손실함수값이 나왔었다.

당시 약 1000명 중, 326등을 하였다.

 

이번에 진행한 스태킹앙상블보다 더 좋은 결과값이었다.

 

참고로 이 경진대회의 1~3등의 점수는 아래와 같다.

 

RMSLE 0.001점에 따라 매우 큰 순위편차를 보임을 알 수 있다.

 

 

이 다음 포스팅에서 최종적인 프로젝트 정리와 느낀점, 피드백 등을 적어보도록 하겠다.

+ Recent posts