소식 공간 속 패턴을 읽어내는 기술 : DBSCAN과 부동산 분석
공간 속 패턴을 읽어내는 기술 : DBSCAN과 부동산 분석
지도 위에 흩어져 있는 수많은 포인트 데이터, 예를 들어 서울 아파트 실거래가 위치를 보면 처음에는 그저 복잡한 점의 모음처럼 보입니다.
하지만 데이터 속에는 패턴이 숨어 있습니다.
특정 지역에는 거래가 몰려 있고, 다른 곳은 텅 비어 있죠. 이런 숨겨진 구조를 찾아내는 데 유용한 도구가 바로 DBSCAN입니다.
- 일정 반경안에 최소 개수 이상의 점이 모이면 “군집(Cluster)”으로 판단
- 이 조건을 만족하지 못하는 점들은 “노이즈(Noise)”로 분류
즉, 데이터가 미리 “몇 개의 그룹으로 나눌 수 있다”고 가정하지 않고, 데이터가 분포하는 밀도에 따라 자연스럽게 클러스터를 찾아내는 방식입니다.
조금 더 구체적인 개념과 용어를 그림으로 이해해봅시다.
먼저 점이 있고, 그 점으로부터 거리(Epsilon)안에 점이 몇 개 있으면 하나의 군집으로 인식한다고 할 때, 이 조건을 충족하는 점을 중심점(Core Point)이라고 합니다.
예를 들어 거리안에 자신을 포함해서 3개의 점이 있을 때 군집이라고 인식한다면 아래 그림의 포인트1은 중심점이라고 할 수 있습니다.
그리고 조건에 못 미치지만 중심점의 군집에 속하는 포인트2같은 점을 경계점(Border Point) 이라고 합니다.
아까 중심점이었던 Point1을 Epsilon 반경 내에 포함하는 또다른 중심점인 Point3는 Point1과 연결되어 있다고 하고 하나의 군집으로 묶이게 됩니다.
마지막으로 어떤 점을 중심으로 해도 범위에 포함되지 않으며, 어느 군집에도 속하지 않는 Point4와 같은 점은 Noise라고 합니다.
컴퓨터에서 DBSCAN이 동작하는 과정은 아래와 같습니다.
[DBSCAN 동작과정]
1. 임의의 데이터 포인트 선택
2. 선택한 데이터 포인트와 Epsilon 거리 내 있는 모든 포인트 탐색
2-1. Epsilon 거리 내 데이터 포인트가 기준 개수 이상 : 초기 포인트를 중심점으로 지정
2-2. Epsilon 거리 내 데이터 포인트가 기준 개수 미만 : 코어 포인트 포함 시 경계점, 미포함 시 Noise
3. 군집 내 다른 군집의 중심점이 있다면, 그 점을 중심점으로 하는 군집도 동일한 군집으로 간주
4. 모든 점에 대해서 2~3 과정을 반복
5. 모든 포인트가 중심점 / 경계점 / Noise 중 하나로 구분되면 종료
- 자동 군집 개수 결정 : K-means 같은 전통적 방법은 미리 군집 수를 정해야 하지만, DBSCAN은 데이터 자체가 그룹을 만들어줍니다.
- 노이즈 처리 : 이상치를 따로 구분해줄 수 있어, 현실 데이터(부동산 거래, 범죄 발생, 센서 측정값 등)에 적합합니다.
- 불규칙한 형태 인식 : 단순히 원형 타원형이 아니라, 도로 따라 늘어선 아파트 단지처럼 복잡한 모양의 클러스터도 잘 잡아냅니다.
- 최근 6개월간 거래된 아파트 좌표에 DBSCAN을 적용하면, 거래가 활발히 이루어진 “핫 클러스터”를 자동으로 찾아낼 수 있습니다.
- 예) 강동구 00역 주변, 재개발 기대감으로 거래 밀집 클러스터 형성.
- 고가 시세 형성 지역과 동떨어져 있는 “노이즈”로 분류된 거래들을 분류할 수 있습니다.
- 예) 특정 단지 한두 건만 급등 거래가 발생 -> 시장 왜곡, 특수 거래 가능성
- 행정동 경계가 아닌, 실제 거래 패턴을 기반으로 생활권이 어떻게 나뉘는지 확인할 수 있습니다.
- 예) 동일 생활권이지만 학군, 교통에 따라 DBSCAN이 두 개의 군집으로 나눠주는 경우, 생활권의 미묘한 분절 확인.
DBSCAN은 부동산뿐 아니라 다양한
DBSCAN은 지도 속 점들을 “무리”와 “이상치”로 나눠주는 렌즈입니다.
부동산 실거래가 지도에 적용하면, 단순히 가격 수준을 보는 것이 아니라 거래가 어디에 집중되고, 어디가 시장의 변두리인지를 알 수 있습니다.
이는 투자자, 정책 담당자, 연구자 모두에게 가치있는 정보를 줍니다.
앞으로도 공간정보 분석은 이렇게 데이터 속 숨은 패턴을 발견해, 우리가 사는 도시와 시장을 더 잘 이해할 수 있도록 도와줄 것입니다.
[ 참고 및 출처 ]
https://datananalysis.tistory.com/135
https://bcho.tistory.com/1205
https://levelup.gitconnected.com/visualizing-clustering-algorithms-k-means-and-dbscan-c4ce62de23c1
[글/사진] 박영희 대리 / dudgml8@gmail.com