2024. 9. 18. 14:38ㆍUpstage AI Lab
프로젝트 진행 기간 (8월 26일 - 9월 13일)
첫 프로젝트가 지나고 두 번째 프로젝트가 시작되었다.
Python 모듈 개발이 아닌 본격적으로 ML 경진대회로 시작했다.
그래도 ML이랑 DL관련해서 학교에서 MNIST 데이터 셋 분류를 해본 경험이 있어서 생각보다 수월하리라 생각했다.
프로젝트 진행기간에는 공부 기간도 있었고, 실질적으로 프로젝트에 온전히 집중한 것은 9/9-13 한 주라고 봐야 한다.
프로젝트 주제
주제 : 아파트 가격 예측 (House Price Prediction)
목표 : 서울시 아파트 실거래가 예측 모델 개발
평자 지표 : Root Mean Squared Error (RMSE)
제공 데이터
- 아파트 실거래가 데이터 (국토교통부 제공)
- 지하철 정보 데이터 (서울시 제공)
- 버스 정류장 정보 데이터 (서울시 제공)
- 평가 데이터 (점검용)
주요 작업
회귀 알고리즘과 트리 알고리즘을 활용하여 아파트 실거래가 예측
제출 형식
CSV
진행 과정 및 후기
Python 모듈 개발은 이것 저것 알아보고 혼자서 개발한 다음에 각 모듈이 잘 작동하도록 합쳐야 하는 과정이 필수인 반면 ML대회는 각자의 방법대로 모델 개발을 진행하고 점수가 가장 낮게 나오는 팀원의 인사이트를 공유하고 다시 각자 개발의 형태로 진행되었기 때문에 한 층 수월했다.
의사소통 비용이 상대적으로 적어서 편했다는 뜻
저번 프로젝트에서 이해가 안되어도 눈치보고 입을 다물고 있었는데 이번 프로젝트에서는 팀원들 간에 한 번 이야기가 와르르 나오면 내가 자처해서 전반적인 내용을 정리하고 스케줄링을 자발적으로 했다. (팀원 중 한 분에게 완전 무조건 J라는 이야기를 들었다)
나름대로 의사 소통도 잘 진행했고, 우리 팀에서 처음으로 의미 있는 점수 감소를 내가 짠 코드로 이루어냈다.
전날 밤에 어떻게든 점수 감소해보겠다고 늦게 자고 수면 시간을 3시간 30분 정도 가져갔는데 고생한 다음에 점수가 내려가니까 완전 짜릿...
배이스라인 코드는 47000점 정도 나왔는데 내가 처음으로 Submit한 코드는 27000점 정도로 낮췄다.
(Public 기준)
CCC에서 임역원 회의 하면서 한 분이 본인의 취미는 뜨개질이라고 하셨는데 그 이유가 뜨개질을 하다보면 잡 생각이 사라지고 집중 할 수 있어서 좋다고 하셨다. 이번에 ML 대회를 통해 나만의 뜨개질을 찾은 것 같다.
팀원들간의 팀워크도 나쁘지 않아서 좋았다. 특히 팀장님의 활약이 기억에 남는데 이것 저것 변수 만들고 실험을 진행하시는 속도가 엄청 빠르다. 결국 우리 팀은 Public에서도 전체 7팀 중에 4등, Private에서도 전체 7팀 중에 4등으로 대회를 마감했다.
3등이랑 몇점 차이가 안 나서 너무 아쉬울 따름...
나의 접근 방식
우선 주어진 데이터에는 너무 많은 정보들이 있었다. 열만 40개가 넘고, 총 100만개 이상의 데이터가 주어졌다.
GPT나 거대 LLM에 넣어서 EDA를 어떻게 하면 좋을지 조언을 구해보려고 했는데 파일이 너무 커서 CSV파일을 집어 넣는 것 조차 어려웠다.
그래서 GPT에 넣는 건 포기했다.
주로 가져간 전략은 결측치가 너무 많은 열을 모두 삭제했다.
그리고 '평소 사람이 집을 살때 고려하는 요소 위주로 남겨보자' 이렇게 생각을 했고 그에 필요한 열만 남겨두었다.
도메인 지식
ML대회를 하면 가장 중요한 것 중 하나가 도메인 지식이다.
점수를 27000점 정도 내려도 모델을 바꾸고 이것 저것 추가해서 실험을 해봤지만 더 이상 점수가 잘 내려가지 않았다.
그래서 참고 자료로 주어어진 DACON 부동산 가격예측 대회 1등의 코드를 보니 용적률을 계산에 사용해서 이용하려 했지만 구하기 어려워서 빠르게 포기 했다.
대신 팀장님과 팀원들의 활약 덕분에 주요한 파생변수를 찾았고 점수를 한 번더 획기적으로 낮출 수 있었다.
(아파트명으로 묶어서 인코딩, 기준 금리 이용)
파일 구조
여기에는 작성하지 않을 예정이다. 이유는 다음과 같다.
- 부트캠프에서 주최한 Private 대회로 코드의 세부 사항을 또 공개할 경우 다음 기수의 팀원들의 점수에 영향이 있다.
이거 하나 뿐이다.
마무리하며
부트 캠프의 최대 장점은 많은 정보를 짧은 기간에 배울 수 있는 것이 최대 장점이다.
하지만 이것이 최대 단점이기도 하다.
ML 대회를 진행하면서 이것 저것 다른 방법으로도 실험을 진행해보고, 각 학습법의 세부적인 구조까지 다 이해하면서 프로젝트를 진행하고 싶었다. 하지만... 이렇게 대회를 진행하면 시간 안에 대회를 끝내지 못한다. 그래서 발췌독 수준으로 실습을 진행했다.
발췌독을하면 책의 전체적인 구조는 알 수는 있어도 세부 사항은 알지 못한다.
부트캠프가 마무리 된다면 이런 대회를 다시 도전해보거나, 했던 대회들을 돌아보며 더 깊은 공부가 필요하겠다라는 생각을 해본다.
다른 분들은 부트캠프가 끝나면 바로 취업, 또는 대학원을 가지만 나는 학교에 계속 남아있기 때문에 남아 있는 기간 동안 무엇을 해야 할지, 어떤 방향성을 가지고 남은 시간을 보내야 할지 배우는 것 같아서 감사하다.
그리고 기회가 된다면 유학(?)도 가보고 싶은데 어찌될지... 모르겠다.
미국에서 유학하시는 멘토의 멘토링이 있었는데 학부때 이것 저것 많이 해보셨다. 그런 연구실을 기회가 된다면 찾아봐야...
팀장님의 빠른 실험 스킬도 꼭 터득하면 좋겠다.
다음에 혼자 공부할 때 Check Point
로걸 RMSE 점수는 5000점 대가 나와도 Public, Private leaderboard상에서는 10000점 이상의 점수가 지속적으로 나온다.
왜 이럴까 아주 궁금...🤔
이번 대회 기간 얻은 코딩에 대한 통찰
그냥 코딩을 많이한다고 코딩 실력이 느는 것이 아니라, '코딩을 잘 하는 사람들이 어떻게 코딩을 하는가?'를 보고 배워야 한다.
물론 양에서 질이 나오기 때문에 절대적인 코딩의 양을 무시하지는 못하겠지만 ML에서 쓰레기 데이터로 모델을 학습 시키면 결과가 좋지 않은 것처럼 코딩도 잘하는 사람들의 코딩을 배우는게 중요하겠다는 생각이 든다.
나중에 사업을 하고 싶다는 생각을 했는데 취업해서 코딩 잘 하는 사람들의 코딩을 배우려는 목적으로 취업 경험도 나쁘지는 않겠다는 생각을 해봤다.
앞으로 공부할 수학 분야에 대해서도 생각해보면, 통찰력 있는 수학 지식을 가지고 있어야 문제 해결에 도움이 되지 그러지 못하면 계산양이 늘어나거나 고생을 할 수 있겠다는 생각을 해보았다.
그럼 프로젝트 회고 끝!
'Upstage AI Lab' 카테고리의 다른 글
MLOps Project 회고 (5) | 2024.10.12 |
---|---|
MLOps 강의를 들으며 (3) | 2024.09.25 |
AI를 위한 기초 수학 (0) | 2024.08.26 |
인생 첫 개발 프로젝트 (6) | 2024.08.26 |
Git 학습일지 2 (0) | 2024.08.11 |