This project uses neural networks to create a model that predicts Ontario housing prices. The model is used through an Amazon Lex chatbot that allows the user to pick a region in Ontario and a building type that they are interested in. The chatbot gives the user the option to choose a date for the price as well.
- Jamie Mellway
- Josh Esteban
- Majeed Raheem
- Joey Falvo
- Rafi Nazamodeen
There are many contributing factors to Ontario's housing market. Housing prices fluctuate due to many market forces making this a regression problem. This project aims to take data that is relevant to the market and create a neural network that can predict the housing prices.
This project utilizes the following packages:
- Python 3.10.10
- NumPy 1.23.5
- pandas 2.0.1
- hvPlot 0.8.3
- scikit-learn 1.2.2
- TensorFlow 2.12.0
- Keras 2.12.0
Data was collected and analyzed to create the best model. Altogether, there are 13 features and 161 predictors, each with 176 data points.
Actual housing price data was found from CREA. These are our ground truth data that we want to predict. Our feature data was found from various sites covering data that we felt would be relevant to housing prices. These include: Yahoo Finance, Macrotrends, Statistics Canada, and Bank of Canada.
Lumber Prices
iShares Global Timber & Forestry ETF
SPDR S&P Homebuilders ETF
iShares U.S. Home Construction ETF
Consumer Price Index
Interest rates
Some data from our CPI set was duplicate, didn't add any value and led to overfitting. We isolated the data and removed it from our set. Removed data:
- All-items 8
- All-items excluding food
- All-items excluding food and energy
The neural network used to create the model has the following characteristics:
Metric | Value |
---|---|
R-Squared (train) | 0.9974559414984706 |
R-Squared | 0.9934014479377135 |
Mean Absolute Error | 0.06405685077016317 |
Mean Absolute Percentage Error | 24.720600483659982 |
Mean Squared Error | 0.010621614314503598 |
Root Mean Squared Error | 0.1030612163449646 |
The user can interact with an Amazon Lex chatbot that will give them the price of a house in their desired location and building type for a given date. Also, the python notebooks can be run as is, to create the model and make predictions.