/Real_Estate_Pricing_Model_BH

Tratamento de dados, análise exploratória, seleção e construção de um modelo para previsão de preços de imóveis em Belo Horizonte.

Primary LanguageJupyter NotebookMIT LicenseMIT

House_Price_BH

Tratamento de dados, análise exploratória, seleção e construção de um modelo para previsão de preços de imóveis em Belo Horizonte utilizando uma base de dados disponibilizada no Kaggle.

ObjetivoNotebook 1Notebook 2Conclusão

Objetivo

Este projeto teve como objetivo aplicar os conceitos de machine learning relacionados à regressão, desde o pré-processamento dos dados até a análise exploratória, seleção da melhor classe de modelo e seus hiperparâmetros, testes estatísticos de hipótese, validação final e avaliação dos resultados. Foi utilizada uma base de dados da cidade onde eu resido, Belo Horizonte, e foram selecionados modelos de regressão como Random Forest Regressor, Gradient Boosting Regressor, entre outros, a fim de alcançar as melhores previsões de preço de imóveis possível.

Neste notebook se encontra todo o processo de tratamento dos dados. Desde da retirada de dados nulos ou inválidos, limpeza utilizando diversors recursos do Python, Geopandas e Pandas e a remoção de erros de entrada utilizando box plots. Também neste notebook foi criado uma nova coluna "zones" que contém as regiões administrativas de cada bairro para facilitar ou até possibilitar uma análise mais clara, já que a base de dados original não continha nenhuma variável qualitativa que possibilitasse um estudo por grupos.

Nesta parte do projeto estão presentes análises gráficas do banco de dados. Foram utilizados histogramas, box plots e gráficos de barras por agrupamentos regionais. Após essa etapa, foi efetuada a transformação logarítmica da variável dependente ou observável "price" e a vetorização das variáveis independentes categóricas ("one-hot").

Como parte do processo de avaliação de análise das variáveis foi realizado um teste de correlação de Pearson.

Com os dados transformados, foi utilizado o método "Nested Cross Validation" para separar a base de dados entre treino e teste. O objetivo deste processo é manter a base de teste para a validação do modelo, enquanto que a base de treino é usada para escolher a melhor classe de modelo com cross validation e para selecionar os melhores hiperparâmetros utilizando o GridSearchCV. Desta forma, é possível obter uma validação mais realista do modelo final.

Após o cross validation e o GridSearchCV, foram realizados testes estatísticos de hipótese de normalidade e média. A classe Gradient Boosting Regressor apresentou o melhor desempenho.

Em seguida, realizamos a validação final do modelo com o dataset de teste e obtivemos um resultado de R^2 = 0,84 e um RMSE = 420.044,70. Também foi realizado um estudo gráfico dos resíduos do modelo e um teste de normalidade, que teviram resultados negativos, indicando a provável necessidade de melhorias no modelo.

Conclusão

Apesar da limitação da base de dados com informações insuficientes sobre a estrutura do imóvel e uma distribuição geográfica não homogênea, com maior representatividade da Zona Centro-Sul, o resultado de 0,84 de R^2 é considerado positivo, embora não ideal, devido a algumas anomalias e falhas no teste de resíduos. A inclusão de informações adicionais, como número de banheiros, quantidade de andares, materiais utilizados e idade do imóvel, juntamente com uma amostra maior de outras zonas, como Barreiro e Venda Nova, pode aprimorar significativamente o modelo.

Uma alternativa para aprimorar a distribuição de preços assimétrica seria criar um modelo de regressão específico para grupos de renda ou faixas de valores de imóveis. Além disso, foi observado que a influência das regiões no modelo de previsão de preços foi insignificante, exceto pela Zona Centro-Sul, que apresentou um peso relevante de 0,1.