본문 바로가기
머신러닝 대회 풀이

[ML 대회 해설] Dacon 아파트 실거래가 예측 AI 경진대회 2등 풀이 - 소개 (2): Numeric Feature 톺아보기

by 미역청 2025. 1. 8.

저번 포스트에 이어, 이번 포스트에선 주요 Feature와 Numeric feature의 개요를 간단히 살펴보겠습니다.

 

지난 글

https://here-lives-mummy.tistory.com/10

 

[ML 대회 튜토리얼] Dacon 아파트 실거래가 예측 AI 경진대회 - 소개 (1)

캐글은 영어로 되어있어 어렵고, 타이타닉 프로젝트는 식상한 ML 입문자분들께 추천하는 대회입니다.기본 ML 지식과 함께 시계열데이터 예측 입문까지 해볼 수 있었습니다!한국 데이터라 익숙하

here-lives-mummy.tistory.com

 

주요 Feature

주어진 train.csv, test.csv의 feature는 다음과 같습니다:

feature name dtype 결측치 (train) 결측치 (test) 설명
transaction_id int 0 0 데이터 row별 식별 id
apartment_id int 0 0 아파트 식별 id
city object 0 0 도시 이름 (서울특별시/부산광역시)
dong object 0 0 행정동 이름
jibun object 0 0 지번
apt object 0 0 아파트 이름
addr_kr object 0 0 지번 주소
exclusive_use_area float 0 0 전용면적 (실사용 면적. 제곱미터 단위)
year_of_completion int 0 0 완공일자
transaction_year_month int 0 0 거래년월 (YYYYMM)
transaction_date object 0 0 거래날짜 (DD~DD)
floor int 0 0 아파트 층수
transaction_real_price int 0 0 실거래가 (Target Feature) test.csv에선 공란

 

Target을 제외하면 numeric feature 5개, object feature 6개로 이루어져있습니다.

 

표면 상으로는 모든 feature에 결측치가 없지만, 이는 데이터를 분석하며 다시 확인해보겠습니다.

 

탐색적 데이터 분석 (EDA)

상관계수 분석

먼저, numeric feature와 target feature 간의 상관계수를 보며 insight를 얻어보겠습니다.

feature 간의 상관관계를 나타낸 상관계수표(correlation map)

 

transaction_real_price와 가장 높은 상관관계(절댓값 기준)를 보이는 순으로 feature을 나열하면 다음과 같습니다:

1. exclusive_use_area

2. transaction_year_month

3. transaction_id

4. floor

5. year_of_completion

6. apartment_id

 

exclusive_use_area는 면적이기 때문에 집값과 직접적인 관련이 있을 수 있습니다.

transaction_year_month역시, 시간에 따라 물가가 상승하므로 집값과 직접적인 관련이 있을 것입니다.

year_of_completion, floor도 마찬가지입니다.

 

하지만, transaction_id가 집값과 높은 상관관계를 보이는 점은 이해하기 어렵습니다.

transaction_id는 단순 데이터에 메겨진 id일뿐이니까요.

Insight 1. 데이터는 특별한 규칙으로 정렬되어있을 것이다.

 

일반적으로 target feature와 높은 상관관계를 갖는 feature가 모델의 성능을 개선할 가능성이 높습니다.

 

하지만 상관관계가 낮다고 하여 그 feature가 나쁜 것 만은 아닙니다.

 

Feature가 모델에 미치는 영향은 모델에 넣어보기 전까지 장담할 수 없습니다.

 

따라서 numeric feature만을 넣어 모델을 학습시켜 사용할 모델과 그 모델에서의 feature 중요도를 살펴보겠습니다.

 

 

Baseline - Cross Validation

주어진 데이터의 사이즈가 커서 GPU를 사용하고자 XGBoost, CatBoost 두 개를 주모델로 선택하고,

부가모델로 LightGBM을 골랐습니다.

* 2025년 1월 기준 XGBoost, CatBoost는 GPU를 지원하지만 LightGBM은 GPU사용 구현이 아직 복잡합니다.

RandomForest의 경우, 타 모델 대비 성능이 특출나지도 않은데 학습시간도 오래걸리고, GPU사용 구현이 복잡해서 제외하였습니다.

 

모델 학습 시 K-Fold를 사용하여 Validation score의 신뢰성을 높이도록 했습니다.

 

선택한 Feature

  • exclusive_use_area
  • transaction_year_month
  • floor
  • year_of_completion
  • apartment_id

※ transaction_id는 단순히 행 구분을 위한 id이므로 학습에 포함시키지 않습니다.

LightGBM 학습 수행 결과 feature 중요도
XGBoost 학습 수행 결과 feature 중요도
CatBoost 학습 수행 결과 feature 중요도

LightGBM XGBoost CatBoost
9,697.93027 6,990.93174 13,356.58443

학습 수행 결과 Validation Score

 

모델 선정

성능은 XGBoost > LGBM > CatBoost 순으로 좋았습니다.

 

LightGBM과 XGBoost는 서로 특성이 유사한 모델이라, 둘 중 더 성능이 좋은 XGBoost를 주모델로 선택하겠습니다.

CatBoost는 다른 두 모델 대비 성능이 상당히 낮게 나왔지만, 아직 추가하지 않은 6개의 Object feature에서 역전 가능성이  있다 판단하여 주모델로 선정하였습니다.

LightGBM의 경우 성능은 좋지 못하나, 학습시간이 XGBoost보다 빠르므로 참고용 부모델로서 남기겠습니다.

 

여기서 잠깐 끊고, 다음 포스트에서 Feature 중요도 분석과 그에 따른 EDA를 보여드릴게요.


다음 글: https://here-lives-mummy.tistory.com/16

 

[ML 대회 해설] Dacon 아파트 실거래가 예측 AI 경진대회 3등 풀이 - EDA (1): Numeric Feature EDA

오늘은 저번 포스트에서 뽑은 Numeric feature 들의 feature 중요도를 기반으로 본격적인 EDA에 들어가겠습니다. 지난 글 https://here-lives-mummy.tistory.com/15 [ML 대회 해설] Dacon 아파트 실거래가 예측 AI 경

here-lives-mummy.tistory.com

 

도움이 되었다면 하트 눌러주세요 :)

구독하시면 더 많은 데이터사이언스 정보와 대회풀이를 보실 수 있습니다!