🤖 Processo de Machine Learning
Entenda como nossa IA prevê preços de imóveis
O Habita AI é uma plataforma de machine learning que prevê preços de imóveis com base em características como:
- Área do imóvel (m²)
- Número de quartos (BHK)
- Número de banheiros
- Localização (bairro/região)
Treinar um modelo de machine learning capaz de estimar o preço de um imóvel com base em suas características, utilizando dados históricos de Bangalore, Índia.
Utilizamos Regressão Linear (scikit-learn) para criar um modelo que estabeleça relações lineares entre as features e o preço final do imóvel.
O modelo alcançou aproximadamente 82% de acurácia em validação cruzada 5-fold, permitindo previsões confiáveis de preços imobiliários.
Arquivo: bengaluru_house_prices.csv
Quantidade: ~13.000 registros de imóveis
Período: Dados históricos de Bangalore (2017–2019)
Colunas: area, price, bhk, bath, balcony, location
Remoção de NaN: Excluímos registros com dados incompletos
Tratamento de tipos: Conversão para tipos apropriados (int, float)
Análise inicial: Estatísticas descritivas e distribuições
Distribuições: Histogramas, box plots, scatter plots
Correlações: Relações entre features e preço
Outliers iniciais: Identificação de anomalias nos dados
Padrões: Insights sobre o mercado imobiliário
price_per_sqft: Criar feature de preço por metro quadrado
Normalização de BHK: Categorizar tipos de imóveis
Conversão de unidades: Área em sqft, preço em Crores
Técnica 1 — Por localização: Remover valores muito discrepantes por bairro
Técnica 2 — Desvio padrão: Excluir dados fora de 3σ
Técnica 3 — IQR: Remover valores em quartis extremos
Resultado: Dataset reduzido, porém mais consistente
Locations raras: Agrupar localizações com poucos registros em "other"
One-Hot Encoding: Converter locations categóricas em 245 features binárias
Proporção: 80% treinamento / 20% teste
Objetivo: Avaliar performance em dados não vistos
Random state: Reprodutibilidade dos resultados
Algoritmos testados:
- Linear Regression ✅ Melhor
- Lasso Regression
- Ridge Regression
Validação cruzada: 5-fold | Métrica: R² score
Formato: Pickle (Python object serialization)
Arquivo: banglore_home_prices_model.pickle
Configuração: columns.json com lista de features
Definição: Modelo que estabelece relação linear entre features e target
Equação: y = β₀ + β₁x₁ + β₂x₂ + … + βₙxₙ
Por que usar: Simples, interpretável, rápido e eficaz
Quando usar: Relações lineares, dados tabulares estruturados
Objetivo: Converter variáveis categóricas (location) para numéricas
Processo: Criar coluna binária (0 ou 1) para cada categoria
Objetivo: Encontrar melhores hiperparâmetros automaticamente
Como funciona: Testa todas as combinações de parâmetros
Validação cruzada: Garante escolhas robustas e generalizáveis
Definição: Dividir dados em K partes, treinar/testar K vezes
Vantagem: Melhor uso dos dados, reduz variância de performance
K utilizado: 5 folds | Score final: Média das 5 rodadas
Técnica: Normalizar ou padronizar features
Motivo: Algoritmos sensíveis a escala funcionam melhor normalizados
Métodos: StandardScaler, MinMaxScaler
Definição: Proporção da variância explicada pelo modelo
Fórmula: R² = 1 − (SS_res / SS_tot)
Interpretação: 82% — o modelo explica 82% da variação de preços
Faixa: 0 a 1 (quanto mais próximo de 1, melhor)
Definição: Média dos erros absolutos entre previsão e real
Fórmula: MAE = (1/n) × Σ|y_real − y_pred|
Interpretação: Em média, as previsões erram por ~45 Lakhs
Vantagem: Unidade interpretável e fácil de entender
Definição: Raiz quadrada do erro quadrático médio
Fórmula: RMSE = √[(1/n) × Σ(y_real − y_pred)²]
Interpretação: Penaliza erros grandes mais que o MAE (~67 Lakhs)
| Fold | R² Score | Desempenho |
|---|---|---|
| Fold 1 | 0.81 | |
| Fold 2 | 0.83 | |
| Fold 3 | 0.82 | |
| Fold 4 | 0.81 | |
| Fold 5 | 0.82 | |
| Média | 0.818 ± 0.008 | ✅ Consistente |
Fonte: Kaggle — Bangalore House Prices
Localização: Bangalore, Índia
Período: Dados históricos de 2017–2019
Universo: ~13.320 propriedades após limpeza
price — Preço em Crores INR
area_sqft — Área em pés quadrados
bhk — Número de quartos
bath — Número de banheiros
balcony — Número de varandas
location — Bairro (245+ valores únicos)
245+ bairros únicos em Bangalore, incluindo:
📊 Distribuições enviesadas — Preços não uniformemente distribuídos
🏘️ Desequilíbrio de localidades — Alguns bairros têm muito mais registros
⚠️ Outliers significativos — Imóveis muito caros ou muito baratos
🇮🇳 Contexto indiano — Preços e medidas no padrão indiano (Crores, sqft)