자율주행 센서의 안테나 성능 예측 AI 경진대회

알고리즘 | 정형 | 회귀 | 자율주행 | NRMSE

  • moneyIcon Prize : 총 1,000만원
  • 2,075명 마감

 

간단한 모델 7개를 통해 Feature engineering 효과 확인해보기

2022.08.24 17:02 1,670 Views language

가벼운 머신러닝 모델 7개 (LGBM, Castboost, XGBoost 등) 를 통해 feature engineering의 효과를 추정해보는 코드입니다.

주최측의 NRMSE 값을 그대로 Valid값의 추정치를 획득하게 구현하였고
(주최측 평가식의 특징은 Y_01 ~ Y_08의 가중치가 1.2라는 점이며 이는 Y_01~Y_08이 추정치를 정확히 하는 것이 다른 값들 추정치에 비해 다소 유리함을 의미합니다)

총 7개 모델을 가볍게 구성하여 남은 시간이 짧은 만큼 여러번의 비교가 가능하게 구성하였습니다.
모델은 모두 scikitlearn의 MultiOutputRegressor를 사용하여 feature 변화에 따른 전체 Y value 변화 총합을 비교하게 제작하였습니다

가벼운 모델인만큼 총 7개를 구성하여, 많은 모델에서 공통적으로 결과 향상이 있다면 좋은 feature engineering일 '가능성이 있다' 라고 판단하였습니다.

해당 코드내에 new_train_xx값 내의 x feature들을 원하시는 방향으로 바꾸실 수 있습니다.
ex) X_08의 값을 없앤다 -> new_train_xx = new_train_xx.drop(columns='X_08')
      X_09값과 X_10값의 평균을 추가로 만들어 '파생변수'로 넣고 싶다  -> new_train_xx["avg_910"] = (new_train_xx["X_09"] + new_train_xx['X_10']) / 2

해당 변경에 따라 new_valid_xx값만 똑같이 변경해 주시면 됩니다.

각 셀마다 모델을 배치했고 training시간 비교가 가능하게 구성하여 시간이 너무 오래 걸린다면 모델을 빼서 사용하는 것도 좋은 방법입니다.

마지막에 각 모델별 error값에 1000을 곱한것은 비교에 용이하기 떄문입니다.

모두 좋은 결과 있으시기 바랍니다 :)

Code
로그인이 필요합니다
0 / 1000
졸린곰
2022.08.25 14:19

좋은 내용 공유 감사합니다.