Skip to content
PART 3 · 20장

캡스톤 III: 부동산 가격 예측기

실거래가 기반 완전 예측 파이프라인

1 데이터 탐색
2 특성 선택
3 데이터 분할
4 모델 비교
5 잔차 진단
6 가격 예측
데이터 안내: 이 장의 시뮬레이션에 사용된 데이터 중 일부는 교육 목적으로 생성된 가상 데이터입니다. 실제 한국 경제 데이터는 한국은행 ECOS(ecos.bok.or.kr), 통계청 KOSIS(kosis.kr), World Bank에서 확인할 수 있습니다.

지금까지 배운 모든 것을 동원합니다

Part III에서 회귀분석의 기본(14장), 다중회귀(15장), 모델 진단(16장), 변수 선택(17장), 정규화(18장)까지 단계별로 쌓아 올렸습니다. 이 캡스톤에서는 그 모든 도구를 하나의 파이프라인으로 엮어, 서울 아파트 실거래가를 예측하는 완전한 모델을 직접 만듭니다.

데이터 탐색부터 특성 선택, 학습/검증 분할, 모델 비교, 잔차 진단, 그리고 최종 예측까지 -- 실무에서 데이터 분석가가 매일 반복하는 작업 흐름 전체를 경험합니다.

머신러닝 파이프라인은 요리 레시피와 같습니다: 좋은 요리사는 레시피를 순서대로 따릅니다. 재료를 확인하고(EDA), 필요한 재료만 골라내고(특성 선택), 일부는 시식용으로 따로 빼두고(데이터 분할), 여러 조리법을 시도해보고(모델 비교), 맛을 보며 간을 조정하고(잔차 진단), 최종 완성된 요리를 내놓습니다(예측). 어느 단계도 건너뛸 수 없으며, 순서가 뒤바뀌면 실패합니다.
예측 파이프라인의 6단계 -- 각 단계의 목적:
(1) 데이터 탐색(EDA): 데이터의 분포, 이상치, 변수 간 관계를 눈으로 확인합니다. 데이터를 모르면 모델도 모릅니다.
(2) 특성 선택: 모델에 넣을 변수를 고릅니다. 재료가 너무 많으면 맛이 섞입니다.
(3) 학습/검증 분할: 데이터의 일부를 시험용으로 남겨둡니다. 시험 문제를 미리 보여주면 실력을 알 수 없습니다.
(4) 모델 학습 및 비교: 같은 재료로 다른 요리사(OLS, Ridge, Lasso)가 만든 결과를 비교합니다.
(5) 잔차 진단: 모델이 놓친 패턴이 있는지 점검합니다. 요리 후 맛보기와 같습니다.
(6) 새 데이터 예측: 검증된 모델로 실전 예측을 수행합니다.

각 단계를 완료하면 상단 진행 표시줄이 갱신됩니다. 모든 회귀 모델은 경사하강법(Gradient Descent)으로 학습합니다.
번호면적(m2) 건축년도역거리(m)학군지수 실거래가(만원)
총 관측치
-
변수 수
7
범주형 변수
1 (구)
수치형 변수
6

Step 1 탐색적 데이터 분석 (EDA)

실습 1 -- 변수별 분포 탐색: 변수를 선택하면 히스토그램(수치형) 또는 막대 그래프(범주형)가 자동으로 표시됩니다. 산점도에서는 구별 색상으로 가격과의 관계를 관찰하세요.

요약 통계량

통계량

산점도: 선택 변수 vs 실거래가 (구별 색상)

상관계수 히트맵

빨간색이 강한 양의 상관, 파란색이 강한 음의 상관입니다.

EDA의 중요성 -- 데이터를 모르면 모델도 모릅니다: 초보 분석가가 가장 많이 하는 실수는 EDA를 건너뛰고 바로 모델을 돌리는 것입니다. 이것은 지도도 보지 않고 낯선 도시에서 운전하는 것과 같습니다. EDA를 통해 반드시 확인해야 할 것들:
- 변수의 분포가 치우쳐 있지는 않은가? (로그 변환이 필요할 수 있음)
- 이상치(극단값)가 있는가? (한 건의 이상치가 회귀선을 크게 왜곡할 수 있음)
- 변수 간 상관이 높은 쌍이 있는가? (다중공선성 가능성)
- 범주형 변수의 빈도가 균등한가? (특정 범주에 데이터가 편중되면 예측이 불안정)
관찰 포인트: 면적(area_m2)과 실거래가의 상관이 가장 높을 것입니다. 역거리는 음의 상관(멀수록 저렴)을 보이고, 변수 간 상관이 높은 쌍이 있다면 다중공선성을 의심해야 합니다(17장 복습).

Step 2 특성 선택 워크벤치

어떤 변수를 모델에 포함할지는 분석가의 판단입니다. 변수가 너무 많으면 과적합, 너무 적으면 과소적합.

쉽게 말하면 -- 재료가 너무 많으면 맛이 섞인다: 라면을 끓이는데 파, 계란, 치즈까지는 맛있습니다. 하지만 여기에 잼, 초콜릿, 된장을 더 넣으면? 맛이 이상해집니다. 변수도 마찬가지입니다. 관련 있는 변수(면적, 층수, 역세권)는 예측력을 높이지만, 관련 없는 변수(예: 단지 내 벤치 개수)를 넣으면 모델이 노이즈까지 학습하여 오히려 성능이 떨어집니다. "넣을 수 있다"와 "넣어야 한다"는 전혀 다릅니다.
실습 2 -- 변수 선택과 R-제곱 변화: 체크박스로 변수를 토글하고 "회귀분석 실행"을 누르세요. R-제곱 막대 차트가 실시간으로 갱신되며, VIF가 5를 넘으면 빨간색으로 경고합니다.

Step 3 학습/검증 데이터 분할

모델의 진짜 성능은 한 번도 본 적 없는 데이터에서 측정해야 합니다.

실습 3 -- 분할 비율 실험: 슬라이더를 드래그하면 분할 막대가 실시간으로 갱신됩니다. "데이터 분할"을 누르면 학습/검증 세트가 확정됩니다.
80%

Step 4 모델 비교: OLS vs Ridge vs Lasso

세 가지 회귀 모델을 경사하강법으로 학습합니다. OLS는 제약 없는 최소제곱(14장), Ridge는 L2 페널티(18장), Lasso는 L1 페널티로 계수를 축소합니다.

같은 재료, 다른 요리사: OLS, Ridge, Lasso는 같은 데이터(재료)를 받지만 조리법이 다릅니다. OLS는 자유분방한 요리사 -- 재료를 마음껏 사용합니다 (계수에 제한 없음). Ridge는 신중한 요리사 -- 모든 재료를 쓰되 양을 조금씩 줄입니다. Lasso는 미니멀리스트 요리사 -- 불필요한 재료는 아예 빼버립니다. 어떤 요리사가 최고인지는 데이터(재료)에 달려 있으며, 그래서 비교가 필요합니다.
OLS Loss: L = (1/n) * sum( (y_i - X_i * beta)^2 )
Ridge Loss: L + lambda * sum( beta_j^2 )  [L2 penalty]
Lasso Loss: L + lambda * sum( |beta_j| )  [L1 penalty, proximal gradient]
실습 4 -- 정규화 강도에 따른 모델 변화: lambda 슬라이더를 조절하면서 Ridge와 Lasso의 계수가 어떻게 변하는지 관찰하세요. 학습 과정의 손실 곡선(loss curve)도 함께 표시됩니다.
50

Step 5 잔차 진단

모델이 학습을 마쳤다고 끝이 아닙니다. 잔차(실제값 - 예측값)의 패턴을 점검해야 모델 가정이 충족되는지 확인할 수 있습니다 (16장 복습).

실습 5 -- 잔차 진단 3종 세트: 모델을 선택하면 자동으로 세 가지 진단 차트가 표시됩니다.
진단 기준: 잔차 평균은 0에 가까워야 합니다. 잔차 vs 예측값에 깔때기 형태(이분산성)나 곡선 패턴이 보이면 모델 가정에 문제가 있습니다. 잔차 히스토그램이 정규분포에 가까울수록 예측 구간의 신뢰도가 높아집니다.

Step 6 가격 예측 도구

드디어 최종 단계입니다. 학습된 모델에 새로운 아파트 정보를 입력하면 예측 가격과 95% 예측 구간을 보여줍니다.

실습 6 -- 나만의 아파트 가격 예측: 아래 조건을 입력하고 "가격 예측" 버튼을 누르세요. 유사 조건 매물의 실거래가도 함께 비교합니다.
실무 적용: 프롭테크와 가치 평가
이 장에서 만든 파이프라인은 직방, 호갱노노, 아실 등 부동산 플랫폼의 추정가 산출 방식과 원리가 같습니다. 실무에서는 여기에 거래 시점(시계열), 재건축 가능성, 인근 개발 호재 등 변수를 추가합니다. 중요한 것은 어떤 변수를 넣느냐보다, 모델을 체계적으로 검증하는 과정 자체입니다.
캡스톤 III 정리
  • EDA로 데이터의 분포, 이상치, 변수 간 상관관계를 먼저 파악한다.
  • 특성 선택 시 R-제곱뿐 아니라 수정 R-제곱과 VIF를 함께 본다.
  • 학습/검증 분할로 모델의 일반화 성능을 측정한다.
  • Ridge와 Lasso는 과적합을 막는 정규화 도구이며, lambda 조절이 핵심이다.
  • 잔차 진단으로 모델 가정(선형성, 등분산성, 정규성)을 점검한다.
  • 최종 예측 시 점추정과 함께 예측 구간을 반드시 제공한다.

다음 장 예고: Part IV에서는 분류(classification) 문제로 넘어갑니다. 연속값 예측이 아닌, "이 고객이 이탈할 것인가?"와 같은 이진 판단의 세계입니다.