1. domača naloga: glasovanje za Pesem Evrovizije

Glasovanje za Pesem Evrovizije je morda celo zanimivejše od samega poslušanja skladb na tem dogodku. Tisti, ki dolga leta spremljajo glasovanje, sicer pravijo, da ni najbolj objektivno (glej spodnjo ilustracijo). Predstavniki posameznih držav naj bi glasovali pristransko in pri tem favorizirali nastopajoče iz bližnjih ali sorodnih držav.

Je to res? Najenostavnejši način, da to preverimo je, da analiziramo podatke iz preteklih glasovanj. Na voljo so podatki o glasovanju v finalnem in polfinalnem delu (dobili smo jih na portalu Kaggle). Primerjaj države med sabo tako, da oceniš razdaljo med njimi glede na njihov profil (vektor) glasovanja. V programski kodi (Python) razvij postopek za hierarhično razvrščanje v skupine in izriši dendrogram držav - izris je lahko tekstovni (obvezno) ali grafični (za dodatne točke), oba moraš razviti sam. Ali razvrščanje poišče smiselne skupine? Katere so te skupine? Za vsako od skupin navedi, katere države izbira preferenčno (jih ima raje) in katere ne, oziroma katerim državam ta skupina dodeljuje nadpovprečne oziroma podpovprečne ocene. Razumevanje in razlaga rezultatov je pomemben del tvoje domače naloge, zato se pri tem delu potrudi.

V nalogi boš moral(a) ustrezno rešiti kar nekaj problemov. Na primer, podana so glasovanja iz finalnega in polfinalnega dela. Katere podatke boš uporabil(a)? Kako jih boš zapisal(a) v primerni obliki? Kako boš združil(a) podatke iz posameznih let?

Dodatno (+15%): Grafičen izris dendrograma z lepo razvidnimi razdaljami, ki ste ga v Pythonu razvili sami.

Dodatno (+15%): So rezultati analize odvisni od leta glasovanja? Vaš sklep ustrezno ovrednotite.

Oddaja: Oddajte eno datoteko (.zip) s celotno kodo projekta (in podatki) ter poročilom v .pdf formatu. Poročilo naj bo sestavljeno le iz naslednjih razdelkov:

  1. Podatki. Katere podatke ste analizirali? Kako ste iz podatkov izluščili profile glasovanja? (1 odstavek)
  2. Računanje razdalj. Kako ste računali razdalje med posameznimi profili ter med posameznimi skupinami? Kaj ste naredili z neznanimi vrednostmi? (1 odstavek)
  3. Dendrogram. Vključite tekstovni diagram (vsi) in po želji tudi grafičnega (dodatna naloga). (1 ali 2 sliki)
  4. Skupine in njihove preferenčne izbire. Glede na rezultate razvrščanja smiselno določite skupine. Vsaki skupini v tabeli dopišite preferirane države in tiste, za katere ne glasujejo. Opišite, kako ste določili skupine in preferirane države. (1 tabela in 1 odstavek)
  5. (dodatno) Odvisnost rezultatov od leta glasovanja. Smiselno analizirajte odvisnost rezultatov od leta glasovanja in utemeljite vaš pristop.

Poskrbite, da bo vaša programska koda čitljiva in komentirana. Shranite jo tako, da izdela rezultate z zagonom datoteke "naloga1.py". 


Pomoč

Branje datoteke

Če datoteko z ocenami odpirate v Pythonu 3, vam bo Python najverjetneje javil težave pri dekodiranju besedila. Priporočam, da datoteko odprete s parametrom encoding="latin1":

f = open("eurovision-final.csv", "rt", encoding="latin1")

Nato jo boste lahko prebrali z modulom csv:

import csv
for l in csv.reader(f):
    print(l)


Primer tekstovnega dendrograma

Preprost tekstovni dendrogram, iz katerega jasno vidimo hierarhijo, lahko s preprosto rekurzivno funkcijo izgleda takole:


---- Branka ----| ---- Edo ----| ---- Polona ----| ---- Helena ----| ---- Zala ----| ---- Nika ----| ---- Albert ----| ---- Ivan ----| ---- Franci ----| ---- Cene ----| ---- Leon ----| ---- Jana ----| ---- Dea ----| ---- Metka ----| ---- Rajko ----| ---- Stane