Rok za zagovor: 19. december 2024, 23.55
Število točk: 3
Z uporabo programskega jezika Python (Jupyter Notebook ali klasična Python datoteka) in knjižnic numpy, pillow ter scikit-learn implementirajte osnovno obdelavo podatkov za podano podatkovno zbirko. Zgradite napovedni model z uporabo klasifikacijskega drevesa in ga ovrednotite.
Cilj naloge je z uporabo napovednega modela napovedati v katero izmed kategorij sodi posamezna slika. Podana podatkovna zbirka skupno zajema 300 slik, ki so razvrščene v tri kategorije: krog (100 slik), kvadrat (100 slik) in trikotnik (100 slik). Podatkovna zbirka je na voljo za prenos na tej povezavi.
- Izgradite seznam poti do slik podatkovne množice.
- Izgradite seznama oznak (label) za posamezno sliko.
- Izrišite primerek slike posamezne kategorije.
- Izgradite dvodimenzionalno polje slik
- Naložite (preberite) posamezno sliko (PIL - Image, convert 'L'),
- Prebrano sliko (dvodimenzionalno polje) pretvorite v enodimenzionalno polje,
- Enodimenzionalno polje dodate na polje slik.
- Razdelite podatke na učno in testno množico tako, da bo testna množica zajemala 30% vseh podatkov pri čemer naj bo parameter random_state nastavljen na vrednost 4321 ter parameter shuffle na vrednost True.
- Gradnjo (učenje) napovednega modela implementirajte z uporabo algoritma odločitveno drevo nad podatki iz učne množice. Pri izgradnji odločitvenega drevesa nastavite parameter random_state na vrednost 1234.
- Izrišite odločitveno drevo.
- Pridobite napovedane vrednosti z uporabo zgrajenega napovednega modela za vsak primerek iz množice testnih podatkov.
- Izračunajte sledeče klasifikacijske metrike:
- točnost,
- utežena F1 vrednost,
- utežena preciznost,
- utežen priklic.
Nalogo nadgradite na način, da za reševanje problema klasifikacije slik, namesto algoritma odločitvenega drevesa uporabite algoritem K-najbližjih sosedov. Učenje in ovrednotenje izvedite na popolnoma enak način kot v obveznem delu naloge.
Dodatno rezultate metrik obeh omenjenih algoritmov primerjajte in izrišite stolpične diagrame za vsako izmed metrik.
Nalogo je potrebno zagovoriti na vajah pri asistentu.