프로젝트/[머신러닝&딥러닝]
[머신러닝] 회귀모델 앙상블예측프로젝트 (Kaggle Competition)
SeokjunMan
2023. 10. 10. 12:30
[ 프로젝트 소개 ]
Playground는 Kaggle에서 주최한 마케팅 비용 예측 경진대회이다.
이번 프로젝트의 목표는 머신러닝을 활용하여 Kaggle 경진대회, Playground 마케팅비용 예측이다.
프로젝트 설명
https://www.kaggle.com/competitions/playground-series-s3e11/overview
Regression with a Tabular Media Campaign Cost Dataset | Kaggle
www.kaggle.com
미국의 유명한 대형마트 체인점들의 각 마트정보와 각 고객들에 대한 정보를 주고,
각 고객들의 정보에 따라 개인별 마케팅 예상비용이 얼마나 소요될지 예측하는 대회이다.
[ 개요 ]
1. 먼저 LGBM회귀모델로 전체적인 기능구현을 한번 돌려본다.
2. 관련된 개념들을 공부하며 성능향상에 도움이 되는 기능들을 도입한다. (평가지표,옵튜나,kfold등등)
3. 회귀모델들을 여러개 선정하여 각각을 학습 및 검증해본다.
4. 전처리 및 피쳐엔지니어링으로 모델학습을 위한 최적의 데이터셋을 만든다.
5. 하이퍼파라미터 튜닝 후, 교차검증을 진행한다.
6. 다른 머신러닝 회귀모델들을 여럿 활용하여 최종적으로 스테킹 앙상블을 진행한다.
-> 지속적으로 피쳐엔지니어링, 튜닝, 교차검증 진행
[ 내용 ]
모두 링크입니다. 클릭!
[머신러닝] 회귀예측 1 - 프로젝트 소개 및 LightGBMRegressor 모델활용
[머신러닝] 회귀예측 2 - 평가지표 MSLE , RMSLE
[머신러닝/딥러닝] 회귀예측 3 - 스태킹 앙상블(Stacking Ensemble) 설명 및 실전코드
[머신러닝] 회귀예측 4 - 모델학습코드 : 리팩토링
[머신러닝] 회귀예측 5 - 모델학습/성능평가코드 : 리팩토링 2
[머신러닝/딥러닝] 회귀예측 6 - 1차 피쳐엔지니어링 실전코드
[머신러닝/딥러닝] 회귀예측 7 - 2차 피쳐엔지니어링
[머신러닝/딥러닝] 회귀예측 8 - 3차 피쳐엔지니어링
[머신러닝/딥러닝] 회귀예측 9 - 하이퍼파라미터튜닝(optuna,kfold)/옵튜나,교차검증
[머신러닝/딥러닝] 회귀예측 10 - 하이퍼파라미터튜닝2(optuna,kfold)/옵튜나,교차검증
[머신러닝/딥러닝] 회귀예측 11 - 머신러닝 모델학습함수와 메서드 (partial, trials_dataframe(), optuna, k-fold)
[머신러닝/딥러닝] 회귀예측 12 - 스태킹앙상블
[머신러닝/딥러닝] 회귀예측 13 - 스태킹앙상블2, KNN 하이퍼파라미터 튜닝
[머신러닝/딥러닝] 회귀예측14 - VIF, 다중공선성, EDA
[머신러닝/딥러닝] 회귀예측 15 - 스태킹앙상블3, Cat,XGB,LGBM,KNN
[머신러닝/딥러닝] 회귀예측 16 (최종제출) - Cat,XGB,LGBM,스태킹앙상블
피드백 및 쟁점
- 왜 스태킹앙상블이 더 점수가 낮게 나왔는가?
여러 모델들을 사용하여 스태킹앙상블을 한 결과보다 CatboostRegressor 단독모델의 결과가 더 좋게 나왔다.
왜 이런결과가 나왔을까?
스태킹앙상블의 특징 때문이 아닐까 생각했다.
스태킹앙상블 자체가 기존의 모델들의 결과물을 가져다가 그대로 모아서 새로운 학습데이터셋을 만드는 방법이다.
만약 a,b,c모델로 스태킹앙상블 할 때, a가 70점, b가 90점, c가 50점이 나온다고 가정해보면
b를 메타모델로 하고 a,c의 결과로 학습데이터셋을 만들어보자.
그럼 70점짜리 결과물과 50점짜리 결과물을 짬뽕시켜서 학습데이터가 만들어진다.
대충 평균이라고 가정해보면 정확도 60점짜리 결과물을 가지고 b로 최종학습시키는 느낌이다.
b 혼자만 학습시키면 애초에 90점이 나오는데 오히려 정확성을 교란시키는 격이 되지않나 싶다.
- 내가 하고싶은 트레이딩 투자에 어떻게 적용가능한가?
[머신러닝/딥러닝] 머신러닝으로 비트코인 가격예측하기
- 일상에서 적용할 수 있는점은?
로또번호같은 독립적인 확률을 가지는 경우를 제외하면 정말 여러상황에 적용할 수 있을 것이다.
각 변인마다 약간의 상관관계들이 있다면 말이다.
예를들어 이전의 날씨 및 강수데이터들을 토대로 다음날의 강수량을 예측한다던지,
클로로필, 산소농도 등의 수집데이터를 통해 수질오염도 계산 등이 있다.
- 어떤 점들을 보완/수정할 수 있겠는가?
피쳐엔지니어링이 중요한 것 같다. 각각 모델마다 피쳐엔지니어링을 진행하면 더 나은 결과값이 나올 것이다.
회귀예측에 유리한 다른 앙상블기법을 사용해 볼 수 있을 것이다.
다른 팀의 공유된 코드들를 참고하여 연구해보면 좋은 공부가 될 것 같다.
깃허브
https://github.com/seokjunHwang