데이터이야기

DB 노하우, 데이터직무, 다양한 인터뷰를 만나보세요.

[분석 9기] 부동산 시세 예측 시스템

데이터 이야기
작성자
dataonair
작성일
2016-09-21 00:00
조회
6477


부동산 시세 예측 시스템

주어진 조건 안에서최선의 선택이 가져다 준 분석의 기쁨



분석전문가 9기의 ‘부동산 시세 예측 시스템’은 아파트를 중심으로 한 공동 주거 주택 중심의 부동산 시세를 예측하는 프로젝트다. 포탈 서비스의 지도 API를 활용한 인터페이스가 특히 눈 길을 끈다. 국토교통부 아파트 실거래 데이터와 아파트 기본 정보 데이터, 거래량, 대출 현황, 소 비 심리지수 등 외부 요인 데이터를 토대로 성공적인 개념 확인 프로젝트를 완료했다.



The Challenges

아파트 실거래에 활용되는 서비스 목표로 출발!

여러 번의 변경과 우여곡절 끝에 부동산 시세 예측으로 프로젝트 주제가 결정됐다. 부동산 관련 데이터를 가지고 무엇을 해보기로 결정했을 때만 해도 ‘부동산 시세 대예측’이나 ‘미래가 바뀌는 부동산 투자 전략’ 같은 거창한 주제를 상상했다. 하지만 프로젝트가 진행될수록 장기적인 시세의 흐름이나 먼 미래의 시세를 예측하기에는 너무나도 많은 변수가 있음을 깨닫고 현재 시점이나 몇 주 또는 몇 달 정도 후의 시세를 예측해 보는 것으로 한정해 접근하기로 했다.

프로젝트 주제를 선정할 때 제일 먼저 고려한 것은 데이터 확보 가능성이었다. 처음에는 조원 중에 식품의약품과 관련한 업무를 하는 사람이 있어 식약청의 식중독 관련 데이터를 가지고 프로젝트를 진행하기로 하고, 구체적인 주제 선정을 위 한 관련 자료 수집과 논문 분석을 시작했다. 이후 식중독 관련 자료에 접근하기 어렵게 되면서 주제를 몇 번 변경한 끝에 부동산 시세 예측을 최종 주제로 선정할 수 있었다.

“내가 해야 하는 것과 하지 않아도 되는 것 사이의 선택은 지적 능력이 아닌, 업무의 가능성 여부에 의해서 대부분 결정된 다.”는 어느 저명한 컴퓨터 학자의 말처럼, 우리가 시도할 수 있는 것을 먼저 체크해 보고 시작했다. 범위를 지정해 놓지 않 고 무작정 시작했을 때 나타날 수 있는 막연한 허탈감과 불안감을 어느 정도 피해 보자는 시도였다.

dbin_525.jpg

부동산 시세 예측 관련 모델링 논문은 여러 개 있었고, 빅데이터를 활용해 부동산 시세를 분석하려는 시도도 꾸준히 이어 지고 있었다. 우리는 빅데이터를 부동산 분야에 활용한 대표적인 사례인 질로우(Zillow.com)와 같은 서비스를 만들어 내 고 싶었다.

질로우는 약 1억 가구에 대한 기록, 세금자료, 매매 및 대여 기록, 대출 정보, 인구정보 등을 취합해 계층적 지리정보와 결 합한 공간 빅데이터를 구축한 다음, 이를 토대로 Zestimate(제스티메이트)라는 주택가격 예측 시스템을 만들었기 때문에 정확도가 꾸준히 증가하고 있었다. 현재 질로우는 미국내 대부분의 부동산 거래의 시작점이 되고 있다. 우리나라의 경우 주거 형태가 대부분 아파트에 집중돼 있고 거래 또한 활발하게 이루어지는 편이라 Zestimate보다 정확한 아파트 가격 예 측 시스템을 만들 수 있을 것이라 생각했다. 이를 토대로 실제 부동산 거래에 활용할 수 있는 서비스를 만들고자 했다.



The Approach

수집한 데이터로부터 60개 변수를 뽑아내다

아파트 가격 예측 모델을 만들어 내기 위해 처음 한 일은 모델에 사용할 자료를 수집하는 일이었다. 수집 대상 자료는 2006년부터 축적된 아파트 실거래가 데이터, 아파트 기본 정보 데이터, 부동산 시세에 영향을 주는 각종 통계 데이터, 그 리고 아파트 가격에 크게 영향을 줄 것으로 보이는 사람들의 심리를 지수로 만들기 위해 부동산 관련 뉴스 기사들을 수집 했다. 웹사이트에 게시된 데이터를 크롤링해 수집한 자료로부터 거래 데이터와 아파트 기본 정보 등 총 60여 개의 변수를 생성했다.

dbin_526.jpg

dbin_527.jpg

아파트 가격을 변화시키는 요인은 여러 가지가 있겠지만, 특히 우리나라의 아파트 시장은 다른 요인들보다 소비자들의 심 리에 크게 영향을 받는다고 생각했다. 통계청 자료 등 여러 통계 자료를 근거로 만들어진 소비 심리지수들도 수집했지만, 쏟아져 나오는 부동산 관련 기사가 사람들의 심리를 움직인다고 가정하고 부동산 관련 기사로부터 직접 심리지수를 만들 어 내기로 했다. 이 심리지수는 다음과 같은 방식으로 만들어 졌다.

dbin_528.jpg



심리지수가 시세에 미치는 영향력 의외로 적어

이렇게 모든 변수들을 갖춘 후에는 EDA(Exploratory Data Analysis: 탐색적 자료분석)를 통해 변수 선택 및 변수 중요도 검사를 진행했다. 이렇게 아파트 시세 예측 모델을 위한 준비를 마치고, 우리는 두 가지 형태의 모델을 만들어 보기로 했 다. 먼저 EDA를 통해 선정된 중요 변수들인 거래연도, 층수, 평형, 거래량과 거래가에 직접적인 영향을 미친다고 가정한 심리지수를 이용해 다중 선형 회귀분석을 했다. 이렇게 만들어진 회귀식을 통해 개별 아파트의 가격 예측을 시도했다. 다 음은 기초 거래 데이터와 심리지수를 이용한 다중 선형 회귀분석 모델이다.

dbin_529.jpg

도출된 회귀식은 다음과 같고, 변수 중요도는 PY > YY > FL > MIND 순으로 나타났다.

VL = (8.959e+02)YY + (7.672e+01)FL+ (1.699e+02)PY + (-2.142e+00)MIND(YY : 거래 연도, FL : 층 수, PY : 평형, MIND : 심리지수)

dbin_530.jpg

R-Squared 값은 0.8855로, 88% 정도의 정확도로 예측이 가능하 다는 것을 보여주었다. 변수 유의성을 살펴보니 MIND 변수는 이 회귀식에서 의미가 없는 것으로 나타났다.

아파트 가격에 많은 영향을 미칠 것이라 생각했던 심리요인은 큰 영향을 끼치지 않는 것으로 나타났다. 그 원인을 분석하기 시작했 다. 먼저 심리지수를 만들기 위한 로우 데이터로 사용한 뉴스기사 를 살펴봤다. 그런데 각 언론사에서 뉴스인 것처럼 포장해 쏟아내 는 아파트 홍보 기사가 많이 섞여 있어서 심리지수가 아파트 가격 의 상승을 예견하는 요인으로 작용하지 못했다. 한쪽으로 편향된 심리지수는 오히려 가격 결정에 중요한 요인이 되지 않은 것이다.

이때 우리는 사람들의 심리가 아파트 가격에 영향을 미치지 않는 다고 결론을 내리기보다는 더 정밀한 형태의 심리지수 개발 방법을 만들어 낼 필요가 있다는 결론에 이르렀다. 이것은 차 후 과제로 남긴 채 시간의 압박 속에 프로젝트를 계속 진행했다.

두 번째 모델로서 모든 변수를 이용해 전체 아파트에 적용할 수 있는 분류 모델을 생성해 보았다. 멘토의 조언에 따라 순차 적으로 트레이닝 모델을 만들어 테스트하는 방식을 반복해 모델의 정확도를 높여가기로 했다.

먼저, 개략적인 분류 트리를 보기 위해 전체 데이터로 CTree를 생성하려고 했으나 자료의 크기가 크다 보니 수행시간이 너무 오래 걸려 모델 생성, 평가, 모델 개선의 반복적인 작업을 수행할 수 없었다.

<그림 6>에서 나타난 것처럼 지역, 평형, 연수 등이 아파트 가격을 크게 좌우하는 것으로 나타나 좀더 빠르고 정확한 분석 을 위해 특별시, 광역시, 8개 도로 데이터를 분할하고 랜덤 포레스트(Random Forest)를 이용해 분류 모델 생성을 시도했 다. 그러나 이 역시 모델 생성 및 평가 시간이 오래 걸렸고 정확도도 낮아 시도별 데이터를 평형대로 나누고, 불필요한 설 명 변수를 제거해 최종 모델을 완성할 수 있었다.

dbin_531.jpg



30%에서 시작한 정확도 61%로 향상

최종 분류 모델의 정확도는 61%였다. 처음 분류 모델의 정확도가 30% 였던 것을 감안하면 비약적인 발전이었지만, 시세 를 예측할 수 있다고 하기에는 정확도가 턱없이 낮았다. 그러나 제한된 프로젝트 시간으로 인해 모델 개선은 차후로 미루 고 기존에 만들어진 회귀 모델과 분류 모델을 사용해 최종 사용자 서비스를 만들기로 결정했다. 사용자 서비스는 아파트 구매를 원하는 수요자들이 자신이 원하는 조건, 즉 위치·가격·학교·교통·편의시설 등의 조건을 입력해 만든 시세 예측 모 델에서 생성해낸 가격과 기존 정보들을 이용, 조건에 부합하는 아파트를 찾아 지도에 표시해 주고 상세 정보를 보여준다. 자료의 수집은 JSoup과 Scala를 이용해 웹 크롤링 코드를 직접 작성했다. 분석 모델의 생성은 R을 이용했으며 시각화는 Naver Map API, AngluarJS, Play Framework(Scala)로 작성했다.

dbin_532.jpg

제일 먼저 마주하게 된 문제는 데이터 크기에 따른 R 실행 환경 문제였다. 아파트 거래 데이터와 정보 데이터들은 크기가 수백 메가바이트(MB) 정도였다. 빅데이터 분석이란 이름을 붙이면 그리 큰 데이터가 아니었지만, 개인 노트북이나 컴퓨 터에서는 메모리 부족으로 모델을 만들어 낼 수가 없었다. 이에 서버급 노트북으로 전환하는 스케일업 방식과 한국데이터 베이스진흥원 빅데이터 아카데미에서 제공하는 분석 클러스터를 이용하는 스케일아웃 방식을 사용해 메모리 부족 현상을 해결했다. 그럼에도 수행 시간을 원하는 수준까지 줄일 수는 없었다. 이에 데이터를 지역별·평형별로 나누어 입력 데이터 의 크기를 축소하는 방식으로 모델링 시간을 줄였고, 그 결과 여러 가지 모델링을 시도해 볼 수 있었다.

실제 프로젝트 수행에 있어서 가장 큰 문제는 분류 모델의 정확도가 계속 낮게 나와서 모델로서의 가치가 떨어진다는 것 이었다. 여러 가지 고민들과 멘토의 조언을 반영해 타깃 변수가 숫자로 되어 있는 가격임을 감안해 각 가격 구간별 범위를 만들어 모델링을 생성한 끝에 어느 정도까지 정확도를 높일 수 있었다. 더불어 앞으로 어떻게 모델링을 만들어 나가야 하 는가에 대한 방향을 설정할 수 있었다.

dbin_533.jpg



원격 프로젝트 성공의 가능성 확인

프로젝트 주제 선정 작업이 늦어지고 여러 가지 다른 외부 요인이 발생해 실제 프로젝트를 수행할 수 있는 기간 자체가 매 우 짧았지만 오히려 커뮤니케이션에서 발생하는 문제는 거의 없었다. 짧은 기간을 감안해 각자의 역할을 나누고 작업 결 과를 합하는 방식으로 프로젝트를 진행했기 때문으로 보인다.

메일이나 메신저를 적극 활용해 서로간에 의견을 나눌 수 있었으므로 물리적으로 떨어져 있다는 점에 불편함을 느낄 수 없었다. 온라인 상의 모임이나 의견 교환이 활발한 세대라는 점이 작용했을 것이다. 그리고 배경지식이 다르고 하는 업무 도 다른 조원들로 구성됐지만 짧은 시간 안에 오랜 시간 보아온 사람들처럼 금방 친해졌을 만큼 마음이 잘 맞았다. 이 때문 에 의견 충돌이나 커뮤니케이션 실수에서 비롯되는 문제들이 일어나지 않았고 무사히 프로젝트를 마칠 수 있었다.



The Outcome

짧은 기간에 급하게 만들어낸 서비스지만 실제로 상용 가능성을 타진해 볼 수 있는 기회였다. 더불어 정식 서비스로 공개 하려면 해결해야 할 과제를 많이 남겨준 프로젝트였다. 향후 좀더 정확한 아파트 시세 예측 시스템을 만들어 내기 위해 시 장 심리지수를 더 정확하게 개발하고 여러 다른 변수들을 추가해 모델 정확도를 높이고 다양한 변수가 추가된 아파트별 선형회귀 모델을 개발해 보려고 한다. 그리고 환경, 범죄, 이웃, 정책 등 다양한 부가 정보를 수집해 아파트를 거래하려는 모든 사람들이 활용할 수 있는 서비스로 개발해 나갈 계획이다.



데이터 분석의 즐거움을 알다

(조금 과장하면) 교육에 참여하면서 많은 사람들은 이 교육을 마치고 나면 빅데이터 분석 전문가가 되어 빅데이터 위에 올 라타 미래에 대한 거시적인 통찰을 얻을 수 있을 것이라 생각했을 것이다. 빅데이터 분석 전문가를 꿈꿨던 우리 조원들 역 시 마찬가지의 기대를 가지고 있었다.

그러나 교육을 이수한 후에는 우리가 얼마나 더 많은 것을 공부해야 하는가를 깨닫게 됐고, 이론으로는 절대 배울 수 없는 경험을 얻을 수 있었다. 프로젝트를 진행하며 1~2%의 정확도를 높이려고 밤새 고민도 했고, 실수로 잘못 만들어진 모델 링의 정확도가 95%를 넘은 것을 보고, 그것이 실수임을 깨닫기 전까지 모두들 뛸 듯이 즐거워하다 좌절하기도 했다. 이런 과정에서 데이터 분석의 즐거움을 알게 됐고 또한 데이터를 어떻게 이용하면 되는가에 대한 작은 깨달음도 얻었다.

우리는 지금 데이터 사이언티스트로서의 첫걸음을 내디딘 상태지만 멀지 않은 미래에 서로의 영역에서 데이터 분석 전문 가가 되어 다시 만나게 될 것이라고 믿어 의심치 않는다.



출처 : 한국데이터진흥원

제공 : 데이터 전문가 지식포털 DBguide.net