본문 바로가기
  • 나를 찾는 여행...
▷ AI 인공지능

아파트 실거래가 예측 프로젝트

by amoswalker 2025. 9. 12.
728x90

아파트 실거래가 예측 프로젝트

1. AI 대회 소개

  • 주제 - 서울 아파트 매매 실거래가 예측 (Regression)
  • 평가지표 - RMSE (예측값과 실제값 간 평균 편차)
  • 기간 - 2025/9/1(월) ~ 9/11(목)
  • 규정 핵심
    • 외부 데이터 허용 (단, 평가 데이터 유추 금지)
    • 평가 데이터 학습 금지
    • 사전학습 가중치 금지 (토크나이저는 허용)
    • 팀당 일일 제출 12회

2. 목표

  • 대회 공식 목표 - RMSE 최소화 (리더보드 기준)
  • 우리 팀 목표 - 성능 경쟁보다 학습·지식 공유에 중점
    • 각자 전처리·모델링 실습 → 팀 내 설명/공유
    • 외부 데이터 탐색 & 아이디어 확장
    • 서로 다른 접근법 비교를 통한 학습 극대화

3. 환경 세팅

서버 환경 세팅

*1) 먼저 OpenVPN 설치
*
VPN 계정을 만들어서 유저네임과 비밀번호를 만들고 따로 저장.

OpenVPN을 실행시킨 다음에 config file을 업로드.

2) GPU 서버를 생성을 위해 SSH 키를 생성하고 생성과 보관.

( *****.pem 파일) SSH 키를 생성

3) 서버 생성 후 포트는 2개로 맞추고, ssh로 접속.

4) VPN을 먼저 연결한 후에 서버에 접속

( 터미널 또는 VS Code로 접속 )

5) 서버에 데이터셋과 베이스라인코드를 저장

6) 데이터셋 저장

# Python 3.10 권장
# 필요한 라이브러리 설치
pip install pandas numpy scikit-learn lightgbm eli5 haversine optuna xgboost joblib matplotlib seaborn tqdm

# NanumGothic 폰트 설치
sudo apt-get install -y fonts-nanum

4. 폴더 구조

├── baseline_code
│   ├── baseline_code.ipynb        # 베이스라인 코드
│   └── requirements.txt           
├── data                           # 대회 제공 원본 데이터 공간
│   ├── bus_feature.csv            
│   ├── subway_feature.csv
│   ├── train.parquet              # 용량 문제로 변환 후 업로드                
│   ├── test.csv
    └── sample_submission.csv      # 제출 양식 예시                
├── notebooks                      # 개별 작업 공간
├── src                            # 전처리/모델링 작업 공간                  
├── output                         # 산출물 저장 공간                
└── README.md                      

5. 데이터 개요

1) 대회 제공 파일

  • train.csv
  • test.csv
  • bus_feature.csv - 버스 정류장/노선 피처
  • subway_feature.csv - 지하철역/노선 피처
  • sample_submission.csv - 제출 양식

2)전처리 산출물

  • merge_subway_fixed.csv - 원본 데이터를 결합하고 결측/파생을 반영한 최종 학습 입력 데이터

3) 데이터 파이프라인

train.csv + test.csv
  + bus_feature.csv + subway_feature.csv
  └─▶ [좌표 보정, 결측 대체, 피처 결합/생성] ─▶ merge_subway_fixed.csv

6. EDA

  • 결측치 확인 - matplotlib을 활용해 변수별 결측치 비율 시각화
  • 변수 상관관계 분석 - 히트맵을 이용해 변수들 간 상관관계 파악
  • 정규화 적용 - 변수 중요도 비교 시 정규화로 상대적 영향력 확인

7. 데이터 전처리

  • 컬럼 정리
    • 불필요한 열 및 결측치가 10만 개 이상인 컬럼 삭제
    • 컬럼명 표준화 (전용면적(㎡) → 전용면적, X/Y좌표 → 좌표X/Y)
  • 위치 정보 정제
    • 카카오 API를 활용해 아파트명 + 주소 매칭해 좌표 결측치 보완
    • API DB 특성상 2015년 이후 주소 데이터만 안정적 제공
    • 매핑으로 채우지 못한 0.4%는 시군구 평균·중앙값으로 대체8-2. 외부 데이터 병합
  • 금융 데이터 (ecos, 한국은행 경제통계시스템)
    • 한국은행기준금리, 정부대출금리, 국고채(3년), 서울지가변동률 추가
    • 계약년월 기준으로 매핑
    • 단기 상관관계는 낮으나, 금리는 1~2년 후 영향
    • 변수들 간 상관관계가 높아 일부는 통합 처리 가능
  • 지하철 데이터 (subway_feature.csv)
    • 좌표 기반 매핑
    • 주요 변수: 1km내역개수, 가까운역이름, 실제 거리

8. 파생변수 생성

  • Haversine 공식 → 1km내 역 개수, 지하철/버스 정류장 거리 계산
  • 전용면적(㎡)전용면적 표준화
  • 계약년월계약년, 계약월 분리
  • 2020년 이후 건축 → 신축여부 플래그
  • 강남·서초·송파·용산 → 특이 지역 플래그
  • 전용면적 구간화 - 25%, 50%, 75% 분위수 기준으로 나눠 구간별 평균값 반영
  • 8-4. 중요 피처
  • 전용면적 - Target값과 대체로 비례
  • 아파트명 - 지역·브랜드 효과를 반영, 범주형 처리 시 모델 주요 분할 기준으로 작용
  • 가까운역 - 교통 접근성을 반영, 거리·역 이름 변수 모두 가격에 직접적 영향
  • 국고채 - 단기 상관관계는 낮지만, 중장기 가격 흐름에 변수로 작용
  • 일부 이상치(outlier) 존재 → log 변환으로 분산 축소
  • 구간화 - 25%, 50%, 75% 분위수 기준으로 나눠 구간별 평균값 학습에 반영
  • 8-5. 타깃 변환
  • target에 log1p 변환 적용 후 학습
  • 제출 단계에서 expm1 역변환 수행
  • 분포 안정화 및 RMSE 계산 안정성 강화

9. 모델링

  • 모델 선택
    • LightGBM Regressor 사용
    • XGBoost와 함께 대표적인 경량화 부스팅 모델
    • 빠른 학습 속도 + 우수한 예측 성능 → 대용량 데이터셋에도 효과적
  • 교차 검증
    • 시계열 데이터 특성을 반영 → TimeSeriesSplit(n_splits=5) 적용
    • 미래 시점 예측 목적에 부합하는 검증 방식
  • 카테고리 처리
    • object 타입 변수를 category로 변환
    • LightGBM이 범주형 변수를 효율적으로 처리할 수 있게 최적화
  • 하이퍼파라미터
    • n_estimators=1000, learning_rate=0.05, subsample=0.8, colsample_bytree=0.8
    • early_stopping_rounds=50 → 과적합 방지 목적
  • 타깃 변환
    • target → log1p 변환 후 학습 → 예측값은 expm1로 역변환
    • 왜곡된 분포 완화, 학습 안정성 및 RMSE 계산 안정화
  • 추론 및 앙상블
    • 각 fold별 모델을 timeseries_fold{k}_gbm.pkl로 저장
    • 최종 예측 시 fold별 결과를 평균 앙상블하여 일반화 성능 강화
  • Feature Importance 결과
    • 전용면적, 아파트명, 교통 변수, 금융 지표 등이 중요 요인으로 확인됨
    • 특히 금리 지표는 단기 영향은 낮으나 중장기 가격 흐름에 의미 있는 피처로 작용

10. 결과

Public Leaderboard RMSE - 15514.1856

11. 참고


[▷ AI 인공지능] - MLOps의 필수 도구: 도커(Docker) 완벽 가이드

 

MLOps의 필수 도구: 도커(Docker) 완벽 가이드

MLOps의 필수 도구: 도커(Docker) 완벽 가이드‘내 노트북에서는 잘 되는데…’ML 엔지니어라면 한 번쯤 겪어봤을 겁니다. 데이터 전처리, 모델 훈련, 실험까지 모두 완벽했는데, 막상 모델을 서버에

intotheworld.net

 

[▷ AI 인공지능] - 데이터분석을 위한 파이썬 필수 패키지

 

데이터분석을 위한 파이썬 필수 패키지

파이썬 데이터 분석에서 기본 자료 구조로 넘파이(NumPy) 와 판다스(pandas)를 자주 사용한다. 데이터분석을 위한 파이썬 필수 패키지▶ NumPy - 과학 계산과 배열에 필요한 수학 패키지.넘파이 NumPy는

intotheworld.net

 

[▷ AI 인공지능] - AI 시대, 꼭 알아야 할 인공지능 용어 완벽 정리 (초보자 필독)

 

AI 시대, 꼭 알아야 할 인공지능 용어 완벽 정리 (초보자 필독)

우리는 인공지능(AI)이 일상 깊숙이 자리 잡은 시대를 살고 있습니다.ChatGPT와 같은 생성형 AI부터 복잡한 데이터를 분석하는 머신러닝까지, AI는 더 이상 전문가들만의 영역이 아닙니다. 하지만 AI

intotheworld.net

 

[▷ AI 인공지능] - 딥러닝 Computer Vision과 문서 분류 프로젝트 정리

 

딥러닝 Computer Vision과 문서 분류 프로젝트 정리

컴퓨터 비전 개념부터... 실제 딥러닝 CV 문서 분류 모델 구현까지컴퓨터 비전(Computer Vision)의 핵심 기술부터, 딥러닝 기반 문서 이미지 분류(Document Classification) 프로젝트 개발 방법까지 정리. 전

intotheworld.net

 

728x90
728x90