Kaggle "House Prices: Advanced Regression Techniques" 대회 데이터를 기반으로
Ames 도시의 주택 특성을 분석하고 주택 가격을 예측하는 회귀 모델을 구현하는 것을 목표로 진행하였다.
회귀 알고리즘을 비교하고 성능 향상을 위해 하이퍼파라미터 튜닝과 스태킹을 적용하였으며, 최종 예측 결과는 Kaggle 제출 형식에 맞추어 평가하였다.
🛠️ Tech Stack
Language: Python
Data Analysis & EDA: pandas, numpy, Jupyter Notebook
Visualization: matplotlib, seaborn
Machine Learning:
- Modeling:scikit-learn(LinearRegression, Ridge, Lasso, RandomForest),LightGBM,XGBoost
- Model Evaluation:scikit-learn(cross_val_score, GridSearchCV, mean_squared_error)
SalePrice (주택 판매가)SalePrice)에 로그 변환 적용 | Model | RMSLE | RMSE | MSE |
|---|---|---|---|
| Lasso | 0.104 | 22024.99 | 4.85e+08 |
| Ridge | 0.121 | 20997.94 | 4.41e+08 |
| LinearRegression | 0.128 | 21618.35 | 4.67e+08 |
| LightGBM | 0.114 | 25604.36 | 6.56e+08 |
| RandomForest | 0.120 | 27645.77 | 7.64e+08 |
| XGBoost | 0.129 | 27766.77 | 7.71e+08 |
Insight
선형 회귀 계열(Lasso, Ridge)이 기본 성능에서는 우위
트리 계열은 하이퍼파라미터 튜닝 또는 앙상블 적용 시 기대 효과 있음
submission.csv 파일 저장 | Model | 방식 | 주요 내용 | 결과 (RMSLE / RMSE) |
|---|---|---|---|
| Lasso | 단일 모델 | 로그 변환 + 기본 하이퍼파라미터 | 0.104 / 22024.99 |
| XGBoost | 튜닝 모델 | GridSearchCV 적용 | 0.195 / 23534.75 |
| Stacking | 앙상블 | 메타모델: Lasso | 0.099 / 18542.13 |
튜닝 및 스태킹을 통해 선형 회귀보다 낮은 RMSE를 달성하여 최종 제출 모델로 선정하였다.
Kaggle에 submission한 최초 score는 0.12365를 기록하였다.
결측치 처리, 로그 변환, 이상치 제거, 파생 피처 생성 등 전처리 방향을 어떻게 잡느냐에 따라 모델 성능이 눈에 띄게 향상하거나 하락하는 것을 보았다. 모델의 성능이 이 초기 판단에서 갈린다는 것을 실험을 통해 확인하였고, 문제의 목적에 맞게 데이터를 충분히 이해하고 상황에 맞는 전처리 전략을 세우는 것의 중요성을 다시 느꼈다.
해당 문제에서는 선형 회귀 계열 모델이 baseline에서 가장 안정적인 성능을 보여주었다.
트리 기반 모델은 초기 성능이 다소 낮았으나 튜닝을 통해 충분히 개선 가능함을 확인하였다.
Stacking을 적용했을 때 개별 모델보다 RMSE가 더 낮아졌으며 메타 모델로는 Lasso가 적합하다고 판단하였다.
모델 성능은 높였지만 feature selection이나 Bagging, Boosting 등 다른 앙상블 방식도도 추가적으로 실험해 볼 여지가 있다.
회귀 문제를 해결하기 위한 하나의 방향성을 정리할 수 있었다. 해당 프로젝트에서 정의한 함수들과 실험을 구조화해 봄으로써 추가적인 실험을 설계에 인사이트가 될 것 같다. 이후 새로운 데이터셋에서 다른 목적을 가지고 회귀 모델을 구현할 때에도 이번에 구조화한 내용을 바탕으로 고도화해 나간다면 다양한 상황에서 문제를 해결할 수 있는 능력을 기를 수 있을 것이다.
자세한 프로젝트 수행 과정은 🔗 GitHub reppository에서 확인할 수 있다.