Este projeto tem como objetivo demonstrar o uso da técnica de RandomForestRegression para análise de preços de imóveis. Através de um modelo de machine learning, podemos analisar diversas variáveis de imóveis e prever com maior precisão o preço de venda.
- Python 3
- Scikit-learn
- Pandas
- Numpy
- Yellowbrick
- Flask
- Faça o clone deste repositório:
git clone https://github.com/nandodevs/house-data-analysis.git
Instale as dependências necessárias:
pip install -r requirements.txt
O dataset utilizado neste projeto foi obtido no Kaggle. Trata-se de um conjunto de dados com informações sobre imóveis em São Paulo, Rio de Janeiro, BH, Porto Alegre e Campinas, incluindo diversas características como número de quartos, banheiros, tamanho do lote, localização, dentre outros.
Nesse processo iremos fazer a limpeza dos dados, removendo colunas e valores desnecessários que possam interferir na modelagem dos dados.
# Ajustando Andar
base_dados.loc[base_dados['floor'] == '301']
base_dados.iloc[2562, 5] = 30
# Ajustado o " - "
base_dados['floor'] = base_dados['floor'].apply(lambda Registro : 0 if Registro == '-' else Registro) # Se tiver - substitui por 0
base_dados['floor'] = pd.to_numeric(base_dados['floor'])
# Verificar
base_dados.head()
O modelo de machine learning utilizado foi o RandomForestRegression, um algoritmo de aprendizado de máquina que cria múltiplas árvores de decisão e as combina para obter uma melhor precisão. O modelo foi treinado com o conjunto de dados de treinamento e, em seguida, avaliado com o conjunto de dados de teste para verificar sua precisão.
OBS: O modelo foi filtrado pela cidade de São Paulo, sendo ela utilizada como base para todo o processo.
Verificamos qual a correlação entre os valores do dataset, primeiro no modelo mais simples:
Depois utilzamos a lib YellowBrick para exibir de forma mais sofisticada essa correlação.
Utilizamos também o YellowBrick para avaliar a performance do modelo e seu nível de erro durante a análise de dados.
![]https://github.com/nandodevs/house-data-analysis/blob/master/imgs/corr2.png?raw=true)
Foi utilizado a biblioteca Flask para criar uma API para consulta do resultado do modelo obtido através dos testes.
Por meio dessa API, fica mais simples a consulta das informações e tornar mais viável sua utilização para um público diversificado.
Além disso, as informações foram salvas em banco SQL, para agilizar e ter controle de acessos a API.
Aqui temos o resultado do retorno da consulta ao banco de dados, mostrando o valor a ser cobrado pelo aluguel, a data e hora da consulta (início e fim) e o tempo gasto na consulta.
O modelo treinado obteve uma informações fundamentais para serem utilizadas como modelo para ser aplicado para outros estados, sendo capaz de prever com certa confiabilidade o preço de venda de um imóvel com base em suas características.
A técnica de RandomForestRegression pode ser utilizada com sucesso em análises de preços de imóveis, oferecendo resultados precisos e confiáveis. Este projeto pode ser utilizado como base para futuras análises e estudos na área.