칼로리 소모량 예측 AI 해커톤

알고리즘 | 정형 | 회귀 | 헬스 | RMSE

  • moneyIcon 상금 : 인증서
  • 670명 마감

 

[Private 4위_정새] - 특성 공학, 특성 선택 및 AutoML 활용

2023.04.24 10:40 1,265 조회 language

여러 단계를 거친 특성 공학 및 모델 검증(Random Forest, LightGBM, XGBoost, MLP 등 .. 10개 이상)을 진행해봤을 때, 결과적으론 Linear 모델이 가장 성능이 좋았습니다.

또한 코드 공유 게시판 중 '캣지피티'님의 BMI, BMR 특성 공학 방법을 참고하여, 제 전처리 코드에 추가했습니다. 또한 이를 통한 성능 개선을 확인할 수 있었습니다.

이후 모델링을 진행했을 때, MLP를 극한으로 튜닝했을때의 RMSE는 약 0.33 수준이였지만, Linear 모델이 0.29의 RMSE를 도출하는 것을 보면서 기분이 오묘했습니다.

이러한 성능을 확인해봤을 때, 모델을 직접 찾는것보다 AutoML을 활용하는 방법이 더욱 빠르고 좋은 성능을 낼 것으로 생각되어 금요일쯤 테스트해본 것 같습니다.

결과적으로 특성 공학, 특성 선택 방법이 RMSE를 줄이는 데 큰 도움이 되었으며, 이러한 전처리 과정 후 사용되는 AutoML은 굉장히 유용한 것 같습니다.

감사합니다.

+ 추가적으로 특성 공학 및 검증에 활용되는 함수는 이전 청경채 성장 예측 대회에서 1등을 수상하신 '6x2'님의 코드를 활용했습니다.
    https://dacon.io/competitions/official/235961/codeshare/6591?page=1&dtype=recent

코드
로그인이 필요합니다
0 / 1000
리봉봉
2023.04.24 11:04

많이 배우고 갑니다

bullbear
2023.04.24 11:24

3, 4, 5, 6 레이어 MLP들로, 옵티마이저 바꿔가며 극한의 튜닝을 계속했던지라, 선형의 결과를 보고 오묘하셨다는 말씀에 공감가네요.

오히려 복잡도가 과소적합의 원인이었나봅니다.

좋은 코드 감사합니다

정새
2023.04.24 11:28

저도 이런 사실을 너무 늦게알아버린탓에 제대로된 검증을 다시 시작할수가 없었습니다 ㅠㅠ

다음 대회에선 더욱 좋은 결과 있으실겁니다. 수고하셨습니다!

bullbear
2023.04.24 11:31

네! 고생 많으셨습니다!

설빙더아이스
2023.04.24 12:16

저도 온갖 전처리를 다 해보았는데 PolynomialFeatures 하나보다 못했고, 여러 Feature Engineering보다 Feature 제거가 더 좋은 성능을 내는 것에 오묘함을 느꼈습니다. 정형 데이터 쪽 대회는 항상 알 수 없는 곳에서 정답을 찾아내는 것 같네요.. 이번 대회도 고생하셨습니다!

정새
2023.04.24 12:23

토크 게시판에서 공유해주신 반올림은 정말 상상도 못했습니다. 많이 배워갑니다!

+ stacking 방법은 scikit learn 라이브러리를 기반으로 정말 수십번도 더 해봤는데, 어째서 좋은 성적이 안나왔던걸까요..? ㅠㅠ

설빙더아이스
2023.04.24 12:27

stacking은 서로 다른 모델일수록 그 효과가 뛰어난 것 같더라구요!  (autogluon 성능이 뛰어나서 점수가 잘나온 걸 수도 있겠네요)

(+ 반올림은 저도 시험 공부하다가 문득 생각나서 정말 소름이 돋았습니다..)

용용죽겠지
2023.06.21 18:08

질문드립니다 현재 코드에서 Lasso는 어떤 역할로 넣으신건가요? 어떤 효과가 나타나는지 잘 이해를 못했습니다 ㅠㅠ. 읽어주셔서 감사합니다.

정새
2023.07.26 10:05

이제야 댓글을 확인했네요.. 너무 늦었을지도 모르지만 답변 드립니다.

https://scikit-learn.org/stable/modules/feature_selection.html#feature-selection-using-selectfrommodel

위 사이킷런 문서에서 살펴보시면, 아래와 같은 설명을 확인할 수 있습니다.

Linear models penalized with the L1 norm have sparse solutions: many of their estimated coefficients are zero. When the goal is to reduce the dimensionality of the data to use with another classifier, they can be used along with SelectFromModel to select the non-zero coefficients. In particular, sparse estimators useful for this purpose are the Lasso for regression, and of LogisticRegression and LinearSVC for classification:

특성 선택이라는 과정을 위해선 기준이 되는 모델이 필요한데, 이 때 regression 문제라면 Lasso 모델 등을 활용할 수 있고, classification 문제라면 LogisticRegression 모델 등을 활용할 수 있다고 설명되어 있습니다.

저 또한 이러한 문서를 기반으로 확인하고 적용해주었다고 생각해주시면 될 것 같습니다!