작성자	승인자

빈집 정비 통합 지원 시스템 구축 사업

통합 데이터셋 설계서

단계 구분 : 구현

업무 구분 : 개발

문서 번호 : -

문서 버전 : V1.0

Copyright ⓒ 2025 All Rights Reserved.

사전 승인 없이 본 내용의 전부 또는 일부에 대한 복사, 배포, 사용을 금합니다.

		통합 데이터셋 설계서

빈집 정비 통합 지원 시스템 구축 사업

개 정 이 력

Ver	작성일	변경내용	작성자	승인자
1.0	2025.11.04	최초 작성	권지윤	조용래

목  차

1. 내부·외부 통합 파이프라인	3

1.1. 내부 데이터 통합 (aggregate_internal)	3

1.2. 외부 데이터 통합 (aggregate_external)	3

1.3. 내부·외부 데이터 최종 병합 (safe_join 기반)	4

2. 클러스터링 및 변수 중요도 분석	5

2.1. 최적 K 탐색 (run_kmeans_explore)	5

2.2. 클러스터링 및 변수 중요도 도출 (run_kmeans_analysis)	6

3. 함수형 구조 설계의 목적 및 MLOps 적용 근거	7

3.1. 함수 구조 채택의 배경	7

3.2. 유지보수 및 재현성 측면의 장점	7

3.3. MLOps 관점에서의 적용 가능성	8

1. 내부·외부 통합 파이프라인

1.1. 내부 데이터 통합 (aggregate_internal)

1.1.1. 목적

내부데이터(건축물대장, 토지대장, 전기사용량)는 동일한 공간 단위(oa_cd)를 기준으로 생성되지만, 서로 다른 테이블에 분리되어 있음. 이에 따라 aggregate_internal() 함수는 세 데이터셋을 통합하여 집계구 단위의 통합 내부데이터를 생성함. 이는 이후 외부데이터와의 병합 및 클러스터링의 입력값으로 활용됨.

1.1.2. 주요 처리 단계

(1) process_building(), process_land(), process_energy() 함수를 순차 호출하여 각 데이터셋의 파생변수를 생성함.

(2) 세 결과를 safe_join() 함수를 이용하여 oa_cd 기준으로 병합함.

(3) 병합 후 중복 컬럼 제거 및 결측값을 0으로 대체함.

(4) 최종적으로 내부 데이터의 단일 구조화된 DataFrame을 반환함.

1.1.3. 효과

건축물, 토지, 전기데이터를 단일 공간 단위로 일원화함.

내부 데이터의 품질을 향상시키고 병합 오류를 예방함.

이후 단계에서 외부데이터와의 병합 시 안정성을 확보함.

1.2. 외부 데이터 통합 (aggregate_external)

1.2.1. 목적

외부데이터(인구, 사회·복지, 시설 등)는 연도별·주제별로 분리되어 있으며, 각 데이터 내에서도 동일한 oa_cd가 중복 존재함. aggregate_external() 함수는 이를 정규화하여 집계구 단위의 단일 외부데이터셋으로 통합함.

1.2.2. 주요 처리 단계

(1) 입력 데이터의 키(oa_cd)를 normalize_key()를 통해 정규화함.

(2) build_population_features() → build_social_features() →

build_facility_features()를 순차 적용하여 각 주제별 파생변수를 생성함.

(3) 파생 완료된 데이터를 aggregate_by_type()으로 평균 집계함.

(4) 중복 컬럼 제거 및 결측값을 0으로 대체함.

1.2.3. 효과

외부데이터의 구조를 단일화하여 모델 입력 형태로 정비함.

인구·사회·시설 간 상호 관련 변수를 통합 관리 가능함.

중복 키 및 불일치 문제를 제거하여 병합 단계의 오류를 방지함.

1.3. 내부·외부 데이터 최종 병합 (safe_join 기반)

1.3.1. 목적

내부 통합 결과(aggregate_internal)와 외부 통합 결과(aggregate_external)를 결합하여 최종 통합 데이터셋(df_ready)을 생성함. 이는 모델 학습과 클러스터링의 입력 데이터로 사용됨.

1.3.2. 주요 처리 단계

(1) 외부데이터는 집계구 일반 데이터(df_out_agg)와 시설데이터(df_out_fac_agg)로 구분 병합함.

(2) 이후 내부 통합 데이터(df_internal)와 외부 통합 데이터(df_external_total)를

safe_join() 함수로 병합함.

(3) 결측값을 0으로 대체하고, 중복 컬럼 제거함.

1.3.3. 효과

내부·외부 데이터를 일관된 기준(oa_cd)으로 연결함.

최종 데이터셋이 모델링 가능한 구조로 정제됨.

전처리 단계에서의 누락 및 데이터 불일치를 근본적으로 방지함.

2. 클러스터링 및 변수 중요도 분석

2.1. 최적 K 탐색 (run_kmeans_explore)

2.1.1. 목적

클러스터링 수행 시 군집 개수(K)를 결정하기 위해 데이터의 분리도 및 응집도를 다각적으로 평가함.

2.1.2. 주요 처리 단계

(1) oa_cd를 제외한 숫자형 변수만 추출함.

(2) 무한대값을 제거하고 결측값을 중앙값으로 대체함.

(3) StandardScaler로 모든 변수의 단위를 표준화함.

(4) K를 2~15 범위에서 변화시키며 KMeans를 반복 수행함.

(5) 각 K에 대해 Silhouette Score, Calinski-Harabasz Score, Inertia를 계산함.

(6) 세 지표를 시각화하여 최적 K를 도출함.

2.1.3. 효과

데이터의 자연스러운 군집 구조를 파악함.

Silhouette Score가 최대가 되는 구간에서 추천 K를 자동 산출함.

클러스터링의 신뢰도를 높이고 과도한 분할을 방지함.

2.2. 클러스터링 및 변수 중요도 도출 (run_kmeans_analysis)

2.2.1. 목적

도출된 최적 K를 기반으로 실제 KMeans 클러스터링을 수행하고, 각 클러스터의 대표적 설명 변수를 식별함.

2.2.2. 주요 처리 단계

(1) 전처리된 데이터(df_ready)를 표준화함.

(2) KMeans를 수행하여 각 관측치에 클러스터 레이블을 부여함.

(3) 각 클러스터를 목표 변수(1)와 나머지(0)로 이진화하여

RandomForestClassifier를 학습함.

(4) 변수 중요도(feature_importances_)를 기반으로 클러스터별 핵심 변수 도출함.

(5) 중요 변수 상위 항목을 정렬하여 클러스터별 특징을 정리함.

2.2.3. 효과

클러스터별 주요 영향 요인을 명확히 식별함.

데이터 내 구조적 차이를 정량적으로 해석 가능함.

향후 정책 수립 및 예측 모델의 입력 변수 가중치 설계에 활용 가능함.

3. 함수형 구조 설계의 목적 및 MLOps 적용 근거

3.1. 함수 구조 채택의 배경

3.1.1. 문제 인식

데이터 전처리·통합·모델링 과정을 단일 코드 블록으로 작성할 경우,

데이터 출처가 변경되거나 신규 변수가 추가될 때 전체 코드를 수정해야 하는 비효율이 발생함.

3.1.2. 해결 원칙

각 단계를 함수화하여 입력과 출력을 명확히 분리하고, 함수 간 의존성을 최소화함으로써 모듈별 독립 실행과 재사용이 가능하도록 설계함.

3.1.3. 기대 효과

동일 코드 구조로 데이터셋만 교체하여 재분석 가능. 오류 발생 시 모듈 단위로 원인 추적 용이. 분석 파이프라인의 자동화(MLOps) 구현 기반 확보.

3.2. 유지보수 및 재현성 측면의 장점

3.2.1. 유지보수성 향상

각 기능이 독립된 함수로 구성되어 있으므로, 특정 단계(예: 시설 파생, 추세 계산)의 로직을 변경하더라도 전체 코드에 영향을 주지 않음.

3.2.2. 재현성 확보

입력 데이터가 동일하면 항상 동일한 결과를 산출함. 이는 실험 환경, 서버, 분석자에 따라 결과가 달라지는 문제를 방지함.

3.2.3. 확장성 강화

새로운 데이터(예: 교통, 환경, 상권 등)가 추가될 경우, 변수명이 바뀌지 않는다면.

기존 파이프라인의 함수 구조를 그대로 재사용 가능함.

3.3. MLOps 관점에서의 적용 가능성

3.3.1. 자동화 파이프라인 구축

함수 단위의 모듈화를 통해 Airflow, Prefect, Kubeflow 등의 워크플로 엔진에서 단계별 실행이 가능함. 각 함수는 명확한 입출력 경계를 가지므로 자동 스케줄링이 용이함.

3.3.2. 품질 관리 및 모니터링

데이터 입력-출력 로그를 함수 단위로 관리할 수 있어, 품질 모니터링 및 데이터 드리프트 탐지에 활용 가능함.

3.3.3. 지속적 배포(CI/CD) 지원

각 함수의 버전 관리를 통해 수정 내역 추적이 가능하며, 함수 단위 테스트 자동화를 통해 코드 안정성을 확보함.

3.3.4. 요약

함수형 설계는 데이터 분석 및 예측 모델링 과정을 재현 가능하고 확장 가능한 형태로 체계화하기 위한 핵심 전략임. 이 구조를 기반으로 데이터 처리부터 모델링까지의 전체 프로세스를 자동화(MLOps)할 수 있으며, 동일한 구조를 다양한 데이터셋에 적용하여 효율적 운영 및 유지보수가 가능함.