previdevanje cene nepremičnine z uporabo predikcij

7
Sistemi znanja: Predvidevanje cene nepremičnine Predvidevanje cene nepremičnine Podatkovno rudarjenje / Sistemi znanja / Google Prediction API Oto Brglez, oktober 2011

Upload: oto-brglez

Post on 24-Jan-2015

780 views

Category:

Documents


4 download

DESCRIPTION

 

TRANSCRIPT

Sistemi znanja: Predvidevanje cene nepremičnine

Predvidevanje cene nepremičninePodatkovno rudarjenje / Sistemi znanja / Google Prediction API

Oto Brglez, oktober 2011

Sistemi znanja: Predvidevanje cene nepremičnine

Kazalo

ProblemZajemanje podatkovUstvarjanje modela in učenjeSpletna aplikacijaTežave in možne izboljšaveViri

Sistemi znanja: Predvidevanje cene nepremičnine

ProblemDoločanje cene nepremičnine je zapleten postopek. Cena posamezne nepremičnine je odvisna od njene lokacije, starosti, velikosti, opremljenosti in dostopa. Zato je določanje cene neke nepremičnine zelo zahtevno in velikokrat prodajalci/kupci izbirajo cene glede na cene, ki veljajo za podobne nepremičnine. Oziroma določijo ceno glede na svojo osebno oceno, pogled ali mnenje. Odločil sem se, da z uporabo tehnik podatkovnega rudarjenja in predikcij pripravim preprosto rešitev, ki omogoča enostavno, hitro in pregledno ugotavljanje vrednosti nepremičnine. Postopek gradnje je bil sestavljen iz pridobivanja podatkov, ustvarjanja modela, učenja le tega ter izdelavo razvoja aplikacije.

Zajemanje podatkovZaradi kompleksnosti problema sem se odločil, da si za začetek sposodim podatke iz spletnega nepremičninskega iskalnika GoHome. Slednjega sem izbral zato, ker je imel relativno veliko število dobro organiziranih in raznovrsnih nepremičnin v relativno enostavni strukturi. Podatke sem pridobil tako, da sem spisal skript, ki je z uporabo storitve YQL izluščil večjo količino podatkov in jih je potem shranil v CSV datoteko. V CSV datoteki so bili tako zbrani podatki zapisani, po sledečem primeru: 462324,121.74,"Stanovanje","LJUBLJANA"135000,80.00,"Stanovanje","KAMNIK"110000,40.00,"Stanovanje","KOPER"100000,24.00,"Stanovanje","LJUBLJANA"115000,109.00,"Stanovanje","CELJE"… itd ... Pred prvo vejico - vrednost nepremičnine v evrih, pred drugo vejico velikost v m2, pred tretjo vejico vrsta nepremičnine in na koncu še lokacija. Vrste nepremičnin sem klasificiral kot Stanovanje, Hiša ali Zemljišče. Osredotočil sem se na mesta: Ljubljana, Maribor, Celje, Kranj, Velenje, Koper, Ptuj, Trbovlje, Kamnik, Lucijo in Logatec. Dobljeno CSV datoteko sem z uporabo orodja gsutil prenesel v Google Storage. Googlov oblak namenjen izmenjavi datotek. V spodnjem primeru prikazujem vsebino “vedra” estates v katerem se nahaja datoteka “gohome”.

Sistemi znanja: Predvidevanje cene nepremičnine

Izvorna koda skipte za pridobivanje podatkov.

.

Sistemi znanja: Predvidevanje cene nepremičnine

Ustvarjanje modela in učenjePo uspešnem prenosu CSV datoteke v oblak sem izvedel OAuth2 avtentifikacijo moje skripte z uporabo “oacurl” knjižnice preoblečene v skripto. Po uspešnem avtentificiranju in pridobitvi “žetona” sem lahko začel z uporabo REST storitev. Proces učenja v storitvi Google Prediction poteka, tako, da pokličemo REST storitev in ji ukažemo naj nad podatki v Google Storage začne izdelavo analize in modela. Učenje nad začetnimi podatki poteka v ozadju.

Učenje in analiza podatkov traja nekaj časa. Zelo odvisno od količine podatkov in kompleksnosti le teh. Stanje učenja lahko preverimo z uporabo druge REST metode.

Iz podatkov pridobljenih iz modela lahko vidimo na kolikih podatkih je bilo izvedeno učenje, tip modela in napako v numerični obliki. “trainingStatus” - pojasni stanje. Vsa komunikacija z API-jem poteka v formatu JSON po HTTPS avtentificirano z OAuth2. Kat zagotavlja zelo varno povezavo in nadzor nad dostopom do podatkov. Poleg metod za učenje lahko z uporabo testne konzole izvajamo tudi testne poizvedbe in dodajamo nove učne primere, ter tako “dograjujemo” naš model. Sledi primer poizvedbe za stanovanje v velikosti 130 m2 v Ljubljani z uporabo testne aplikacije.

Sistemi znanja: Predvidevanje cene nepremičnine

Spletna aplikacijaV sklopu projekta sem pripravil tudi preprosto spletno aplikacijo, ki z uporabo Google JavaScript Prediction API omogoča, da lahko “predvidevamo” nove cene. Aplikacija je sestavljena tako, da vsebuje polje za vpis velikosti, dva padajoča menija za izbor tipa nepremičnine in lokacijo. Ob potrditvi obrazca se izvede REST klic spletne storitve in kot odgovor dobimo vrednost, ki jo potem ustrezno prikažem znotraj aplikacije.

Težave in možne izboljšave● Google Prediction API v trenutni aktualni različici ne omogoča vpogleda v algoritme,

ki so uporabljani za pridobitev rezultatov. Tudi ni mogoče te algoritme kakorkoli izboljšati, dograditi, dodelati in tako dobiti še boljše predikcije.

● Za bolj natančne analize bi bilo potrebno zajeti še večje količine podatkov in več atributov. Velik problem aplikacije je pomanjkanje atributa “leto izgradnje”, saj le ta zelo vpliva na ceno. Verjetno pa bi bilo pametno dodati in razdelati tudi atribut lokacija, saj se lahko recimo cena napremičnine v centru Ljubljane bistveno razlikuje od cene nepremičnine na obrobju

● Storitev Google Prediction API je plačljiva storitev. Do določene kvote je njena uporaba brezplačna, preseg kvote pa se zaračunava.

Sistemi znanja: Predvidevanje cene nepremičnine

Viri● Google Prediction API

http://code.google.com/intl/sl-SI/apis/predict/● GoHome.si

http://www.gohome.si/● Oto Brglez - weka_home - Skripta za pridobivanje podatkov

https://github.com/otobrglez/weka_home● Oto Brglez - dom-opalab - Izvorna koda spletne aplikacije

https://github.com/otobrglez/dom-opalab● Poizkusna različica

http://dom.opalab.com/● Oto Brglez

http://opalab.com