https://github.com/datalopes1/stpetersburg_prices
A partir do dataset Real Estate Saint Petersburg 2014 - 2019 encontrado no Kaggle foi realizado um projeto para construir um modelo de regressão para prever preços de imóveis
https://github.com/datalopes1/stpetersburg_prices
machine-learning python real-estate xgboost xgbregressor
Last synced: 4 months ago
JSON representation
A partir do dataset Real Estate Saint Petersburg 2014 - 2019 encontrado no Kaggle foi realizado um projeto para construir um modelo de regressão para prever preços de imóveis
- Host: GitHub
- URL: https://github.com/datalopes1/stpetersburg_prices
- Owner: datalopes1
- Created: 2024-08-12T13:33:41.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-02-03T20:20:10.000Z (over 1 year ago)
- Last Synced: 2025-03-24T10:21:19.184Z (about 1 year ago)
- Topics: machine-learning, python, real-estate, xgboost, xgbregressor
- Language: Jupyter Notebook
- Homepage:
- Size: 7.91 MB
- Stars: 1
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# Predição de Preço de Imóveis - Real Estate Saint Petersburg 2014 - 2019

## 📝 Introdução
São Petersburgo é a segunda maior cidade russa, o dataset Real Estate Saint Petersburg 2014 - 2019 contém uma rica quantidade de informações sobre o mercado imobiliário local. Os dados incluem variáveis que descrevem tanto os imóveis, quanto a região onde cada um está localizado. Portanto meu objetivo neste projeto foi explorar os dados para construir um modelo de machine learning capaz de predizer os preços dos imóveis na cidade.
## 🛠️ Ferramentas
- **Python 3.12+**
- **Bibliotecas:** Pandas, NumPy, Scikit-learn, XGBoost, feature-engine, category-encoders, openpyxl, Optuna
## 📊 Dataset
|Coluna|Descrição|
|--|--|
|`airports_nearest`|Distância em metros para o aeroporto mais próximo|
|`balcony`| Número de sacadas|
|`ceiling_height`| Altura em metros do telhado|
|`cityCenters_nearest`| Distância até o centro da cidade em metros|
|`days_exposition`| Número de dias que o anúncio esteve ativo|
|`first_day_exposition`| Data de publicação do anúncio|
|`floor`| Total de andares do imóvel|
|`floors_total`| Total de andares no prédio onde o imóvel está localizado|
|`is_apartment`| Se é um apartamento (bool)|
|`kitchen_area`| Área da cozinha em metros quadrados|
|`last_price`| Último preço de anúncio|
|`living_area`| Área de convivência em metros quadrados|
|`locality_name`| Nome da localidade|
|`open_plan`| Se a propriedade tem um plano aberto (bool)|
|`parks_around3000`| Número de parques em um raio de 3km|
|`parks_nearest`| Distância do parque mais próximo em metros|
|`ponds_around3000`| Número de corpos de água em um raio de 3km|
|`ponds_nearest`| Distância do corpo de água mais próximo|
|`rooms`| Número de quartos|
|`studio`| Se é um apartamento do tipo studio (bool)|
|`total_area`| Área total do imóvel em metros quadrados|
|`total_images`| Número de imagens no anúncio|
## ✅ Resultados
### Métricas do modelo
|Métrica|Resultado|
|---|---|
|**MSE**| 0.0452|
|**RMSE**| 0.2126|
|**MAE**| 0.1423|
|**R2 Score**| 0.8897|
#### Sobre os resultados
Vale destacar que foi necessária uma transformação em $\log$, então pode-se ler os resultados em termo de porcentagem. O modelo utilizado foi o XGBRegressor da biblioteca XGBoost.
#### Visualizações
##### Real x Predito

##### Distribuição dos Resíduos

##### Feature Importances

## ⚙️ Como usar
### Estrutura do projeto
```plaintext
.
├── data/
│ ├── processed/
| | ├── predictions.xlsx
| | ├── test_data.csv
│ | └── train_data.csv
│ └── raw/
│ └── real_estate_data.csv
│
├── doc/
│ ├── img/
| | ├──plots/
| | | └── [Arquivos dos plots gerados na EDA (stprices.ipynb)]
| | └── vadim-babenko-zjVLWDSewtE-unsplash.jpg
| └──.gitkeep
│
├── models/
| └── regressor.pkl
|
├── notebook/
│ └── stprices.ipynb
│
├── scr/
| ├── __init__.py
| ├── data_preprocessing.py
│ ├── evaluate_model.py
│ ├── predict.py
│ ├── train_model.py
│ └── utils.py
│
├── .gitignore
├── poetry.lock
├── pyproject.toml
├── README.md
└── requirements.txt
```
### Instalação e uso
##### Instalar poetry
```bash
pip install poetry
```
##### Clonar repositório
```bash
git clone https://github.com/datalopes1/stpetersburg_prices.git
cd stpetersburg_prices/
```
##### Instalação das dependências
```bash
poetry install
```
##### Treinamento do modelo e criação do arquivo `.pkl`
```bash
poetry run python scr/train_model.py
```
##### Gerar arquivo `.xlsx` com predições
```bash
poetry run python scr/predict.py
```
##### Gerar métricas do modelo
```bash
poetry run python scr/evaluate_model.py
```
## 📞 Contato
- LinkedIn: https://www.linkedin.com/in/andreluizls1
- Portfolio: https://sites.google.com/view/datalopes1
- E-mail: datalopes1@proton.me