33
SVEUC ˇ ILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5371 Implementacija i vrednovanje algoritma za izgradnju stabla odluke C4.5 Luka Kiseljak Zagreb, lipanj 2018.

Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

Embed Size (px)

Citation preview

Page 1: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

SVEUC ILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

ZAVRŠNI RAD br. 5371

Implementacija i vrednovanje algoritma za izgradnju stabla odluke C4.5

Luka Kiseljak

Zagreb, lipanj 2018.

Page 2: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

SVEUC ILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

ZAVRŠNI RAD br. 5371

Implementacija i vrednovanje algoritma za izgradnju stabla odluke C4.5

Luka Kiseljak

Zagreb, lipanj 2018.

Page 3: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

\izvornik

Page 4: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,
Page 5: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

5

Sadržaj

1. UVOD ................................................................................................................................................. 6

2. OSNOVNI PRINCIP RADA ALGORITMA STABLA ODLUKE ..................................................................... 7

I. ČISTOĆA ČVOROVA .....................................................................................................................................8 II. GRANANJE U ŠTO MANJI BROJ ČVOROVA .......................................................................................................10

3. POBOLJŠANJA OSNOVNOG ALGORITMA .......................................................................................... 11

I. PRESTANAK GRANANJA ..............................................................................................................................11 II. NEPOZNATE VRIJEDNOSTI ...........................................................................................................................11 III. NUMERIČKI ATRIBUTI ................................................................................................................................12 IV. PODREZIVANJE .........................................................................................................................................14

4. IMPLEMENTACIJA ............................................................................................................................. 16

I. POKRETANJE I IZVOĐENJE ALGORITMA ..........................................................................................................16 II. IMPLEMENTACIJSKI DETALJI .........................................................................................................................19

5. PERFORMANSE I USPOREDBA S POSTOJEĆIM RJEŠENJIMA ............................................................... 21

I. VREDNOVANJE REZULTATA .........................................................................................................................21 II. SKUP PODATAKA ODOBRENJE KREDITA ..........................................................................................................24 III. SKUP PODATAKA VRSTA STAKLA ...................................................................................................................28

6. ZAKLJUČAK ....................................................................................................................................... 30

7. LITERATURA ..................................................................................................................................... 31

Page 6: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

6

1. Uvod

Stablo odluke je metoda induktivnog zaključivanja koja nalazi iznimno široku

primjenu u raznim poljima poput medicine i financija. U problemima u kojima je

pogodno koristiti strojno učenje algoritmi stabla odluke ostvaruju jako dobre

rezultate, a među njima posebno se ističe algoritam C4.5 koji je u okviru ovog rada

detaljno razrađen i implementiran.

Osnovna zadaća algoritama stabla odluke je rješavanje problema klasifikacije,

odnosno iz primjera koji imaju poznate vrijednosti relevantnih atributa i vrijednost

klasifikacijskog atributa naučiti o problemu na temelju čega je moguće za primjere

s poznatim atributima odrediti nepoznatu vrijednost klasifikacijskog atributa.

Stablo odluke počiva na pristupu indukciji „podijeli pa vladaj“. Taj je pristup u svom

osnovnom obliku ostvaren u algoritmu ID3 kojeg je prvi razradio i godinama

usavršavao John Ross Quinlan sa Sveučilišta u Sydneyju u Australiji. Daljnji razvoj

ove ideje kroz niz poboljšanja poput korištenja numeričkih atributa i učenja s

nepotpunim podacima implementirani su u nasljedniku ID3, algoritmu C4.5, koji se

također pripisuje Quinlanu.

U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke

koji je na razini algoritma ID3, zatim su objašnjena poboljšanja koja dovode do

algoritma C4.5 te je naposlijetku opisana izvedba algoritma, upute za uporabu i

performanse na dva testna skupa u usporedbi s postojećim implementacijama.

Page 7: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

7

2. Osnovni princip rada algoritma stabla odluke

Algoritam koji koristi stablo odluke prolazi kroz dvije faze – fazu učenja i fazu

predviđanja.

U fazi učenja algoritmu se predaje skup primjera za učenje na temelju kojeg stvara

stablastu strukturu koja je osnova za predviđanja u drugoj fazi. Primjeri su

sastavljeni od niza atributa od kojih je jedan klasifikacijski, odnosno onaj kojeg

algoritam treba predvidjeti.

U fazi predviđanja algoritam dobiva primjer s nepoznatom vrijednosti klasifikacijskog

atributa te na temelju ostalih atributa s poznatom vrijednosti otkriva kojem listu

izgrađene stablaste strukture pripada. S tim predviđanje se svodi na odabir klase

koja je u tom listu najzastupljenija.

Stvaranje stabla odluke u fazi učenja može se opisati jednostavnim rekurzivnim

postupkom:

1) Stvara se čvor koji je korijen stabla odluke i sastavljen je od svih primjera koje

su u skupu za učenje

2) Svaki čvor na najnižoj razini dijeli se tako da se odabere jedan atribut i podijeli

primjere čvora u čvorove djecu na način da svi primjeri koji imaju istu

vrijednost odabranog atributa budu u istom čvoru

3) Korak 2 se ponavlja sve dok postoje atributi po kojima je moguće raditi

podjelu ili dok čvor nije sastavljen od primjera koji su svi iste klase – čvor je

u potpunosti čist

Pitanje koje se postavlja je kako odabrati atribut za podjelu jer je očito da različit

redoslijed odabira stvara u potpunosti različito stablo, a samim time dovodi i do

drugačijeg ponašanja u fazi predviđanja.

Page 8: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

8

U idealnom scenariju listovi stabla odluke su u potpunosti čisti i sadrže što veći broj

primjera jer je tada stablo najopćenitije. Potonje se postiže grananjem u što manji

broj čvorova djece i što manjom dubinom stabla.

Zato atribute valja birati na način da se maksimalno udovolji oba kriterija – da su

čvorovi djeca što veće čistoće i da se čvorovi granaju u što manji broj djece.

I. Čistoća čvorova

Kako bi pojedine atribute bilo moguće vrednovati ovisno o čistoći čvorova koje

stvaraju potrebno je najprije pronaći funkciju koja opisuje čistoću čvora.

Čistoća čvora zapravo označava koliko je dodatne informacije potrebno dobiti kako

bi se odredila klasa (vrijednost klasifikacijskog atributa) nekog slučajno odabranog

primjera iz danog čvora.

Uzmimo za ilustraciju čvor s primjerima koji pripadaju klasi A, B ili C i promotrimo

kako distribucija klasa u primjerima čvora utječe na potrebnu količinu dodatne

informacije:

i) Kada je čvor sastavljen od primjera koji su svi iste klase, recimo svi

pripadaju klasi A, potrebna količina dodatne informacije je jednaka nuli jer

slučajan primjer može pripadati samo klasi A

ii) Ako je čvor sastavljen od jednakog broja primjera svih klasa potrebna je

maksimalna količina informacije jer je nesigurnost u odluku najveća

iii) U slučaju da većina primjera pripada jednoj klasi, recimo klasi A, s dobrom

sigurnošću je moguće tvrditi da je slučajno odabran primjer klase A,

odnosno količina dodatne informacije je između nule i maksimuma

Iz ovog promatranja slijedi zaključak da mjera čistoće čvora mora zadovoljavati dva

kriterija:

1) Ako je čvor sastavljen samo od primjera iste klase, vrijednost je nula

2) Ako je čvor sastavljen od jednakog broja primjera različitih klasa, vrijednost

je maksimalna

Page 9: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

9

Postoji još jedno ograničenje koje nije veoma očito, a proizlazi iz prirode donošenja

odluka – ukupna količina informacije koja je potrebna ne ovisi o broju ili redoslijedu

koraka kako se do nje dolazi. Svejedno je odredi li se klasa neposredno ili prvo

pripada li primjer klasi A ili klasama B i C, a zatim ako ne pripada A pripada li

klasi B ili C. Dakle, postoji i treći kriterij:

3) Vrijednost mora biti neovisna o tome u koliko se koraka i kojim redoslijdeom

do dodatne informacije dolazi

Pokazuje se da samo jedna funkcija zadovoljava te kriterije – entropija.

Za diskretnu slučajnu varijablu 𝑋 koja poprima 𝑛 različitih vrijednosti s pripadajućim

vjerojatnostima 𝑝1 do 𝑝𝑛 entropija 𝐸(𝑋) izračunava se po formuli:

𝐸(𝑋) = 𝐸([ 𝑝1, … , 𝑝𝑛]) = − ∑(𝑝𝑖 ∗ log2 𝑝𝑖)

𝑛

𝑖=1

𝑋 ~ ( 𝑝1 𝑝2 … 𝑝𝑛)

Mjerna jedinica entropije je bit. Iako su u kontekstu računala bitovi nedijeljivi,

entropija može poprimiti bilo koju pozitivnu realnu vrijednost što je u praksi gotovo

uvijek tako.

Kako je cilj pronaći atribut koji će dovesti do najčišćih čvorova, odnosno čvorova s

najmanjom entropijom, pri odluci je potrebno za svaki atribut izračunati koliki je

dobitak informacije pri dijeljenju po tom atributu. Taj se podatak može izračunati na

način da se od entropije čvora koji se dijeli oduzme prosječna entropija čvorova

djece. Ova mjera naziva se informacijski dobitak (engl. gain), a atribut s najvećim

informacijskim dobitkom je najbolji kandidat za podjelu čvora.

Za čvor predstavljen diskretnom slučajnom varijablom 𝑋 koji se sastoji od 𝑛 primjera

i dijeli se na čvorove predstavljene diskretnim slučajnim varijablama 𝑋1, … , 𝑋𝑚 koji

imaju pripadajući broj primjera 𝑛1, … , 𝑛𝑚 informacijska dobit izračunava se po

formuli:

𝐺𝑎𝑖𝑛([𝑋1, … , 𝑋𝑚]) = 𝐸(𝑋) − ∑𝑛𝑖

𝑛

𝑚

𝑖=1

∗ 𝐸(𝑋𝑖)

Page 10: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

10

II. Grananje u što manji broj čvorova

U obzir treba uzeti i drugi kriterij koji je označen kao relevantan - da je grananje u

što manji broj čvorova djece poželjno ponašanje.

Zašto je grananje u velik broj čvorova djece loše može se pokazati ako se uzme

ekstreman slučaj u kojem je jedan od atributa jedinstveni identifikator primjera.

U tako postavljenoj situaciji korijen bi bio podijeljen na čvorove veličine jedan – za

svaki identifikator stvorio bi se list sa samo jednim primjerom jer bi takvom podjelom

informacijska dobit bila maksimalna.

To dovodi do toga da niti jedan primjer za kojeg bi algoritam predviđao klasu ne bi

bilo moguće smjestiti u niti jedan list jer njegov identifikator nije već viđen. Dakle,

stablo odluke bilo bi u potpunosti beskorisno jer bi za svaki novi primjer otkrivalo

novu vrijednost kojeg identifikator može poprimiti. Zaključak je da informacijska

dobit ima neželjeno svojstvo da preferira atribute koji se granaju u velik broj

vrijednosti.

U svrhu korekcije tog ponašanja umjesto informacijske dobiti uvodi se druga veličina

koje se zove omjer dobiti (engl. gain ratio), a neželjeno ponašanje informacijske

dobiti kompenzira dijeljenjem s entropijom podjele.

Za čvor predstavljen diskretnom slučajnom varijablom 𝑋 koji se sastoji od 𝑛 primjera

i dijeli se na čvorove predstavljene diskretnim slučajnim varijablama 𝑋1, … , 𝑋𝑚 koji

imaju pripadajući broj primjera 𝑛1, … , 𝑛𝑚 omjer dobiti računa se po formuli:

𝐺𝑎𝑖𝑛 𝑅𝑎𝑡𝑖𝑜([𝑋1, … , 𝑋𝑚]) = 𝐺𝑎𝑖𝑛([𝑋1, … , 𝑋𝑚])

𝐸 ([𝑛1

𝑛 , … ,𝑛𝑚

𝑛 ])

Korištenje kriterija omjera dobiti donosi poboljšanje u odabiru atributa za podjelu, ali

u nekim slučajevima može dovesti do prevelike kompenzacije gdje se neki atributi

odabiru samo zato što se granaju u manje čvorova djece. Način na koji se tomu

može doskočiti je traženje atributa s najvećim omjerom dobitka, ali takvog da je

informacijska dobit veća ili jednaka prosječnoj informacijskoj dobiti svih atributa.

Page 11: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

11

3. Poboljšanja osnovnog algoritma

I. Prestanak grananja

U osnovnom opisu algoritma navedeno je da grananje staje u trenutku u kojem se

postižu potpuno čisti čvorovi, odnosno kad je entropija čvora nula, ili kada je

napravljena podjela po svim dostupnim atributima. Međutim u problemima u kojima

je za primjere dostupan velik broj atributa stvaraju se iznimno duboka stabla s

relativno malim brojem primjera u listovima. Iako takvo stablo savršeno grupira

primjere koji se koriste za učenje, stablo postaje prenaučeno na skupu primjera nad

kojim se uči. Događa se da preciznost predviđanja opada zbog pojave primjera koje

nije moguće smjesititi niti u jedan list jer takva kombinacija atributa nije već viđena.

Zato je dobro ograničiti broj primjera koji može biti u čvoru tako da se ne stvaraju

listovi sa svega jednim ili dva primjera u sebi. Dodatno, može se definirati koja

vrijednost entropije je zadovoljavajuća tako da podjela ne staje kad je entropija nula

već neka druga pozitivna realna vrijednost.

II. Nepoznate vrijednosti

U stvarnim skupovima podataka vrlo je česta pojava da među primjerima koji se

koriste za učenje algoritma postoje oni kojima neke vrijednosti atributa nedostaju.

Najjednostavnija strategija nošenja s takvim primjerima je takve primjere ignorirati,

no često i oni nose neku korisnu informaciju pa odbacivanje nije najbolje rješenje.

Druga je strategija tretirati nepoznatu vrijednost kako zasebnu vrijednost, odnosno

ako atribut poprima dvije vrijednosti A i B, tretirati ga kao da poprima tri, A, B i

nepoznatu. Ovo rješenje također nije osobito dobro jer dodatna vrijednost ne postoji

pa zaključci koje algoritam izvodi mogu biti pogrešni.

Page 12: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

12

Treća strategija iziskuje promjenu na čvorovima tako da ne sadrže samo cjelovite

primjere, nego i primjere koji predstavljaju samo dio cijelog primjera, definiranog

realnim brojem unutar intervala ⟨0, 1⟩.

Takva modifikacija omogućava da se pri dijeljenju po atributu za kojeg neki primjeri

imaju nepoznatu vrijednost dijelovi tih primjera pridjeljuju svakom čvoru djetetu.

Uzmimo za ilustraciju da postoji čvor koji u sebi ima 81 primjer i atribut po kojem se

radi podjela poprima vrijednost A za 60 primjera, vrijednost B za 20 primjera i za

jedan primjer nije poznata vrijednost tog atributa. Sada je moguće stvoriti dva čvora,

jedan koji u sebi ima 60 primjera s vrijednosti A, drugi koji ima 20 primjera s

vrijednosti B, a jedan primjer s nepoznatom vrijednosti podijeliti tako da 0.75 (60/80)

pripadne prvom čvoru, a ostalih 0.25 (20/80) drugom. Time postižemo da i primjeri

s nepoznatom vrijednosti atributa doprinose odlukama koje algoritam radi.

Naravno, ako primjer ima više nepoznatih atributa, moguće je da će njegov dio biti

ponovno podijeljen na manje dijelove.

Originalni algoritam C4.5 podržava nepoznate vrijednosti, ali te primjere izostavlja

iz izračuna, odnosno koristi prvu strategiju ignoriranja primjera s nepoznatim

vrijednostima.

III. Numerički atributi

U problemima koje algoritmi strojnog učenja rješavaju česta je pojava da nisu svi

atributi diskretni (nominalni), nego postoje i atributi koji poprimaju realne vrijednosti

(numerički). Kada bi algoritam ove atribute tretirao kao nominalne svaka vrijednosti

bila bi zasebna što bi dovelo do grananja u ogroman broj čvorova pa je bolja ideja

podjele po numeričkim atributima napraviti na način da se odrede skupovi vrijednosti

unutar kojih spadaju primjeri. Ovdje su spomenuta dva pristupa.

Page 13: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

13

1. Podjela vrijednosti u dva skupa

Najjednostavnija podjela vrijednosti numeričkih atributa na skupove je podjela na

dva skupa. Odabere se vrijednost i primjeri se dijele u dva čvora ovisno o njihovoj

vrijednosti numeričkog atributa: u jedan čvor idu primjeri čija je vrijednost manja ili

jednaka, a u drugi primjeri čija je vrijednost veća od odabrane vrijednosti.

Odabir i vrednovanje vrijednosti po kojoj se odvija podjela ne predstavlja velik

problem. Primjeri se sortiraju po vrijednostima numeričkog atributa i između svake

dvije različite vrijednosti uzima se vrijednost koja razdjeljuje dva skupa. Među njima

odabire se ona čija podjela daje najveću dobit.

Dodatno, nema smisla promatrati podjelu kad je granica dva skupa između dva

primjera iste klase pa se te vrijednosti niti ne uzimaju u obzir.

2. Podjela vrijednosti u veći broj skupova

Ovdje je ideja da ne postoji samo jedna vrijednost koja dijeli vrijednosti numeričkih

atributa u skupove nego više njih. Postoji više mogućnosti kako izabrati te

vrijednosti, a u nastavku je opisana jedna varijanta.

Ponovo se primjeri sortiraju po vrijednosti numeričkog atributa. Svi se primjeri redom

stavljaju u isti čvor sve dok u čvoru nisu tri primjera iste klase. Ako je primjer

neposredno iza zadnjeg dodanog iste većinske klase i njega se stavlja u ovaj čvor

te se ponovo provjerava ovaj uvjet, inače se povlači granica i počinje se puniti novi

čvor. Na kraju, ako postoje susjedni čvorovi koji imaju istu većinsku klasu, spajaju

se u jedan i podjela je gotova.

Ono što je važno naglasiti kod numeričkih atributa je da se podjela po takvim

atributima može dogoditi i više puta na istom putu od korijena prema listu, odnosno

numerički atribut za razliku od nominalnog nikad se ne označava iskorištenim.

Page 14: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

14

IV. Podrezivanje

Već je istaknuto da stabla odluke ponekad imaju tendenciju da postaju prenaučena.

Jedna od metoda kojom se omogućava povećanje općenitosti i posljedično

preciznosti algoritma na neviđenim primjerima je smanjivanje stabla podrezivanjem.

Ovo dovodi do kompaktnijih stabala koja su manje precizna na skupu za učenje, ali

potencijalno preciznija u fazi predviđanja.

Podrezivanje je moguće raditi u toku generiranja stabla, prije nego je ono

kompletirano (engl. prepruning), ili pak nakon što je stablo potpuno izgrađeno i svi

su parametri poznati. U okviru ovog rada fokus će biti na podrezivanju nakon što je

stablo gotovo (engl. postpruning). Postupak ide od listova sve do korijena i

podrezuje kad god je to moguće i isplativo. Postoje dvije strategije podrezivanja:

zamjena podstabla, koja je u osnovi zamjena čvora koji je razgranat na više listova

sa samo jednim listom i uzdizanje podstabla. Ovaj postupak uzdiže čvor koji se

nalazi dublje na višu razinu, a primjeri njegovih dosadašnjih susjeda se smještaju u

njegovu djecu. Slika 1 prikazuje ovaj postupak.

Čvor C se uzdiže na mjesto čvora B, a primjeri iz čvorova 4 i 5 se smještaju u

čvorove djecu čvora C tako da nastaju 1', 2' i 3'.

Slika 1: Uzdizanje podstabla

Page 15: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

15

Postavlja se pitanje u kojima situacijama podrezivati, a u kojima je bolje stablo

ostaviti kakvo je. Očito treba utvrditi koliku pogrešku će podrezivanje donijeti i na

temelju toga procijeniti isplativost podrezivanja. Iz tog razloga čini se razumno dio

skupa za učenje odvojiti isključivo za provjeru pogreške uz i bez podrezivanje, ali to

znači da će stablo biti manje kvalitete jer je napravljeno iz manjeg skupa za učenje.

Druga i bolja opcija, koju koristi i originalni C4.5, je napraviti pesimističnu procijenu

pogreške koristeći intervale povjerenja ako predviđanje gledamo kao Bernoullijev

proces. Iako ova metoda dosta toga prepostavlja pa nije iz pogleda statistike sasvim

korektna pokazala se veoma uspješnom na raznovrsnim problemima.

Izračun je temeljen na razini pouzdanosti 𝑐 = 25% za koju je gornja granica intervala

povjerenja 𝑧 = 0.69. Broj svih primjera u čvoru označen je s 𝑁, a broj primjera koji

nisu dominantne klase u tom čvoru je 𝐸. Pesimistična procjena pogreške 𝑒

izračunava se po formuli:

𝑒 = 𝑓 +

𝑧2

2𝑁 + 𝑧√𝑓𝑁 −

𝑓2

𝑁 +𝑧2

4𝑁2

1 + 𝑧2

𝑁

𝑓 = 𝐸

𝑁

Odluka o isplativosti podrezivanja svodi se na izračun pesimistične pogreške čvora

i njegove djece. Ako je pesimistična pogreška čvora roditelja manja od prosječne

pesimistične pogreške djece podrezivanje se obavlja.

Uz pesimističnu pogrešku čvora 𝑒 koji ima 𝑛 primjera i pesimistične pogreške

čvorova djece 𝑒1, … , 𝑒𝑚 s pripadajućim brojem primjera 𝑛1, … , 𝑛𝑚 uvjet za

podrezivanje je:

𝑒 < ∑𝑛𝑖

𝑛∗ 𝑒𝑖

𝑚

𝑖=1

Page 16: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

16

4. Implementacija

I. Pokretanje i izvođenje algoritma

Za implementaciju opisanog algoritma izabran je programski jezik Java.

Program se distibuira u obliku JAR arhive i na računalu s instaliranim JRE (Java

Runtime Environment) ili JDK (Java Development Kit) i ispravno podešenom

putanjom prema bin direktoriju instalacije pokreće se naredbom:

java –jar DecisionTree.jar

Otvara se grafičko sučelje sastavljeno od centralnog dijela koje prikazuje informacije

korisniku i alatne trake na desnoj strani koja sadrži niz opcija kojima je moguće

podešavati razne parametre algoritma kako je prikazano na slici 2.

Slika 2: Grafičko sučelje implementacije algoritma

Page 17: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

17

U nastavku su pojašnjeni pojedini parametri konfiguracije.

Learning instances – označava koji postotak učitanih primjera treba biti korišten

za učenje algoritma. Dostupne opcije su 30%, 40%, 50%, 60%, 66%, 70%, 80% i

90%.

Class attribute index – označava indeks klasifikacijskog atributa. Indeksi počinju

od 1.

Purity threshold – označava koja vrijednost entropije je zadovoljavajuća, odnosno

ako je entropija manja ili jednaka zadanoj neće se raditi podjela.

Attribute selection strategy – označava koju strategiju je potrebno koristiti pri

odabiru atributa po kojem će se čvor dijeliti. Dostupne opcije su:

GAIN – informacijska dobit

GAIN_RATIO – omjer dobiti

Unknown atribute selection strategy – označava koju strategiju treba iskoristiti

ako se naiđe na atribute s nepoznatim vrijednostima. Dostupne opcije su:

SKIP – ignorira primjere s nepoznatim vrijednostima aributa

SPLIT – dijeli primjere s nepoznatom vrijednosti atributa na dijelove kako je

opisano u poglavlju 3.II.

Pruning – označava je li potrebno podrezivati stablo. Podrezivanje se odvija nakon

što je stablo napravljeno zamjenom podstabla.

Minimum node size – označava koja je minimalna veličina čvora. Broj može biti

bilo koji pozitivan i realan jer je moguća da se čvor sastoji od djelomičnih primjera.

Page 18: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

18

Pritiskom na gumb Load otvara se prozor u kojem se odabire ulazna datoteka, a po

odabiru algoritam se automatski uči s danim postotkom primjera i nad ostatkom

provodi predviđanje i provjeru uspješnosti. Kada je operacija završena u centralnom

djelu ekrana prikazuje se izvješće, a na standardnom izlazu se ispisuje nastalo

stablo. Slika 3 prikazuje dio takvog ispisa.

Slika 3: Ispis stvorenog stabla na standardnom izlazu

Ukoliko parametri konfiguracije nisu ispravno unešeni ispisuje se poruka na

standardnom izlazu za pogreške i korisnik može podatke korigirati i ponovo odabrati

datoteku.

Ulazna datoteka treba formatirana tako da prvi red sadrži opis atributa odvojenih

jednim ili više praznih znakova. Atribut može biti „nom“ ako je nominalan ili „num“

ako se radi o numeričkom atributu.

Nakon toga slijede primjeri, svaki u novom redu. Oni se sastoje od vrijednosti

atributa međusobno odvojenih jednim ili više praznih znakova. Nepoznat atribut

označava se znakom upitnika „?“.

Page 19: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

19

II. Implementacijski detalji

Dio programa koji komunicira s korisnikom kroz grafičko sučelje, postavlja

konfiguracijske parametre i zadužen je za otvaranje datoteke nalazi se unutar

razreda DecisionTree.

Primjeri su modelirani objektima razreda Instance, a za stvaranje primjeraka ovog

razreda dostupan je i razred tvornica InstanceFactory koji u svom konstruktoru

prima opis atributa kao polje AttributeType enumeracija. Pozivom metode

newInstance(String) tvornica obrađuje predani String objekt te stvara novu

instancu s odgovarajućim atributima i vrijednostima.

Atribut je modeliran apstraktnim razredom Attribute koji pamti zastavicu je li

nepoznat i definira metodu za dohvat vrijednosti getValue(). Ova metoda vraća

primjerak razreda Object s obzirom da različite vrste atributa vraćaju različite

tipove objekata kao svoju vrijednost.

Numerički atribut, primjerak razreda NumericalAttribute, kao i nominalni,

primjerak razreda NominalAttribute, nasljeđuje razred Attribute.

Primjeri su dio čvorova koji su modelirani razredom Node. Glavne operacije koje

čvor omogućava su createTree() koja stvara podstablo ispod sebe, prune() koja

podrezuje podstablo i findInstanceClass(Instance) koja za predan primjer predviđa

kojoj klasi pripada. Za određivanje pripadnosti čvoru svaki čvor ima jednu instancu

funkcijskog sučelja Predicate kojim provjerava ima li primjer odogovarajuću

vrijednost atributa da spada u taj čvor. Ako je čvor list ili primjer nije moguće smjestiti

niti u koji čvor dijete predviđena vrijednost koja se vraća je najzastupljenija vrijednost

klasifikacijskog atributa ovog čvora.

Algoritam je modeliran sučeljem Algorithm, a konkretna implementacija je unutar

razreda DecisionTreeAlgorithm. Sučelje definira dvije metode koje algoritmi

moraju znati, to su fit(Collection<Instance>, AttributeType[]) koja označava fazu

učenja i predict(Instance) koja predviđa.

Page 20: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

20

Konfiguracijski paramteri su smješteni kao statičke vrijednosti unutar razreda

Configuration. Uz njega u podpaketu config nalazi se i nekoliko enumeracija

koje se koriste za prikaz vrijednosti konfiguracije.

Pomoć implementaciji je u podpaketima collection i utility.

Unutar podpaketa collection nalazi se generični razred CounterMap koji broji

zastupljenost objekata u obliku primjeraka MutableDouble razreda, koji je također

smješten u taj podpaket.

Razred Utility iz podpaketa utility sadrži niz metoda za izračunavanje

distribucija, entropija i dobitaka te nekoliko korisnih metoda za lijepi ispis brojčanih

vrijednosti. U istom paketu nalazi se i razred ListRandomizer koji je korišten pri

testiranju za slučajno ispremješanje lista primjera.

Page 21: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

21

5. Performanse i usporedba s postojećim rješenjima

Impementirani algoritam testiran je na dva skupa podataka i rezultati su uspoređeni

sa perfomansama Java implementacije C4.5 algoritma J48 u sklopu programskog

paketa Weka koji je razvijen na Sveučilištu Waikato na Novom Zelandu.

I. Vrednovanje rezultata

Algoritmi stabla odluke rade s dva skupa primjera, za učenje i predviđanje. Kada je

dostupan jedan skup s primjerima najjednostavniji pristup korištenju istog za obje

ove zadaće je podijeliti ga u nekom omjeru na dva dijela. Ova podjela predstavlja

problem pri utvrđivanju uspješnosti jer je moguće da slučajna podjela u istom

omjeru, ali sa drugačijim rasporedom primjera, rezultira značajno različitim

ishodima. Iz tog razloga potrebno je testiranje provesti više puta sa slučajno

ispremješanim primjerima kako bi se dobila pouzdanija ocjena uspješnosti.

U okviru ovog rada svako testiranje provedeno je koristeći 5 slučajno generiranih

permutacija istog skupa podataka.

Dodatna mogućnost pri vrednovanju je primjena križne validacije (engl. cross

validation). Iza nje je ideja da se skup podataka podijeli na particije i s različitim

particijima više puta provodi učenje i predviđanje.

Na primjer, ako se uzme 66% primjera za učenje, skup se može podijeliti na tri

particije i provodi se testiranje tako da se algoritam pokrene tri puta pri čemu je

uvijek različita particija ona čiji se primjeri klasificiraju, dok se druga dva koriste za

učenje. Ova metoda osigurava da su svi primjeri jednom bili predviđani pa daje

poprilično dobru ocjenu uspješnosti. Mana je da izabiranjem nezgodnog postotka

stvara velik broj particija i kombinacija koji se mora isprobati što za probleme s

velikim količinama primjera može uzeti mnogo vremena i drugih resursa.

Page 22: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

22

Postoji niz mjera kojima se može ocjeniti algoritam stabla odluke. U ovom radu

navedena su i upotrebljena četiri najkorištenija.

Klasifikacijska točnost

Klasifikacijska točnost označava omjer primjera kojima je točno predviđena klasa i

ukupnog broja primjera. Ovaj omjer množi se sa 100 kako bi se dobila vrijednost u

postocima.

𝑇𝑜č𝑛𝑜𝑠𝑡 = 𝐵𝑟𝑜𝑗 𝑖𝑠𝑡𝑖𝑛𝑖𝑡𝑖ℎ 𝑝𝑟𝑒𝑑𝑣𝑖đ𝑎𝑛𝑗𝑎

𝐵𝑟𝑜𝑗 𝑝𝑟𝑖𝑚𝑗𝑒𝑟𝑎∗ 100 [%]

Klasifikacijska preciznost

Često pogrešno predviđanje klase nije jednako loše za sve klase. Uzmemo li za

primjer požarni alarm koji svake sekunde uzima podatke iz raznih senzora i na

temelju njih odlučuje treba li oglasiti alarm, zasigurno lažna dojava predstavlja

manju štetu nego izostanak dojave ako je stvarno požar.

Iz tog razloga uvode se druge mjere poput klasifikacijske preciznosti koja daje

detaljniji uvid u točnost po vrijednostima koje klasifikacijski atribut može poprimiti.

Za izračun je potrebno najprije za svaki klasifikacijski atribut odrediti broj istinitih i

neistinith predviđanja.

Preciznost za vrijednost klasifikacijskog atributa 𝑉 izračunava se po formuli:

𝑃𝑟𝑒𝑐𝑖𝑧𝑛𝑜𝑠𝑡(𝑉) = 𝐵𝑟𝑜𝑗 𝑖𝑠𝑡𝑖𝑛𝑖𝑡𝑖ℎ 𝑝𝑟𝑒𝑑𝑣𝑖đ𝑎𝑛𝑗𝑎

𝐵𝑟𝑜𝑗 𝑖𝑠𝑡𝑖𝑛𝑖𝑡𝑖ℎ 𝑝𝑟𝑒𝑑𝑣𝑖đ𝑎𝑛𝑗𝑎 + 𝐵𝑟𝑜𝑗 𝑛𝑒𝑖𝑠𝑡𝑖𝑛𝑖𝑡𝑖ℎ 𝑝𝑟𝑒𝑑𝑣𝑖đ𝑎𝑛𝑗𝑎

𝑃𝑟𝑒𝑐𝑖𝑧𝑛𝑜𝑠𝑡 ∈ [0, 1]

Što je preciznost veća, algoritam je bolji. Loša preciznost za neku vrijednost atributa

označava da za atribut postoji velik broj neistinitih predviđanja pa bi u primjeru s

požarnim alaramom bilo važno proučiti preciznost za vrijednost koja označava da je

požar nastupio.

Page 23: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

23

Osjetljivost (engl. Recall)

Osjetljivost je mjera koja predstavlja potpunost postupka klasifikacije. Što je

osjetljivost veća, algoritam je bolji. Osjetljivost za vrijednost klasifikacijskog atributa

𝑉 izračunava se po formuli:

𝑂𝑠𝑗𝑒𝑡𝑙𝑗𝑖𝑣𝑜𝑠𝑡(𝑉) = 𝐵𝑟𝑜𝑗 𝑖𝑠𝑡𝑖𝑛𝑖𝑡𝑖ℎ 𝑝𝑟𝑒𝑑𝑣𝑖đ𝑎𝑛𝑗𝑎

𝐵𝑟𝑜𝑗 𝑝𝑟𝑖𝑚𝑗𝑒𝑟𝑎 𝑘𝑜𝑗𝑖 𝑖𝑚𝑎𝑗𝑢 𝑣𝑟𝑖𝑗𝑒𝑑𝑛𝑜𝑠𝑡 𝑉

𝑂𝑠𝑗𝑒𝑡𝑙𝑗𝑖𝑣𝑜𝑠𝑡 ∈ [0, 1]

F1 mjera

F1 mjera predstavlja balans između točnosti i potpunosti klasifikacije. Za vrijednost

klaifikacijskog atributa 𝑉 izračunava se po formuli:

𝐹1(𝑉) = 2 ∗ 𝑃𝑟𝑒𝑐𝑖𝑧𝑛𝑜𝑠𝑡(𝑉) ∗ 𝑂𝑠𝑗𝑒𝑡𝑙𝑗𝑖𝑣𝑜𝑠𝑡(𝑉)

𝑃𝑟𝑒𝑐𝑖𝑧𝑛𝑜𝑠𝑡(𝑉) + 𝑂𝑠𝑗𝑒𝑡𝑙𝑗𝑖𝑣𝑜𝑠𝑡(𝑉)

𝐹1 ∈ [0, 1]

Kao i kod drugih mjera, veća vrijednost označava bolji rezultat.

Page 24: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

24

II. Skup podataka odobrenje kredita

Skup podataka je jedan od predložaka koji dolazi uz instalaciju programskog paketa

Weka. Skup je objavio Dr. Hans Hofmann sa Sveučilišta u Hamburgu u Njemačkoj,

a odnosi se na odobrenje ili odbitak kredita ovisno o raznim parametrima vezanim

za kredit i osobu koja ga je zatražila.

Skup primjera sastavljen je od 20 atributa od kojih su 7 numeričkih i 13 nominalnih.

Klasifikacijski atribut (21.) može poprimiti dvije vrijednosti, bad ili good, ovisno o

tome je li zatraženi kredit dobar i treba li ga banka odobriti.

U tablici 1 je popis naziva i tipova atributa te broj vrijednosti koje može poprimiti.

Tablica 1: Popis atributa skupa odobrenje kredita

Redni broj Tip

(NUM – numerički, DIS- diskretni)

Naziv Broj mogućih

vrijednosti

1. DIS Trenutno stanje računa 4

2. NUM Trajanje kredita, u mjesecima *

3. DIS Prethodni krediti 5

4. DIS Namjena 11

5. NUM Iznos kredita *

6. DIS Posjedovanje štednje/dionica 5

7. DIS Staž kod trenutnog poslodavca 5

8. NUM Postotak prihoda koji je moguće izdvajati *

9. DIS Osobni status i spol 5

10. DIS Jamci / drugi sudionici u kreditu 3

11. NUM Duljina života u mjestu prebivališta (u godinama) *

12. DIS Posjedovanje nekretnine 5

13. NUM Starost (u godinama) *

14. DIS Način isplate 3

15. DIS Vlastita nekretnina / iznajmljivanje / život kod

nekoga 3

16. NUM Broj kartica u ovoj banci *

17. DIS Zaposlenje 4

18. NUM Broj uzdržavanih osoba *

19. DIS Posjedovanje mobitela 2

20. DIS Strani radnik 2

21. DIS Kredit je dobar 2

Page 25: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

25

Dani skup podataka sastoji se od 1000 primjera među kojima nema primjera s

nepoznatim vrijednostima. Najprije je na jednom skupu podataka proveden

algoritam s različitim parametrima kako bi se utvrdilo kakvu točnost algoritam

postiže. Pokazalo se da postavljanje minimalne veličine entropije i podrezivanje nisu

imali većih utjecaja na rezultate pa su ti parametri izostavljeni. Rezultati su prikazani

u tablici 2.

Tablica 2: Testiranje parametara algoritma

Računanje dobitka Minimalna veličina

čvora Postotak primjera za

učenje Točnost

Informacijska dobit

5

50% 68.40%

66% 69.71%

90% 63.00%

10

50% 70.60%

66% 73.53%

90% 71.00%

15

50% 72.00%

66% 74.41%

90% 73.00%

Omjer dobiti

5

50% 63.20%

66% 65.00%

90% 70.00%

10

50% 70.00%

66% 75.00%

90% 75.00%

15

50% 70.00%

66% 73.82%

90% 70.00%

Iz tablice 2 vidljivo je da algoritam postiže nešto bolje rezultate ako se za odabir

atributa iskoristi omjer dobiti pa to predstavlja bolju opciju za provođenje testiranja.

Također se primjećuje da ograničavanje broja primjera koji mogu biti u jednom čvoru

pozitivno djeluje na rezultate, odnosno rezultati su svi preko 70% ako se odabere

10 ili 15. Što se tiče postotka, slični rezultati se postižu s 66% i 90%, ali čini se boljim

izabrati manji skup za učenje jer to daje bolji uvid u performanse algoritma s obzirom

da je dostupno više primjera za predviđanje.

Page 26: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

26

Stoga su sljedeće opcije odabrane za izvođenje algoritma:

Postotak primjera za učenje – 66%

Minimalna entropija – 0.0

Strategija odabira atributa – omjer dobiti

Podrezivanje – uključeno

Minimalna veličina čvora - 25

Provođenjem algoritma na 5 slučajno ispremješanih skupova primjera dalo je

rezultate koji su prikazani u tablici 3. Usporedba s J48 implementacijom dana je u

tablci 4. Vidljivo je algoritmi postižu veoma slične rezultate. Gledajući mjere osim

samo točnosti može se uočiti relativno slab rezultat na klasi bad što predstavlja

problem jer je upravo neispravan odabir te klase štetniji za banku koja bi koristila

ovaj algoritam kao smjernicu za odobrenje kredita.

Page 27: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

27

Tablica 3: Rezultati testiranja vlastite implementacije na skupu odobrenje kredita

Tablica 4: Usporedba rezultata testiranja na skupu odobrenje kredita

Vrijednost klasifikacijskog atributa Mjera Vlastita implementacija J48/Weka

bad

Preciznost 0.51 0.60

Osjetljivost 0.40 0.36

F1 0.45 0.45

good

Preciznost 0.78 0.73

Osjetljivost 0.84 0.88

F1 0.80 0.80

Točnost 71.35% 72.24%

Vrijednost klasifikacijskog atributa

Mjera Redni broj slučajnog rasporeda primjera u skupu Izmjerena

vrijednost Standardna devijacija 1 2 3 4 5

bad Preciznost 0.58 0.53 0.54 0.48 0.42 0.51 0.06164

Osjetljivost 0.44 0.36 0.44 0.46 0.31 0.40 0.06419

F1 0.5 0.43 0.48 0.47 0.36 0.45 0.05541

good

Preciznost 0.8 0.74 0.76 0.79 0.79 0.78 0.02510

Osjetljivost 0.87 0.85 0.82 0.8 0.85 0.84 0.02775

F1 0.83 0.79 0.79 0.79 0.82 0.80 0.01949

Točnost 75.00% 69.71% 70.00% 70.29% 71.76% 71.35% 2.19%

Page 28: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

28

III. Skup podataka vrsta stakla

Skup podataka je originalno prikupila dr.sc. Vina Speihler iz Američkog odbora

forenzičkih toksikologa (American Board of Forensic Toxicologists - ABFT) u svrhu

klasifikacije tipa stakla ovisno o njegovom indeksu loma i prisutnosti određenih

kemijskih elemenata korištene u kriminalističkim istragama. Skup se sastoji od devet

atributa prikazanih u tablici 5.

Tablica 5: Atributi skupa podataka vrsta stakla

Redni broj Tip Naziv Broj mogućih

vrijednosti

1 NUM Indeks loma *

2 NUM Prisutnost Na *

3 NUM Prisutnost Mg *

4 NUM Prisutnost Al *

5 NUM Prisutnost Si *

6 NUM Prisutnost K *

7 NUM Prisutnost Ca *

8 NUM Prisutnost Ba *

9 NUM Prisutnost Fe *

10 DIS Tip stakla 7

Algoritam je u testiranju pokretan sa sličnim parametrim kao i na prethodnom skupu,

jedina promjena je minimalna veličina čvora koja je postavljena na 1 jer je skup

relativno malen. Za atribute se nepoznatim vrijednostima uzeta je strategija podjele

opisana u poglavlju 3.II.

Konačni rezultati uspoređeni s J48 implementacijom dani su u tablici 5. Može se

uočiti da su perfomanse J48 nešto slabije s obzirom da ta implementacija ignorira

primjere s nepoznatim vrijednostima atributa pri izračunu (ponašanje originalnog

C4.5).

Page 29: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

29

Tablica 6: Usporedba rezulata testiranja na skupu vrsta stakla

Vrijednost klasifikacijskog atributa Mjera Vlastita implementacija J48/Weka

build wind float

Preciznost 0.55 0.53

Osjetljivost 0.57 0.60

F1 0.56 0.56

build wind non-float

Preciznost 0.71 0.73

Osjetljivost 0.54 0.50

F1 0.61 0.59

vehic wind float

Preciznost 0.30 0.33

Osjetljivost 0.60 0.25

F1 0.40 0.29

containers

Preciznost 0.67 0.50

Osjetljivost 0.80 0.50

F1 0.73 0.50

tableware

Preciznost 1.00 0.25

Osjetljivost 1.00 0.50

F1 1.00 0.33

headlamps

Preciznost 0.89 0.59

Osjetljivost 0.89 0.91

F1 0.89 0.58

Točnost 63.89% 57.53%

Page 30: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

30

6. Zaključak

Problemi klasifikacije koje se nalazi na raznim poljima pogodno je rješavati

algoritmima strojnog učenja. Napose se ističu algoritmi stabla odluke koji na temelju

primjera s poznatim atributima i klasom stvaraju stablastu strukturu, djeleći pritom

skup primjera u podskupove s ciljem povećanja znanja o klasi svakog podskupa.

Nakon te prve faze, faze učenja, odeđivanje nepoznate klase neviđenog primjera

svodi se na smještanje u odgovarajući list stabla.

Temeljni problem u fazi učenja predstavlja odabir atributa na temelju kojeg se

skupovi djele, odnosno vrednovanje svake te moguće podjele. Rješenje ovog

problema nalazi se na polju teorije informacije u vidu entropije – veličine koja

predstavlja nesigurnost u klasu slučajno odabranog primjera iz skupa. Na temelju

nje moguće je izvesti informacijski dobitak podjele po svakom atributu i izabrati

atribut koji donosi najveći dobitak. Dodatno, neželjeno svojstvo izabiranja atributa s

podjelom na velik broj čvorova kompenzira se uzimanjem u obzir i entropije same

podjele, čime se izvodi omjer dobitka koji predstavlja iznimno koristan kriterij pri

podjelama. Opisan postupak ostvaren je u algoritmu ID3.

Međutim u stvarnim skupovima podataka nailazi se na niz dodatnih problema koji

iziskuju dodatna poboljšanja koja su ostvarena u njegovom nasljedniku, algoritmu

C4.5, čija je implementacija izrađena u okviru ovog rada. Poboljšanja se odnose na

rad s numeričkim atributima, uzimanje u obzir primjera čije su vriednosti nekih

atributa nepoznate, podrezivanje i prestanak grananja pri dovoljno dobrom stablu s

ciljem izbjegavanja prenaučenosti stabla.

U provedenim testiranjima algoritam je po točnosti, preciznosti, osjetljivosti i F1 mjeri

pokazao rezulatate na razini postojeće implementacije s kojom je uspoređen.

Page 31: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

31

7. Literatura

1) Data Mining, H.Witten, E.Frank, M. A. Hall, 2011

2) Machine Learning, T. Mitchell, 1997.

3) Classification Accuracy is Not Enough: More Performance Measures You

Can Use, Jason Brownlee, 21.02.2014.,

https://machinelearningmastery.com/classification-accuracy-is-not-enough-

more-performance-measures-you-can-use/

4) Data Mining: Practical Machine Learning Tools and Techinques,

https://www.cs.waikato.ac.nz/~ml/weka/book.html

5) Weka 3: Data Mining Software in Java,

https://www.cs.waikato.ac.nz/~ml/weka/index.html

6) How to Evaluate Machine Learning Algorithms, Jason Brownlee,

27.12.2013., https://machinelearningmastery.com/how-to-evaluate-

machine-learning-algorithms/

7) Machine Learning: Neural and Statistical Classification, D. Michie, D.

Spiegelhalter, C. Taylor, 2009.

8) Pruning decision trees and lists, Elbe Frank, Sveučilište Waikato, 2000.

9) How decision tree algorithm works, R. Saxena, 30.01.2017.,

http://dataaspirant.com/2017/01/30/how-decision-tree-algorithm-works/

10) UCI Machine Learning Repository, http://archive.ics.uci.edu/ml/index.php

11) Wikipedia, 12.06.2018., Precision and recall,

https://en.wikipedia.org/wiki/Precision_and_recall

Page 32: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

32

Implementacija i vrednovanje algortima za izgradnju stabla odluke C4.5

U ovom radu iznesen je osnovni princip rada algoritma stabla odluke te su objašnjeni

ključni koncepti koji se koriste pri izgradnji uspješnog stabla odluke na razini

algorimta ID3. Na to je prezentiran i niz nadogradnji koji je implementiran u

njegovom nasljedniku, algoritmu C4.5, koje uključuju rad s numeričkim atributima,

nošenje s nepoznatim vrijednostima te postupke koji povećavaju općenitost stabla

poput prestanka grananja prije nego su svi atributi poznati i podrezivanje. Opisana

je i testirana ponuđena implementacija na dva skupa podataka koji su dali dobar

uvid u sposobnosti implementiranog rješenja.

Ključne riječi:

Umjetna inteligencija, problem klasifikacije, strojno učenje, stabla odluke, ID3, C4.5,

vrednovanje klasifikatora, točnost, preciznost, osjetljivost, F1 mjera

Page 33: Implementacija i vrednovanje algoritma za izgradnju stabla ... · U ovom radu najprije je pojašnjen osnovni mehanizam rada algoritma stabla odluke koji je na razini algoritma ID3,

33

Implementation and evaluation of C4.5 decision tree algorithm

Contains basic principle behind decision tree algorithm as well as an introduction to

key concepts used when building a successful decision tree on level of ID3

algorithm. On top of that a series of enhancements are presented that are

implemented in its succesor, C4.5 algorithm. These include working with numerical

values, handling unknown data and various procedures used to generalize trees,

such as pruning and stoping tree development earlier than when all attributes are

used up. A description and a comperhensive test of the developed implementation

is also included giving a good insight in the capabilites of the provided solution.

Key words:

Artificial intelligence, classification problem, machine learning, decision tree, ID3,

C4.5, classifier evaluation, accuracy, precision, recall, F1 measure