특징 | 설명 |
---|---|
대회 주제 | 네이버 부스트캠프 AI-Tech 7기 RecSys level2 - Competitive Data Science |
대회 설명 | 아파트의 주거 특성, 금융 지표 등 다양한 데이터를 바탕으로 수도권 아파트의 전세가를 예측하는 AI 알고리즘 대회 |
데이터 구성 | train.csv, test.csv, sample_submission.csv ,subwayInfo.csv , interestRate.csv, schoolInfo.csv, parkInfo.csv 총 일곱 개의 CSV 파일 |
평가 지표 | Mean Absolute Error (MAE)로 실제 전세가와 예측 전세가 간의 오차 측정 |
Private, Public Leader Board 2위
개요 | 설명 |
---|---|
주제 | 이 대회의 목적은 아파트 전세가 예측을 통해 부동산 시장의 정보 비대칭성을 해소하는 데 기여하는 것입니다. 2022년 기준 한국 가구의 51.9%가 아파트에 거주하며, 아파트는 한국에서 주거 문화의 중심이자 주요 자산 증식 수단입니다. 가계 자산의 70% 이상을 차지하는 중요한 자산인 아파트의 전세 시장은 매매 시장과 밀접하게 연관되어 있으며, 부동산 정책 수립과 시장 예측에 중요한 지표로 활용됩니다. |
목표 | 주어지는 아파트의 주거 특성, 금융 지표, 공공시설 정보 등의 데이터를 활용하여 전세가를 예측하는 AI 알고리즘을 개발하는 것이 대회의 주된 목표입니다. |
평가 지표 | Mean Absolute Error (MAE) - 실제 값과 예측값의 평균 절대 오차 지표 |
개발 환경 | GPU : Tesla V100 Server 4대, IDE : VSCode, Jupyter Notebook, Google Colab |
협업 환경 | Notion (진행 상황 공유), Github (코드 및 데이터 공유), Slack , 카카오톡 (실시간 소통) |
train.csv
: 기본적인 컬럼
컬럼명 | 설명 |
---|---|
index |
인덱스 번호 |
area_m2 |
면적(제곱미터) |
contract_year_month |
계약년월 |
contract_day |
계약일 |
contract_type |
계약 유형(0: 신규, 1:갱신, 2:모름) |
floor |
층수 |
built_year |
건축연도 |
latitude |
위도 |
longitude |
경도 |
age |
건물의 나이(contract_year_month - built_year) |
subwayInfo.csv
: 지하철역 위치 정보
컬럼명 | 설명 |
---|---|
latitude |
위도 |
longitude |
경도 |
interestRate.csv
: 금리 정보
컬럼명 | 설명 |
---|---|
year_month |
연월 |
interest_rate |
금리 |
schoolInfo.csv
: 학교 정보
컬럼명 | 설명 |
---|---|
schoolLevel |
초등학교, 중학교, 고등학교 여부 |
latitude |
위도 |
longitude |
경도 |
parkInfo.csv
: 공원 정보
컬럼명 | 설명 |
---|---|
latitude |
위도 |
longitude |
경도 |
area |
면적 |
📦 level2-competitiveds-recsys-01
├── 📁code
│ ├── cnn_mlp.py
│ ├── tabtransformer_main.py
│ ├── main.py
│ ├── 📁features
│ │ ├── README.md
│ │ ├── clustering_features.py
│ │ ├── count_features.py
│ │ ├── deposit_features.py
│ │ ├── distance_features.py
│ │ └── other_features.py
│ ├── 📁handler
│ │ ├── cnn_mlp_datasets.py
│ │ ├── feature_engineering.py
│ │ └── preprocessing.py
│ ├── 📁models
│ │ ├── 📁DL_tabtransformer
│ │ │ ├── dataset.py
│ │ │ ├── tabtransformer.py
│ │ │ └── trainer.py
│ │ ├── CombinedModel.py
│ │ ├── SeedEnsemble.py
│ │ ├── SpatialWeightMatrix.py
│ │ ├── XGBoostWithSpatialWeight.py
│ │ ├── inference.py
│ │ └── model.py
│ └── 📁utils
│ ├── common_utils.py
│ └── constant_utils.py
├── 📁data
│ ├── interestRate.csv
│ ├── parkInfo.csv
│ ├── sample_submission.csv
│ ├── schoolinfo.csv
│ ├── subwayInfo.csv
│ ├── test.csv
│ ├── train.csv
│ └── 📁transaction_data
│ ├── test_transaction_3.txt
│ ├── train_transaction_3.txt
│ └── valid_transaction_3.txt
└── 📁result
│ ├── mae
│ ├── submission
├── README.md
└── requirements.txt
-
pip install -r requirements.txt
실행 -
Unzip train, dev, test csv files at /data directory
-
Upload sample_submission.csv at /data directory
-
Execute
main.py
to run solution modelmain.py
실행 시 Spatial Weight Matrix 생성에 소요되는 시간을 고려해 미리 생성해둔 Spatial Weight Matrix 사용
Execute
cnn_mlp.py
to run CNN + MLP combined modelExecute
tabtrasformer_main.py
to run TabTransformer model