The housing market has always been a challenge to predict. In 2023 house prices decreased by 6%, but in general apartment prices increased. Housing in Sweden in the last 12 years alone has risen an astounding 85% (adjusted to inflation) to the top of 2021 but has fallen a bit since then. With housing prices of a median of 2.3 million Swedish krona, buying residency is often the biggest investment a person makes in their life. The best way to sell a house has always, throughout time, been to valuate it with a broker. The broker checks the price similarity in the region, area, and street. Calculates the average price per square meter and then takes the seller’s apartment size and calculates accordingly. The amount of rooms, balcony, and the age of the apartment may vary the listing price, but it is usually the bidding price that is harder to predict, since time, economy and many other factors can change it a lot.
But how can a buyer valuate a house listing? The current landscape lacks simple solutions for non-experienced buyers, and navigating though real estate data can be a perplexing task and the buyer could lose their interest. Relying entirely on a broker’s valuation poses its own challenges, as these valuations might fluctuate. There is a need for a simple solution that only relies on data, and is easy to use. That is why VarderingsMaskingen ( ¨ The Valuation Machine) will valuate almost any housing, even if the sort of housing doesn’t even exist. It uses Random Forest Regressor to learn from a database including 600,000 different listings and gets a mean error of 9% of the mean price.
- Project Overview
- Features
- Requirements
- Installation
- Getting Started
- Configuration
- Usage
- Known Issues
- Valuator: Uses a 600k large database of swedish housing market and random forest regressor to predict it.
- GUI: Python flask GUI for easier usage.
- Python 3.7.0 or higher
- Pip
- Network connection
- Download the project files using either git or manual download.
- Open a terminal and navigate to the project directory.
- Run the following command to install the required dependencies:
pip install -r requirements.txt
- Navigate to the
/data/
directory and unzip theprop.rar
. Ensure the extracted file is namedprop.json
. - (Auto creation). Execute the following command for automatic creation, note that is usually trains within 10 minutes:
-OR-
python autocreate.py
- (Manual creation / Teacher variant). Open the
create.ipynb
Jupyter notebook file and execute the provided steps. Note: Some steps may not be necessary, follow the instructions in the notebook. This process may take a maximum of 10 minutes. - Start the valuator by running:
python vm.py
- Open your web browser and go to
127.0.0.1:5000
.
The create.ipynb
Jupyter notebook file can be modified to implement different approaches to the problem.
- Visit
127.0.0.1:5000
in your web browser. - Enter the required criteria (all are mandatory; enter 0 if there is no specific value).
- Wait for approximately 10 seconds.
- Review the results.
- Occasionally, Nominatim may encounter SSL certificate errors. This issue seems to have been resolved in the latest release. If encountered, try refreshing the SSL certificates in Python requests to resolve the problem. To fix the issue for me, i used these commands
python -m pip install python-certifi-win32
pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org python-certifi-win32
Thank you