이 프로젝트는 주어진 데이터를 바탕으로 전세가를 예측하는 AI 알고리즘을 개발하기 위한 프로젝트입니다. 이를 통해 한국의 전세 시장의 구조와 동향을 이해하고, 인프라와 경제적 요인에 대한 통찰을 기대합니다.
저희 팀은 개발자처럼 협업하고, 체계적으로 가설을 세워 실험하고 기록하며 여러 모델을 경험해보는 것을 목표로 합니다.
김영찬 | 박광진 | 박세연 | 박재현 | 배현우 | 조유솔 |
---|---|---|---|---|---|
project/
│
├── notebooks/
│ ├── EDA.ipynb
│ └── baseline.ipynb
├── docs/
│ └── 랩업리포트, 발표자료 등
├── src/
│ ├── data/
│ ├── __init__.py
│ ├── preprocessor.py
│ └── features.py
│ ├── models/
│ ├── __init__.py
│ ├── ensemble.py
│ ├── lgbm.py # LGBM 모델
│ ├── xgb.py # XGBoost 모델
│ └── rf.py # Random Forest 모델
│ ├── arg_paser.py # 커맨드 라인 옵션 인풋 설정
│ └── utils.py # 완디비 콜백 커스텀, 모델 저장 및 불러오기
├── configs/
│ └── train_config.yaml
├── saved/
│ └── models/ # 모델 별 pkl 파일 저장
├── train.py
└── test.py
이 프로젝트를 실행하기 위해 필요한 모든 라이브러리를 설치하려면 다음 명령어를 실행하세요:
pip install -r requirements.txt
이 프로젝트는 configs/
디렉토리 내의 YAML 파일로 모델 하이퍼 파라미터와 기타 설정을 관리합니다.
설정 파일(config.yaml
)은 다음과 같은 주요 섹션으로 구성되어 있습니다:
- 공통 설정 (common)
- LightGBM 설정 (lightgbm)
- CatBoost 설정 (catboost)
- Random Forest 설정 (rf)
각 섹션에는 해당 모델 또는 전체 프로젝트에 필요한 다양한 매개변수가 포함되어 있습니다.
설정 파일의 일부 예시:
common:
data_path: "../../data/"
random_seed: 42
n_splits: 5 # KFold split
lightgbm:
objective: "regression"
metric: ["mae", "rmse"]
num_leaves: 1200
learning_rate: 0.035
# ...
개별 모델을 훈련하려면 다음 명령어를 사용하세요:
python train.py -lgb
python train.py -cat
python train.py -rf
# 또는 여러 모델을 한번에 학습시킬 수도 있습니다
python tarin.py -lgb -cat -rf
앙상블 모델을 테스트 하려면 다음 명령어를 사용하세요:
python test.py