프로젝트 요약
•
기간 : 2023-07-27 ~ 2023-08-03
•
목표 : 아파트 구매자들의 비대칭성 정보를 해결하기 위해 서울 지역 아파트 실 거래가를 예측하는 모델 개발
•
결과 : 전처리가 완료된 데이터를 사용하여 XGBoost 모델을 학습시켰을 때, MAE가 14,600.80973이라는 값을 얻음.
•
역할 및 기여
◦
데이터 수집 및 전처리
◦
geocoding API를 활용하여 위도/경도 및 다양한 피쳐 생성
◦
XGBoost 모델 학습
◦
발표 자료 구성 및 제작
1. 문제 정의
2021년 인구주택총조사에 의하면 한국의 아파트 가구 비율은 51.9%입니다. 아파트는 주거 선호도가 매우 높으며, 부의 종식 수단으로 여겨지기 때문에 일반적으로 아파트 가격에 관심이 많습니다. 이에 따라, 데이콘에서 주최하는 아파트 실거래가 예측 AI 경진대회를 개최했습니다. 아파트 실거래가와 아파트, 학교, 지하철역 정보를 제공하며, 아파트 구매자들의 비대칭성 정보를 해결하기 위해 서울 지역 아파트 실 거래가를 예측하는 모델을 개발해보자.
2. 가설 설정
•
더 많은 데이터는 학습 시 도움이 될 것이다.
•
geocoding API를 이용해서 얻은 위도/경도 데이터는 아파트 ID역할을 하고 한강까지의 거리 및 다른 피쳐 생성의 바탕이 될것이다.
•
학군, 역세권, 마트의 아파트와의 거리를 피쳐로 추가했는데, 이들은 실거래가 예측에 영향을 줄것이다.
•
데이터와 피쳐가 많다보니 과적합이 많이 생길것이다.
•
분류가 잘 되어야 했기 때문에 CatBoost, LightgGBM보다 BFS(너비 우선 탐색)로 넓게 트리를 형성하는 모델인 XGBoost가 학습 시 더 좋은 성능을 낼 것이다.
3. 데이터 수집 및 분석
•
데이터 : 대치동 아파트 실거래가 데이터, 역삼동, 개포동, 일원동, 도곡동의 아파트 실거래가 데이터
•
일시 : 대치동(2006년도 ~ 2021년도), 역삼동, 개포동, 일원동, 도곡둉(2006년도 ~2023년도)
•
총 데이터 수 : 약 30000개 데이터
•
분석 방법 : 기존의 데이터에 국토교통부 실거래가 공개시스템을 통해 얻은 데이터를 추가하고, NAVER geocoding API를 활용하여 위도/경도를 수집하고 역세권, 학군, 마트와 같은 피쳐를 추가하여 총 데이터를 전처리하고 XGBoost로 모델링하여 평가 방법인 MAE를 측정하였다.
4. 결과
1.
피쳐 중요도를 시각화해서 본 결과, 위도와 경도 지하철역과의 거리 등 과 같은 피쳐들이 결과에 유의미한 영향을 주었다.
2.
CatBoost와 같은 다른 모델들은 XGBoost보다 점수가 낮거나 시간이 오래 걸리고 과적합이 나오는 현상이 있었습니다.
3.
추가수집한 데이터로 모델링 한 결과 더 좋은 점수가 나왔습니다.
5. 회고(KPT)
Keep
•
모델의 성능을 높이기 위해 다양한 전처리를 시도하였습니다.
제공받은 데이터만으로 여러 가지 전처리 시도를 했었지만 모델의 성능이 좋지 않았습니다. 이 과정에서 저희는 서로의 의견을 공유하며 많이 고민했었습니다. 추가로 데이터를 수집하고, API를 이용하여 대치동과 인접한 지역의 학교, 역, 마트와 같은 거리의 위도/경도를 피쳐로 추가해 모델을 학습시켰습니다. 그 결과 모델은 더 좋은 성능을 보였습니다.
•
전처리 하는 과정에서 팀원들의 역할 분담이 잘 되었습니다.
전처리 하고, 새로운 피쳐를 추가하는 과정에 정말 많은 시간을 사용했습니다. 다양한 피쳐를 추가하고, 시간을 절약하기 위해 금리 데이터 구하기, 역까지 최단 거리 구하기 등 각자의 역할에 최선을 다했습니다.
Problem
•
서로 코드를 공유하는 과정에서 문제가 있었습니다.
각자 전처리한 코드를 공유하는 과정에서 주석을 하지 않아 알아보는 데 어려움을 겪었습니다. 잘 작성된 주석은 코드를 이해하고 유지 보수하는 데 도움이 되고, 팀 내의 커뮤니케이션을 강화할 수 있다는 것을 깨달았습니다.
•
전처리하는 과정에서 너무 많은 시간을 할애했습니다.
전처리하는 과정에서 너무 많은 시간을 사용하다 보니 발표 자료 준비, 모델링 하는 시간이 상대적으로 부족했습니다. 더 많은 아이디어를 생각할 시간도 부족해서 아쉬움이 남았습니다. 이는 저희의 역량 부족으로 인한 결과라고도 생각이 들었습니다. 이러한 경험은 앞으로 프로젝트를 진행할 경우 더욱 효율적으로 데이터 전처리 작업을 할 수 있을 것입니다.
Try
•
기존의 피쳐를 더 어떻게 전처리할지 고민해 보면 좋겠습니다.
저희는 새로운 피쳐를 추가하는 일에 집중하였고, 기존의 피쳐를 세분화하여 전처리하는 일을 하지 않았기에 피쳐 중요도가 높았던 피쳐들을 어떻게 전처리하면 좋을지 생각하고 학습하면 모델의 성능이 더 좋을 수도 있을 거라 생각됩니다.
•
적어도 매주 1회 이상 오프라인으로 미팅을 갖는 게 좋습니다.