
팀명 : 마이너스(Data Miners & Minus Loss)
벌써 몇 번째 프로젝트인지 모르겠다. 정신없이 달리다보니 여기까지 와 버렸다. 앞서 진행된 프로젝트 정리도 채 끝나지 않은 채 이번 Machine Learning 대회 개인 회고를 작성해보고자 한다.
A. 개요
본 대회는 House Price Prediction 경진대회는 주어진 데이터를 활용하여 서울의 아파트 실거래가를 효과적으로 예측하는 모델을 개발하는 대회이다.
부동산은 의식주에서의 주로 중요한 요소 중 하나인데, 이런 부동산은 아파트 자체의 가치도 중요하고, 주변 요소(강, 공원, 백화점 등)에 의해서도 영향을 받아 시간에 따라 가격이 많이 변동하기도 한다. 개인의 입장에서는 더 싼 가격에 좋은 집을 찾고 싶고, 판매자의 입장에서는 적절한 가격에 집을 판매하기를 원한다. 부동산 실거래가의 예측은 이러한 시세를 예측하여 적정한 가격에 구매와 판매를 도와주게 한다. 정부의 입장에서는 비정상적으로 시세가 이상한 부분을 체크하여 이상 신호를 파악하거나 업거래, 다운거래 등 부정한 거래를 하는 사람들을 잡아낼 수도 있다.
- 국토교통부에서 제공하는 아파트 실거래가 데이터(아파트 위치, 크기, 건축년도, 주변시설 및 교통 편의성 등)
- 서울시에서 제공하는 지하철역 데이터
- 서울시에서 제공하는 버스정류장 데이터
- 평가 데이터(최종 모델 성능에 대한 검증을 위해 사용)
- input : 9,272개의 아파트 특징 및 거래정보
- output : 9,272개의 input에 대한 예상 아파트 거래금액
주어진 데이터는 다음과 같았으나 외부 데이터에 대한 제한 사항이 규칙에 없어 다양한 외부 데이터를 끌어다 대회에 응용시킬 수 있었다.
B. 환경
팀 구성 및 컴퓨팅 환경
5인 1팀, 인당 RTX 3090ti 서버를 VSCode와 SSH로 연결하여 사용
협업 환경
Notion, GitHub
의사 소통
KakaoTalk, Zoom, Slack, Discord
팀 구성
프로젝트 팀원으로 배정된 인원은 5명 이었으나 한 분은 재직자 신분이어 개인 업무로 인해 프로젝트에 거의 참여하지 못하셨다. 결과적으로 4명이서 프로젝트를 진행하게 되었고 나눠지는 Task 또한 4명으로 나뉘어지게 되었다.
역할
Task 목록은 다음과 같다.
데이터 확인 및 수집(Data Verification and Collection)
데이터 전처리 및 EDA(Data Preprocessing and Exploratory Data Analysis)
모델링 및 파라미터 튜닝(Modeling and Parameter Tuning)
결과 정리 및 보고서 작성(Summarization of Results and Report Writing)
모두가 함께 모든 Task 에 참여하긴 했지만 각자 중점적으로 두고 진행했던 Task 는 각기 달랐다. 아래의 표에서 표시되어 보여지겠지만, 나는 데이터 확인 및 수집(Data Verification and Collection)과 모델링 및 파라미터 튜닝(Modeling and Parameter Tuning)에 비중을 크게 두고 프로젝트를 참여하였다.
A. 팀 목표 설정
1주차 : 주어진 Upstage 강의 다 듣기, 사전에 주어진 참고 대회 자료 데이콘, 캐글 활용하여 코드 미리 파악하고 데이터 패턴 파악하기
2주차 : 외부 데이터 수집하기, 기존 데이터 탐색 및 파악하기(EDA 및 전처리)
3주차 : 모델링, 모델 튜닝, 최종 모델 완성, 앙상블 전략 사용
B. 프로젝트 사전 기획
(1) Time-Line 수립

(2) 협업 문화
- 특별한 일을 제외하고는 항상 모여서 의논하면서 Task 진행할 것(Zoom, Discord)
- 오프라인 모임이 가능할 경우 오프라인 만남을 적극 활용할 것(소통 Skill Up)
- 논의 사항 및 오류 사항이 있을 경우 즉각 팀원들과 상의할 것
- New 아이디어 발생 시 Team Notion에 작성 후 팀원 호출하여 해당 아이디어에 대해 공유할 것
- 말하지 않아도 각자 중간 진행 상황에 대해 틈틈이 보고할 것
우리팀의 좋았던 점은 별 일 없으면 항상 온라인 소통 플랫폼에 항상 접속해 있는 것이었다. 문제가 생기면 언제든 소통이 가능했고 좋은 아이디어가 생겨도 실시간으로 바로바로 소통이 가능했다. 이 점이 팀 프로젝트 결과물을 뽑아내는 데 중요한 요소였던 것 같다. 다른 팀 보다 늘 다양한 과정과 관점, 다양한 결과물을 완성시켰던 것 같다. EDA 프로젝트부터 Machine Learning 프로젝트, Machine Learning 대회까지 동일한 팀원들과 프로젝트를 진행 중인데 변하지 않고 이런 협업 분위기가 지속되고 있어 개인적으로 너무 만족스럽다. 프로젝트를 진행할 수록 여러 Fast Campus 매니저님들과 여러 강사님들께 인정 받고 있어 뿌듯하기도 하다. 이번 프로젝트에서는 'EDA 장인들' 이라는 극찬까지 받기도 했다.
Public 4등(RMSE : 18590.4353), Private 3등(RMSE : 14283.4856)

우리 팀은 Strategy I, Strategy II 2가지의 전략을 이용하였다. 자세한 Code 및 PPT 자료는 Github 에서 확인할 수 있다. 프로젝트를 진행하며 작성했던 회의록들도 Notion 을 통해 확인할 수 있다.
[Strategy I]
활용 데이터(외부 데이터)
- 금리(한국 은행)
- GDP(한국 은행)
- 대통령 득표율
- 아파트 정보 크롤링(네이버 페이 부동산)
- 역세권(버스, 지하철)
- 한강 대교 거리(하버 사인)
- 학군(서울시 학군 정보)
- 전세가율(KB 부동산)
사용 모델
[Strategy II]
활용 데이터(외부 데이터)
- 금리(한국 은행)
사용 모델
Strategy I은 다양한 외부 데이터를 활용하여 아파트 집 값과 관련이 높은 Feature 들을 생성하여 각각의 Model(CatBoost, XGBoost, LightGBM)을 돌려 Ensemble 하는 전략이었고, Strategy II는 외부 데이터를 다양하게 활용하기보다는 기존의 데이터를 활용하여 새로운 Feature 를 만들어내는 Feature Engineering 에 Focus 를 맞춘 전략이었다.
여기서 Strategy II 부분이 내가 집중적으로 파고 들었던 전략이다. 우선 Categorical 한 아파트명 변수를 Numerical 하게 변경하여 각각의 아파트에 키 값을 부여하였고, 아파트 거래 값이 최근 거래에 영향을 많이 받을 것이라 생각하여 아파트 최근 거래 가격(recent_price), 아파트 최근 거래량(transaction_cnt) 의 feature 를 생성하였다. 그 후 금리 데이터를 추가하여 Modeling(Random Forest, XGBoost, LightGBM)을 하여 Ensemble 하였다.
본 대회의 리더보드에 오류가 있어 오류 발생 전에는 Strategy II 전략이 상대적으로 높은 것으로 나타났으나, 오류 수정 후 Strategy I 의 결과가 더 좋게 나오게 되었다. 리더보드에 오류가 없었다면 Score를 눈으로 확인하며 모델의 성능을 더 좋은 방향으로 변경시키며 수정할 수 있었겠지만 치명적인 오류로 인하여 그러지 못했던 것이 아쉬웠던 부분이었다.
결과적으로 개고생 하며 열심히 수집하고 만들었던 많은 외부 데이터들을 활용한 Strategy I 의 성능이 좋게 평가되어 다행이라고 생각한다. 역시 노력은 배신하지 않아ㅋ
A. 잘했던 점
B. 시도 했으나 잘 되지 않았던 것들
C. 아쉬웠던 점들
D. 프로젝트를 통해 배운 점 또는 시사점
정말 좋은 팀을 만났다. 현재까지 고등학교, 대학교, 대학원 때 했던 모든 조별 과제 및 프로젝트를 통틀어 가장 열정적인 팀을 만난 것 같다. 한 명도 빠짐없이 모두가 다 한 마음, 한 뜻인 경우는 이번 팀이 처음이었다. (보통 조에서 한 두명은 무임승차하는 경우가 대부분이었는데... 나 혼자 밤 새가며 발표 자료 만들었던 때가 생각난다..) 또 신기한 건 내가 부족한 부분은 다른 팀원이 강점으로 가지고 있는 부분이고, 다른 팀원이 부족한 부분은 내가 강점으로 가지고 있는 부분이라는 것이다. 서로서로 그런 부분들을 채워줄 수 있는 팀원들인 것이 우리 팀의 최대 강점이다. EDA 프로젝트 때 부터 만나 지금까지 프로젝트를 진행하며 모두가 빠르게 성장하고 있는 모습이 보여 이 시간이 정말 값지고 의미있는 시간이라 생각한다. 이제 ML 은 완전히 끝났고! DL 프로젝트, 대회 열심히 참여해야겠다!! 우리 팀 끝까지 화이팅 하자!
#패스트캠퍼스 #UpstageAILab #Upstage #부트캠프 #AI #데이터분석 #데이터사이언스 #인공지능개발자 #ML #머신러닝 #경진대회
화이팅!!