Inspiration

I was inspired to create a project that addresses the current state of the housing market because due to inflation, prices of properties have been increasing at an unpredictable rate. This hurts people who are forced to pay extra for housing without knowing what the true market price is as well as smaller real estate businesses who don't have the technological means and funding to track pricing and insights.

What it does

This application uses a neural network to predict whether a property of the user inputted features would be listed above or below the average median price.

In a competitive real estate landscape, smaller businesses often struggle to compete with larger, more established players. This application provides a cost-efficient solution that can mitigate high risks by offering insights into property market trends, allowing businesses to make more calculated and less speculative investments. This is particularly valuable during periods of uncertainty, such as market fluctuations.

Smaller real estate agencies can use this technology to assess the market accurately, identify investment opportunities, and make informed pricing decisions when listing properties for sale.

How I built it

I built this application using a machine learning model and integrated the model into a front-end application that can be easily accessed by users.

I used a .csv dataset and used Pandas to read the data. I used scikit-learn to preprocess the data and perform logistic regression for the prediction. I used the layers features in Keras to train three different models, optimizing each by utlizing regularization and dropout to produce a model with 89% accuracy. This was all done in Google Colab using Python. I performed logistic analysis to determine model loss and accuracy for each model using matplotlib.pyplot.

I then used Anvil and Flask to integrate the model into a functioning user application. I also learned and implemented responsive design so that the application can be used on both desktop and mobile. I designed the application with CSS and HTML components.

Challenges I ran into

I ran into a few challenges throughout the project:

  1. I had difficulty getting a high enough accuracy. Initially, my model's accuracy was at 63%. I did research on regularization, dropout, and loss to gain a better understanding of how training works and was able to bring the accuracy up to 89%.

  2. After the model was trained, I struggled with learning how to use the predict method to generate predictions based on user input. Doing thorough research on the in-built functions that scikit-learn provides allowed me to gain a better understanding of what I needed to do.

  3. I had never done any front-end work so learning how to create an efficient user interface along with ensuring there is a good user experience was a difficult task. I followed tutorials and learned how to work Flask and CSS and did thorough testing throughout the build process to ensure there was good user experience.

Accomplishments that I'm proud of

I am proud of the fact that I successfully trained a machine learning model that has a high accuracy and recall. I am also proud that with a successful model I have thorough statistical analysis to show how my models have improved with optimization and I am glad I have learned so much about how neural networks work and are trained. I am also proud that I was able to produce three sucessful models and of the thorough evaluation I did to optimize each of them.

I am also proud of the challenges I overcame and the fact that this is my first time doing front-end work and designing a full-stack application. I am glad that during this Hackathon I learned so much about the design process and the main features that make for a good user experience.

Overall, I am proud of the skills I gained and my resourcefulness in being able to research and overcome all of the challenges I faced.

What I learned

The model:

  1. I learned how to use Pandas and how to apply logistic regression to a dataset to plot predictions.
  2. I also gained a lot of experience in statistical analysis and gained proficiency in matplotlib. I also learned how to use metric scores and confusion matrices to properly evaluate my work.
  3. I learned how machine learning models are trained and how the hidden layers work. I learned abour regularization droupout, loss, and optimizers. I also learned how to use them alonside multiple layers to ensure a combination of the highest efficiency.

The front-end application:

  1. I learned how to use Flask and Anvil to integrate a machine learning model into a front-end application.
  2. I learned how to design an application using HTML and CSS. I also learned the importance of location of features, webpages, and colors and how all of these things need to work in harmony to provide the best user interface.
  3. i learned how responsive design works adn I gained experience in designing the application on desktop and using different design components to ensure the same application functions well on mobile.

What's next for Price Prophet

In the future, I want my model to be used as an API that can be used publicly by different applications. Also, for my application I want to train multiple models using different datasets that would allow the user to input differnet types of parameters regarding property information and still be able to determine whether it is above or below the median price. I also want to train a model using the same parameters that will also give a prediction on what the house price range should be.

Built With

Share this project:

Updates