Skip to content

In this project, we used Heroku to create a dynamic website to predict housing prices from a scraped dataset. This type of website could be used to help a future homeowner decide what price a house may be in a certain area depending on the house details.

Notifications You must be signed in to change notification settings

darrylconnellyii/Housing-Price-Prediction

 
 

Repository files navigation

Housing Price Prediction

Melbourne, Australia Housing Price Prediction

Houses Picture

Table of Contents: 🏡

  1. Reason For Our Project
  2. Data Source
  3. Technologies
  4. Approach
  5. Flowchart
  6. Extract, Transform, Load
  7. Exploratory Data Analysis
  8. Regression Model Results
  9. Best model
  10. The Website
  11. Going Forward
  12. Contributors

Reason For Our Project: 🤔

For the average consumer, finding appropriate housing within a set budget can be a daunting task. Predicting housing prices are expected to help people who plan to buy a house so they can know the price range in the future and be able to plan their finances. Housing price predictions are also beneficial for property investors to know the trend of housing prices in a certain location.

Data Source: 📚

This is a house prices dataset for Melbourne, Australia from September 2017 to September 2019. This data was scraped from publicly available results posted every week from Domain.com.au. The dataset includes address, type of real estate, suburb, method of selling, rooms, price, real estate agent, date of sale, property size, land size, council area and distance from the Central Business District. From the dataset provided, we chose to clean our data to focus on the important features to be used within our machine learning models to determine which would give us the best predicted housing price.

Technologies: 🏗️🛠️

  • Jupyter Notebook
  • Python
  • Numpy
  • Pandas
  • Seaborn
  • Matplotlib
  • SciPy
  • PostgreSQL/ SQLAlchemy
  • Scikit-learn
  • Flask
  • HTML/CSS
  • Heroku

Approach: 💻

  1. Identify data source
  2. Collect and clean Melbourne, Australia housing data
  3. Normalized target feature for better model results
  4. Create charts and graphs using Pyplot
  5. Load data into PostgreSQL
  6. Transform data to be fitted into models
  7. Test varying machine learning models and determine best option
  8. Customize HTML and CSS for final application
  9. Develope Flask application for model deployment
  10. Visualize dashboard in Heroku

Flowchart: 📝

Flowchart

Extract, Transform, Load: 🪄

The data was provided to us in a CSV. We checked to verify the datatypes, dropped any columns we didn't need and renamed some of the columns we kept. We also checked for any null values in the dataset and dropped them. Once our data checked out, we made sure not to have any duplicate data values. From there, we plot a heatmap to determine which features are important to our target feature and drop those we don't need.

ETL01 ETL02 Heatmap

Exploratory Data Analysis: 🔍📊

After being satisfied with our cleaned data, we proceeded to our data exploration. We used Matplotlib and Seaborn to do visualizations and visualized many different aspects of our data to see how it reads.

Normalization

We normalized our target feature to get a better outcome on our predictions.

Price_Bathroom Price_Bedroom Price_Bedroom_Bathroom

We checked the relationship of price with bedrooms and bathrooms.

Regression Models Results: 🤓

Linear_Regression Random_Forest Decision_Tree Randomized_Search_CV Support_Vector_Regressor Lasso Ridge

Best model: 🏆

Decision Tree

The Website: :electron:

Website

Going Forward: 💡

  • Visualize data to show housing price trends on a map through an application such as Tableau
  • ​Scrape more recent data and see if the trends and predictions hold true
  • Update the look and feel of the website to make it more user friendly
  • Redefine the parameters of our models to try and fix possible overfitting

Contributors: 🧠

About

In this project, we used Heroku to create a dynamic website to predict housing prices from a scraped dataset. This type of website could be used to help a future homeowner decide what price a house may be in a certain area depending on the house details.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 93.4%
  • Python 2.6%
  • CSS 1.9%
  • HTML 1.8%
  • Other 0.3%