박정준 | 이다언 | 김묘정 | 이현지 | 김동완A |
팀장, 피처조정 및 선별 | 피처엔지니어링 | 모델링, AutoML | 베이스라인 코드 분석 | 좌표 데이터 API 수집 |
- IDE 및 코드 편집기
- Visual Studio Code (VS Code)
- Cursor IDE
- 개발 환경
- Linux Docker 서버 및 로컬 환경에서 Python, Jupyter Notebook 사용
- Anaconda로 패키지 및 환경 관리
- 버전 관리 및 협업 도구
- Git을 사용하여 코드 및 파일 버전 관리
- GitHub를 통해 팀원들과 협업
- 프로그래밍 언어
- Python 3.x
- 주요 라이브러리 및 패키지
- Pandas
- NumPy
- Scikit-learn
- XGBoost
- WandB (Weights & Biases)
- Sweetviz
- Pygalker
- Dataprep
- Matplotlib
- Seaborn
- 기타
- Jupyter Notebook
- Docker (서버 환경 구축용)
- 경진대회 주제: 부동산 가격 예측 모델 개발
- 목표: 주어진 데이터를 활용하여 부동산 가격을 정확하게 예측하는 모델을 구축하고 성능을 향상시키는 것
- **추가 세부 목표: **
- 프로젝트 수행 역량 기르기
- 프로젝트 기간: 총 2주 (수강 1주 포함)
- 1주차: 팀원 역량 강화 및 베이스라인 코드 실행
- 2주차: 모델 개선 및 성능 향상 작업
├── src
│ ├── preprocess.py
│ │── feature.py
│ ├── train.py
│ └── utils.py
├── config
│ └── config.yaml
│ └── configs.py
├── output
│ ├── plots
│ │── reports
├── data
│ ├── preprocessed
├── notebook
├── data
├── main_sweep.py
├── main_feat_select.py
├── requirements.txt
└── README.md
- 메인 데이터셋: 부동산 거래 데이터
- 주요 변수: 전용면적, 위치 정보, 거래 가격 등
- 추가 데이터:
- 버스 및 지하철 위치 데이터: 역세권 여부 및 최단 거리 계산에 활용
- 강남 대장 아파트 정보: 지역적 특성 반영을 위해 추가
- 프로세스:
- Pandas를 사용하여 기본 통계량 분석 및 데이터 구조 파악
- Sweetviz, Pygalker, Dataprep 등의 라이브러리로 데이터 시각화
- 변수 간 상관관계 분석 및 분포 확인
- 결론:
- 전용면적의 중요성: 반복적으로 중요한 변수로 선정됨
- 분포가 우측으로 치우쳐 있어 상한을 완화하여 성능 개선
- 이상치 처리의 영향: IQR을 활용한 이상치 제거 시 성능 향상 미미
- 이상치를 제거하지 않고 모델에 반영하였을 때 성능이 크게 향상됨
- 추가 피처의 영향: 외부 데이터를 활용한 피처 추가는 성능 개선에 큰 영향이 없었음
- 전용면적의 중요성: 반복적으로 중요한 변수로 선정됨
- 데이터 정제:
- 결측치 처리 및 데이터 일관성 확보
- 피처 엔지니어링:
- 새로운 피처 생성: 역세권 여부, 최단 거리 등
- 추가 데이터 통합: 강남 대장 아파트 정보 등
- 스케일링 및 변환:
- Robust Scaling, Power Transform 적용 시도
- 성능 개선 효과는 미미하여 다른 방법 모색
- Robust Scaling, Power Transform 적용 시도
- 사용 모델: XGBoost
- 선택 이유:
- 우수한 예측 성능: 순차적 학습 방식을 통해 오차를 보완하며 Random Forest보다 성능 우수
- 학습 속도 최적화: 병렬 처리 및 캐시 최적화를 통한 빠른 학습 가능
- 과적합 방지 기능: L1, L2 정규화 및 다양한 규제 파라미터 제공
- 하이퍼파라미터 튜닝:
- WandB를 활용하여 학습률, 최대 깊이 등 최적의 하이퍼파라미터 탐색
- 모델 자체의 변경만으로는 성능 향상에 한계가 있었음
- 피처 선택:
- Feature Importance를 고려하여 중요한 피처 선정
- 수동 변수 선택:
- 팀원들의 직관과 경험을 바탕으로 변수 추가 및 제거하며 성능 변화 관찰
- Feature Selection 기법 적용:
- Filter Method: Variance Threshold, 상관관계 분석, VIF 활용
- Wrapper Method: Sequential Feature Selection(SFS), Recursive Feature Elimination(RFE)
- 결과: 중요한 피처만 남기고 불필요한 피처를 제거하여 성능 향상
- 앙상블 모델 시도:
- 여러 모델의 예측 결과를 결합하여 성능 개선 시도
- 기대한 만큼의 성능 향상은 이루어지지 않음
- 베이스라인 점수: 46,433
- 최종 점수: 14,844 (베이스라인 대비 약 2배 향상)
- 순위: 3등
(리더보드 캡처 이미지가 있을 경우 첨부)
- 발표 자료: Google Slide 링크
- Fast-Up Report:Notion 링크
- 회의록: Notion 링크
- 모델 관련 문서:
- XGBoost 공식 문서
- Scikit-learn Feature Selection
- 관련 블로그 및 자료:
- 부동산 가격 예측 프로젝트 관련 블로그
- 데이터 분석 및 전처리 기법 자료