Velika domača naloga (tekmovanje): Bicikelj

Opened: 일요일, 7 5월 2023, 12:00 오전
Due: 월요일, 29 5월 2023, 11:59 오후

Na Bicikelj postajah se pogosto zgodi, da na kakšni postaji koles sploh ni - ali pa obratno, da je postaja polna in kolesa več ne gre zakleniti. Upravitelj Bicikelja se proti temu bori tako, da s kombiji kolesa razvaža med postajami. Vaš cilj je narediti model, ki bi upravitelju pomagal oceniti, katera kolesa mora kam prestaviti.

No voljo imate približno za dva meseca podatkov (lanski avgust in september), ki za približno vsakih pet minut vsebujejo število koles na vseh Bicikelj postajah. Zgradite model, ki bo znal za čez eno in dve uri napovedati, koliko bo koles na posamezni postaji.

Za dodatna navodila, primere, podatke in oddajo napovedi obiščite stran tekmovanja. Geslo smo vam poslali na elektronski naslov, s katerim ste se prijavili na učilnico. Če ga ne najdete, pišite na marko.toplak@fri.uni-lj.si.

Rezultat na tekmovanju, ki je bistveno boljši kot baseline. (50% ocene). Ker gre za časovno vrsto, je najpreprostejši še smiseln model tisti, ki napove stanje ob najbližjem času učne množice. Takšen model se zmoti v poprečju le za dobri dve kolesi (MAE=2.05 na lestvici). Vse, kar bistveno popravi ta rezultat, že pokaže razumevanje problema in primerno strukturo vaše rešitve. Rešitvam z MAE na lestvici, ki je manjši od 1.95, zato garantiramo 50% točk.

Rezultat na tekmovanju (40% ocene + bonusi). Za napovedovanje lahko uporabite kakršnekoli metode. Ocenjevali vas bomo glede na rezultat.  Štel bo končni rezultat; na sprotni lestvici vidite kvaliteto napovedi na polovici terminov, končni rezultat, ki ga boste videli šele po koncu tekmovanja, pa bo dobljen na preostali polovici.

Opis modela (10% točk).

Bonusi

  • Prvo mesto: dodatnih 20%.
  • 2.-5. mesto: dodatnih 15%.
  • 6.-10. mesto: dodatnih 10%.
  • 11.-15. mesto: dodatnih 5%.
  • 15.-20. mesto: dodatnih 3%.

Pri bonusih upoštevamo samo pravočasne oddaje, torej zanje ni zamud.

Oddaja: Na strani tekmovanja oddajte končne napovedi, na spletni učilnici pa poročilo in izvorno kodo. Oddajte vso izvorno kodo, ki jo potrebujem za ponovitev vaše oddaje.

Poročilo naj na eni strani opiše vašo rešitev. Opišite, kako ste pripravili podatke in kakšen model ste uporabili.

Knjižnice

Za rešitev lahko uporabite poljubne (javno razširjene) knjižnice za strojno učenje.

Delo z datumi

Za delo z datumi preglejte kodo primerov s strani tekmovanja. Za pretvorbo datumov v pythonski datetime objekt (kjer z lahkoto razbere uro, dan v tednu in sorodno), bo uporabna tudi pandas.to_datetime.

Kako pripraviti podatke za modeliranje

Ker število koles pravzaprav napovedujemo, je edina preostala značilka datum. Iz nje bo treba pripraviti značilke, ki jih model lahko smiselno uporabi.

Najlaže je za vsako postajo zgraditi svoj model. Verjetno bo dobro tudi za napoved čez 1 in 2 uri (oboje je v testni množici) zgraditi ločena modela.

Eksperimentirajte z različni modeli. Tehnike, ki ste jih obravnavali pri predmetu, časovnih vrst posebej ne obravnavajo. Zato bo treba informacije o številu koles na postaji v preteklosti smiselno vključiti v učne množice. Rešitev marko-lr kot atribute vključi število koles na postaji pred 60, 90 in 120 minutami.

Če uporabljate linearno regresijo, eksperimentirate z različnimi tehnikami tvorbe predobdelave podatkov in tvorbe značilk, kot so generiranje polinomskih značilk, polinomska regresija, značilke 0/1 (ali je danes ponedeljek, ali je praznik). Razmislite o tem, kakšne značilke lahko linearnemu modelu omogočijo, da kaj pametnega napove. Prestavljajte si, da ste linearni model: kateri podatki bi bili za vas uporabni? Velikokrat pomaga, če si podatke narišemo: na x os postavite eno vaših predlaganih značilk, na y os pa trajanje vožnje.

Uporaba drugih podatkov

Morda vam bo pomagala tudi uporaba drugih podatkov. Gotovo šolske počitnice. Poleg tega se mi pa zdi, da bi na izposojo koles lahko vplivalo tudi vreme. Lahko bi vam pomagali tudi podatki o posebnih prireditvah... Marsikaj lahko najdete na spletu.