Projektöversikt
Ladda ner på: https://github.com/frankuman/Swedish-housing-market-ML
Bostadsmarknaden har alltid varit en utmaning att förutse. Under 2023 minskade huspriserna med 6%, men i allmänhet ökade lägenhetspriserna. Bostadspriserna i Sverige har under de senaste 12 åren ökat med hela 85% (justerat för inflation) fram till toppen 2021, men har sedan dess sjunkit något. Med bostadspriser på en median av 2,3 miljoner svenska kronor är köp av bostad ofta den största investeringen en person gör i sitt liv.
Det bästa sättet att sälja en bostad har alltid varit att värdera den med hjälp av en mäklare. Mäklaren jämför priser i regionen, området och på gatan. Genomsnittspriset per kvadratmeter beräknas och sedan appliceras på säljarens bostad. Antal rum, balkong och bostadens ålder kan påverka listpriset, men det är oftast budpriset som är svårare att förutse, eftersom tid, ekonomi och många andra faktorer kan förändra det mycket.
Men hur kan en köpare värdera en bostad? Den nuvarande marknaden saknar enkla lösningar för oerfarna köpare, och att navigera genom fastighetsdata kan vara förvirrande och avskräckande. Att enbart förlita sig på en mäklares värdering innebär egna utmaningar, eftersom dessa värderingar kan variera. Det finns ett behov av en enkel lösning som endast förlitar sig på data och är lätt att använda. Det är därför VärderingsMaskinen kommer att värdera nästan vilken bostad som helst, även om typen av bostad inte ens existerar. Den använder Random Forest Regressor för att lära sig från en databas med 600 000 olika listningar och får ett genomsnittligt fel på 9% av genomsnittspriset.
Funktioner
- Värderare: Använder en stor databas med 600 000 listningar från den svenska bostadsmarknaden och Random Forest Regressor för att förutsäga priser.
- GUI: Python Flask GUI för enklare användning.
Krav
- Python 3.7.0 eller högre
- Pip
- Nätverksanslutning
Installation
- Ladda ner projektfilerna med antingen git eller manuell nedladdning.
- Öppna en terminal och navigera till projektmappen.
- Kör följande kommando för att installera nödvändiga beroenden:
pip install -r requirements.txt
Komma igång
- Navigera till katalogen
/data/
och packa uppprop.rar
. Se till att den extraherade filen heterprop.json
. - (Automatisk skapande). Kör följande kommando för automatisk skapande, notera att det vanligtvis tränas inom 10 minuter:
python autocreate.py
-ELLER-
- (Manuell skapande / Lärarvariant). Öppna
create.ipynb
Jupyter notebook-filen och följ de angivna stegen. Observera att vissa steg kanske inte är nödvändiga, följ instruktionerna i notebook-filen. Denna process kan ta maximalt 10 minuter. - Starta värderaren genom att köra:
python vm.py
- Öppna din webbläsare och gå till
127.0.0.1:5000
.
Konfiguration
create.ipynb
Jupyter notebook-filen kan ändras för att implementera olika tillvägagångssätt för problemet.
Användning
- Besök
127.0.0.1:5000
i din webbläsare. - Ange de nödvändiga kriterierna (alla är obligatoriska; ange 0 om det inte finns något specifikt värde).
- Vänta i cirka 10 sekunder.
- Granska resultaten.
Kända problem
- Ibland kan Nominatim stöta på SSL-certifikatfel. Detta problem verkar vara löst i den senaste versionen. Om det uppstår, försök uppdatera SSL-certifikaten i Python requests för att lösa problemet. För att lösa problemet, kör dessa kommandon:
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
Tack!