Minimizacija učne množice pri učenju odločitvenih dreves

Similar documents
Reševanje problemov in algoritmi

Multipla korelacija in regresija. Multipla regresija, multipla korelacija, statistično zaključevanje o multiplem R

OSNOVE UMETNE INTELIGENCE

Attempt to prepare seasonal weather outlook for Slovenia

Iskanje najcenejše poti v grafih preko polkolobarjev

OFF-LINE NALOGA NAJKRAJŠI SKUPNI NADNIZ

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Verjetnostni algoritmi za testiranje praštevilskosti

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE

Domen Perc. Implementacija in eksperimentalna analiza tehnike razvrščanja podatkov s konsenzom

Linearna regresija. Poglavje 4

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA POLONA ŠENKINC REŠEVANJE LINEARNIH DIFERENCIALNIH ENAČB DRUGEGA REDA S POMOČJO POTENČNIH VRST DIPLOMSKO DELO

AKSIOMATSKA KONSTRUKCIJA NARAVNIH

TOPLJENEC ASOCIIRA LE V VODNI FAZI

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. O neeksaknotsti eksaktnega binomskega intervala zaupanja

NIKJER-NIČELNI PRETOKI

SVM = Support Vector Machine = Metoda podpornih vektorjev

UPORABA STROJNEGA UČENJA PRI ANALIZI VREDNOSTNIH PAPIRJEV

OPTIMIRANJE IZDELOVALNIH PROCESOV

Hipohamiltonovi grafi

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE

ENAČBA STANJA VODE IN VODNE PARE

Hibridizacija požrešnih algoritmov in hitrega urejanja

Grafični gradnik za merjenje kvalitete klasifikatorja s pomočjo krivulj

Chapter 4.5 Association Rules. CSCI 347, Data Mining

Uvod v odkrivanje znanj iz podatkov (zapiski predavatelja, samo za interno uporabo)

Modelska Analiza 1. University of Ljubljana Faculty of Mathematics and Physics. 3. naloga - Numeri na minimizacija

OPTIMIZACIJSKE METODE skripta v pripravi

OA07 ANNEX 4: SCOPE OF ACCREDITATION IN CALIBRATION

1 Luna kot uniformni disk

1) V diagramu sta prikazana plazemska koncentracijska profila po večkratnem intravenskem odmerjanju učinkovine v dveh različnih primerih (1 in 2).

USING SIMULATED SPECTRA TO TEST THE EFFICIENCY OF SPECTRAL PROCESSING SOFTWARE IN REDUCING THE NOISE IN AUGER ELECTRON SPECTRA

Problem umetnostne galerije

UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO. Filip Urh DINAMIČNI PARALELIZEM NA GPE.

Izvedbe hitrega urejanja za CPE in GPE

UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO. Oddelek za matematiko in računalništvo DIPLOMSKO DELO.

Ekstrakcija časovnega znanja iz dogodkov v spletnih novicah

Katastrofalno zaporedje okvar v medsebojno odvisnih omrežjih

Dejan Petelin. Sprotno učenje modelov na podlagi Gaussovih procesov

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Ekstremne porazdelitve za odvisne spremenljivke

Iterativne metode podprostorov 2010/2011 Domače naloge

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA SAŠO ZUPANEC MAX-PLUS ALGEBRA DIPLOMSKO DELO

Statistika 2 z računalniško analizo podatkov. Neizpolnjevanje predpostavk regresijskega modela

Cveto Trampuž PRIMERJAVA ANALIZE VEČRAZSEŽNIH TABEL Z RAZLIČNIMI MODELI REGRESIJSKE ANALIZE DIHOTOMNIH SPREMENLJIVK

INTELLIGENTNI SISTEMI Mehka Logika

DELOVANJA GRUP IN BLOKI NEPRIMITIVNOSTI

Stiskanje slik z algoritmi po vzorih iz narave

ODKRIVANJE TEMATIK V ZAPOREDJU BESEDIL IN SLEDENJE NJIHOVIM SPREMEMBAM

PROBLEM SIMETRIČNEGA TRGOVSKEGA POTNIKA IN OPTIMIZACIJA Z GENETSKIMI ALGORITMI

Jernej Azarija. Štetje vpetih dreves v grafih

OPTIMIZACIJA Z ROJEM DELCEV

Bayesove verjetnostne mreže

Zgoščevanje podatkov

DOMINACIJSKO TEVILO GRAFA

ENERGY AND MASS SPECTROSCOPY OF IONS AND NEUTRALS IN COLD PLASMA

Modeliranje časovnih vrst z metodami teorije informacij

Matematika 1. Gabrijel Tomšič Bojan Orel Neža Mramor Kosta

Verifikacija napovedi padavin

Univerza v Ljubljani Fakulteta za matematiko in fiziko. Oddelek za fiziko. Seminar - 3. letnik, I. stopnja. Kvantni računalniki. Avtor: Tomaž Čegovnik

Spletni sistem za vaje iz jezika SQL

modeli regresijske analize nominalnih spremenljivk

Metode umetne inteligence

Eulerjevi in Hamiltonovi grafi

Calculation of stress-strain dependence from tensile tests at high temperatures using final shapes of specimen s contours

TEORIJA GRAFOV IN LOGISTIKA

Particija grafa, odkrivanje skupnosti in maksimalen prerez

Baroklina nestabilnost

Katja Tuma Generiranje in reševanje sudokuja

KLASIFIKACIJA NAIVNI BAJES. NIKOLA MILIKIĆ URL:

Izmenični signali moč (17)

Zbornik seminarjev iz hevristik

The Solution to Assignment 6

Topološka obdelava slik

FRAKTALNA DIMENZIJA. Fakulteta za matematiko in fiziko Univerza v Ljubljani

Univerza na Primorskem. Fakulteta za matematiko, naravoslovje in informacijske tehnologije. Zaznavanje gibov. Zaključna naloga

Data classification (II)

Miha Troha. Robotsko učenje in planiranje potiskanja predmetov

Matej Mislej HOMOMORFIZMI RAVNINSKIH GRAFOV Z VELIKIM NOTRANJIM OBSEGOM

Miha Sedej. Analiza lastnosti pločevine z metodami podatkovnega rudarjenja

arxiv: v1 [cs.dm] 21 Dec 2016

UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO. Algoritmi in podatkovne strukture 2 Visokošolski strokovni program (zapiski vaj)

Hadamardove matrike in misija Mariner 9

Preprečevanje neizvedljivosti urnikov pri metahevrističnem razvrščanju proizvodnih procesov

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Kromatično število in kromatični indeks grafa

Rudarjenje razpoloženja na komentarjih rtvslo.si

Rule Generation using Decision Trees

IZPELJANKE ALGORITMA LZW

ACTA BIOLOGICA SLOVENICA LJUBLJANA 2012 Vol. 55, [t. 1: 29 34

JEDRSKA URA JAN JURKOVIČ. Fakulteta za matematiko in fiziko Univerza v Ljubljani

UNIVERZA V LJUBLJANI FAKULTETA ZA MATEMATIKO IN FIZIKO ODDELEK ZA MATEMATIKO

Razpoznavanje znakov prstne abecede na osnovi računalniškega vida

R V P 2 Predavanje 05

POLDIREKTNI PRODUKT GRUP

Introduction of Branching Degrees of Octane Isomers

Simulation of multilayer coating growth in an industrial magnetron sputtering system

PRIPRAVA PODATKOV V PROCESU PODATKOVNEGA RUDARJENJA

Aritmetične operacije v logaritemskem številskem sistemu

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Kvadratne forme nad končnimi obsegi

Teorija verjetnosti uvod. prof. dr. Jurij Tasič Asistent Emil Plesnik Laboratorij za digitalno obdelavo signalov, slik in videa

UČNI NAČRT PREDMETA / COURSE SYLLABUS. Študijska smer Study field. Samost. delo Individ. work Klinične vaje work

Projektovanje paralelnih algoritama II

Transcription:

Univerza v Ljubljani Fakulteta za računalništvo in informatiko Ivan Štajduhar Minimizacija učne množice pri učenju odločitvenih dreves Diplomska naloga Mentor: prof. dr. Ivan Bratko Ljubljana, 2001

Izjava o samostojnosti dela Izjavljam, da sem diplomsko nalogo izdelal samostojno pod mentorstvom prof. dr. Ivana Bratka. Sodelavce, ki so mi pri delu pomagali, sem navedel v zahvali.

Zahvala Zahvaljujem se mentorju prof. dr. Ivanu Bratku za strokovne nasvete in priporočila pri izdelavi diplomske naloge. Zahvaljujem se tudi svojim staršem in vsem, ki so mi med študijem stali ob strani.

Diplomska naloga Kazalo 1. Uvod...6 2. Predstavitev problema...10 2.1. Kako dobimo drevo...10 2.2. Odvzemanje primerov iz učne množice...11 2.3. Reševanje problema...13 3. Algoritmi...15 3.1. Splošni podatki o algoritmih...17 3.2. Podatki o poskusih na naključnih učnih množicah...18 3.3. Osnovni algoritem...23 3.4. Dodajanje primerov...25 3.5. Naključna izbira n primerov...27 3.6. Izbira primerov iz listov...31 3.7. Povečevanje razlik...34 3.8. Hibridna metoda...41 3.9. Primerjava metod...46 4. Testiranje algoritmov na realnih učnih množicah...48 4.1. Mushroom database...49 4.2. Monk's problems...50 4.3. Medicinski podatki...53 5. Sklep...56 Priloge...59 Seznam uporabljenih virov...68 1

Minimizacija učne množice pri učenju odločitvenih dreves 2

Diplomska naloga Povzetek V diplomski nalogi sem poskušal prikazati metodo za iskanje čim manjše podmnožice dane učne množice, za katero bi bil klasifikator enak klasifikatorju, dobljenemu iz dane učne množice. Pri iskanju metode sem se omejil na klasifikatorje v obliki neporezanih odločitvenih dreves. Razvil sem vrsto postopkov oz. algoritmov za izbiro optimalne podmnožice učne množice. Vsi algoritmi, ki sem jih obdelal, se nanašajo samo na neporezana odločitvena drevesa in, zato, rezultati te diplome niso neposredno uporabni na realnih šumnih podatkih. Z naključno generiranimi učnimi množicami sem testiral vsak postopek posebej in na koncu sem primerjal rezultate posameznih postopkov med seboj. Na osnovi primerjav posameznih postopkov sem prišel do najboljše metode, ki je sestavljena iz teh postopkov. Prva metoda osnovni algoritem, je metoda ki vedno zagotavlja optimalno rešitev, vendar je v praksi težko uporabna, ker je za večje probleme časovno nesprejemljiva. Že za nekaj sto primerov je potrebnih več dni izračunavanja na navadnemu računalniku (CPU 1,2 GHz). Za večje učne množice potrebujemo neko metodo lokalne optimizacije. Predlagam uporabo hibridne metode, ker je pokazala najboljše rezultate na testnih učnih množicah ( 2% odstopanja od optimuma). Vsi postopki lokalne optimizacije, ki sem jih obdelal, so se pokazali kot zelo hitri, tako da že v nekaj sekundah pridemo do dobrega rezultata (hitrost izračuna je seveda odvisna od kompleksnosti učne množice). Pri nadaljnjem iskanju možnih algoritmov mi ni uspelo izdelati hitrega algoritma, ki bi zagotavljal optimum. Na testnih učnih množicah sem dosegel dobre rezultate za skoraj vse metode. V povprečju mi je uspelo zmanjšati učne množice do samo nekaj odstotkov začetne velikosti. Najboljšo metodo sem poskusil tudi na realnih učnih množicah in prišel sem do naslednjih povprečnih rezultatov za privzete vrednosti, nastavljivih parametrov (odstotki predstavljajo relativno velikost minimizirane učne množice, glede na velikost dane učne množice): mushroom database 3,8% ( 3% odstopanje od optimuma), monk's problems (1) 51,1% ( 6% odstopanje od optimuma), (2) 100% ( 32% odstopanje od optimuma), (3) 32% ( 7,5% odstopanje od optimuma) in medicinski podatki (1) limfografija 100% ( 46% odstopanje od optimuma), (2) primarni tumor 100% ( 16% odstopanje od optimuma). Omenjena odstopanja od optimuma so približna, ker so bila dobljena kot najboljše rešitve kombiniranja različnih hevrističnih metod in so blizu optimuma. Rezultati na vseh realnih množicah so dobljeni za 200 iteracij. Pri izvajanju poskusov sem prišel do nekaterih zanimivih ugotovitev v zvezi z obnašanjem klasifikatorja glede na strukturo in velikost učne množice. Velika učna množica je manj občutljiva za izločanje primerov kot majhna učna množica. Mera občutljivosti učne množice na reduciranje je določena z razmerjem med vsoto minimalnih porazdelitev listov in velikostjo učne množice. Glede na to bi bila za reduciranje najboljša učna množica z nekaj tisoč primeri in samo z nekaj listov drevesa. Na strukturo odločitvenega drevesa vpliva več 3

Minimizacija učne množice pri učenju odločitvenih dreves faktorjev, ki se z spreminjanjem učne množice tudi sami spreminjajo - pogosto zelo nepredvidljivo. Najbolj dinamična je ocena preostale informacije (največja nihanja), dokler je najbolj vpliven faktor ocena verjetnosti, ko primer pade v določeno vejo nekega vozlišča drevesa. Zato se je kot najboljša izkazala metoda, ki izbira primere za izločanje na osnovi pripadnosti primera listu drevesa tako, da se razmerje med listi drevesa ohrani. Zanimiva je tudi ugotovitev, da je absolutni minimum primerov za ohranjanje strukture drevesa enak vsoti minimalnih porazdelitev listov. Običajno obstaja optimum za število primerov, ki je nekoliko večje od absolutno potrebne. 4

5 Diplomska naloga

Minimizacija učne množice pri učenju odločitvenih dreves 1. Uvod V diplomski nalogi sem poskušal poiskati metode za zmanjšanje velikosti množice učnih primerov, iz katere s pomočjo učnega algoritma, ustvarjamo neko znanje. To naj bi prispevalo k boljšemu razumevanju obnašanja odločitvenih dreves na osnovi sprememb na učni množici. Ker ljudje lažje dojamejo manjše učne množice, bi se te lahko uporabljale kot eden od enostavnejših načinov učenja. Na primeru učne množice weather data [6] bom pokazal kako naj bi zmanjševanje učnih množic delovalo in kako naj bi pripomoglo k hitrejšemu učenju. Učna množica weather data vsebuje 14 primerov, ki so podani v tabeli 1.1. Vsak primer je opisan z štirimi atributi: outlook, temperature, humidity, windy, in razredom play. outlook temperature humidity windy play sunny hot high false no sunny hot high true no overcast hot high false yes rainy mild high false yes rainy cool normal false yes rainy cool normal true no overcast cool normal true yes sunny mild high false no sunny cool normal false yes rainy mild normal false yes sunny mild normal true yes overcast mild high true yes overcast hot normal false yes rainy mild high true no Tabela 1.1. Učna množica weather data Po postopku opisanem v 2. poglavju dobimo iz dane učne množice odločitveno drevo, ki je prikazano na sliki 1.1. Vsako vozlišče drevesa predstavlja nek atribut, ki je bil izbran med konkurenčnimi atributi na osnovi ocene informativnosti. Atribut outlook smo na primer izbrali v koren drevesa, ker je ocena informativnosti največja prav za ta atribut. Na podoben način smo izbrali tudi atribute v ostalih vozliščih. 6

Diplomska naloga Slika 1.1. Odločitveno drevo za učno množico weather data Odločitveno drevo s slike 1.1 bi brali na naslednji način: če je outlook=sunny potem če je humidity=high potem play=no, sicer play=yes če je outlook=overcast potem play=yes če je outlook=rainy potem če je windy=false potem play=yes, sicer play=no Ta način je zelo enostaven, če imamo zgornji tekst ali sliko drevesa pred sabo, vendar si ga je zelo težko zapomniti. Običajno lažje razumemo konkretne življenske primere - na primer: "Spomnim se, da je kadar je bilo vroče in sončno, tekma odpadla". Če bi se hoteli naučiti pravila, ki izhajajo iz odločitvenega drevesa, bi morali poznati strukturo drevesa ali pa vse primere, ki izhajajo iz učne množice. Ker sta obe metodi zelo neprikladni lahko poskusimo zmanjšati učno množico iz 14 primerov na bistveno manjše število primerov, ki si jih je tudi lažje zapomniti. Področje uporabe odločitvenih dreves je zelo široko. Gotovo bi lahko našli tudi druge funkcije za uporabo minimizirane učne množice (npr. zmanjšati iskalni prostor učnih primerov). V nadaljevanju bom navedel konkreten primer. Začetno učno množico weather data je možno zmanjšati iz 14 na vsega 5 primerov. Ena od možnih izbir petih primerov, za katere drevo ostane nespremenjeno, je podana v tabeli 1.2. 7

Minimizacija učne množice pri učenju odločitvenih dreves outlook temperature humidity windy play rainy cool normal false yes rainy cool normal true no sunny mild high false no sunny mild normal true yes overcast mild high true yes Tabela 1.2. Reducirana učna množica weather data. Dosežen je optimum. Če bi primere iz tabele 1.2 zapisali v obliki, ki je enostavnejša za pomnjenje, bi dobili ožje opredeljeno, specializirano obliko. Če bi tako obliko predstavili učencu v obliki slike ali zvoka ali ostalih čutil, bi učenec isto gradivo dojel hitreje, kot če bi mu ga predstavili samo s pomočjo logike odločitvenega drevesa. Še bolj očiten je primer strupenih in užitnih gob. Če bi v eno učno množico zbrali vse vrste gob na svetu in nato isto učno množico zmanjšali tako, da bi v reducirani učni množici ostali samo reprezentativni primeri, potem bi se iz teh primerov lahko naučili, katere gobe so užitne in katere so strupene. Iz teh primerov bi generalizirali lastnost ostalih primerov. Toliko o motivaciji za delo v tej nalogi. Razvil sem vrsto postopkov oz. algoritmov za izbiro optimalne podmnožice učne množice. Z naključno generiranimi učnimi množicami sem testiral vsak postopek posebej in na koncu sem primerjal rezultate posameznih postopkov med seboj. Na osnovi primerjav posameznih postopkov sem prišel do najboljše metode, ki je sestavljena iz teh postopkov. Opis vseh postopkov je podan v 3. poglavju. Vsi algoritmi, ki sem jih obdelal, se nanašajo samo na neporezana odločitvena drevesa in, zato, rezultati te diplome niso neposredno uporabni na realnih šumnih podatkih. 8

9 Diplomska naloga

Minimizacija učne množice pri učenju odločitvenih dreves 2. Predstavitev problema V tem poglavju bom poskušal predstaviti problem in njegovo zahtevnost. Imamo dano učno množico U in učni algoritem P, ki generalizira iz U. S pomočjo učnega algoritma P iz učne množice U dobimo klasifikator K : P( U ) K Moja naloga je poiskati nek postopek, ki bi poiskal množico U, ki je podmnožica učne množice U, za katero bi veljalo P( U ) K. Množica U naj bi bila čim manjša. Torej, poiskati moram tako čim manjšo podmnožico učne množice za katero bo klasifikator ostal enak. Klasifikator bo dan v obliki neporezanega odločitvenega drevesa. 2.1. Kako dobimo drevo Za generiranje drevesa iz učne množice sem uporabil navadni postopek generiranja odločitvenih dreves od zgoraj navzdol. (ang. TDIDT oz. Top Down Induction of Decison Trees [1]). Kot kriterij za oceno informativnosti posameznega atributa sem uporabil oceno za relativni informacijski dobitek (ang. Gain ratio) atributa a : Gain( a) Gain _ ratio( a) = H ( a) Gain (a) je informacijski dobitek kot prispevna informacija atributa a, H (a) pa pomeni entropijo vrednosti atributa a, a A, kjer je A množica vseh atributov za dano učno množico. Velja še: Gain( a) = I I ( a) H ( a) = V RES p V log p V I je informacija, I residualna oz. preostala informacija, p pa ocena verjetnosti RES pojavljanja primera v dani veji. Velja še: I = C p C log p C ( ) I RES a = pv pc V pc / V V C / log V 10

Diplomska naloga p C je ocena verjetnosti pojavljanja primera v danem razredu, verjetnosti razreda pri pogoju, da je vrednost atributa a enaka V. p C / V pa ocena pogojne Pri generiranju drevesa od zgoraj navzdol se postopoma izbirajo najbolj informativni atributi in se vstavljajo v drevo, vse dokler je dodajanje novih vozlišč v drevo smiselno. Najbolj informativni atribut je tisti, za katerega je ocena relativnega informacijskega dobitka največja. Za detalje v zvezi z generiranjem dreves naj si bralec ogleda knjigo Data Mining [1]. 2.2. Odvzemanje primerov iz učne množice Spremembe v učni množici zelo nepredvidljivo vplivajo na strukturo drevesa. Imamo dano učno množico U in učni algoritem P. Če iz U izločimo primer t, t U, dobimo novo množico U = U \ { t}. Iz množice U z pomočjo P dobimo nov klasifikator K. Lahko se zgodi da je K = K ali pa da je K K. To bom pokazal na primeru učne množice weather data, omenjene v 1. poglavju. Iz dane učne množice, po postopku opisanem v točki 2.1 dobimo odločitveno drevo, ki je prikazano na sliki 1.1. Vsako vozlišče drevesa predstavlja nek atribut. Atribut outlook smo, recimo, izbrali v koren drevesa, ker je ocena GainRatio največja prav za ta atribut. To je razvidno iz tabele 2.1. Na podoben način smo izbrali tudi atribute v ostalih vozliščih. outlook temperature humidity windy GainRatio 0,23255 0,01877 0,15183 0,04884 Tabela 2.1. Ocena GainRatio za posamezne atribute, ki si konkurirajo za koren drevesa. Atribut outlook je najbolj informativen. Podatke v tabeli 2.1 poudarjam prav zaradi tega, ker se z odvzemanjem primerov iz učne množice vrednost ocene GainRatio za vsak konkurenčni atribut spreminja in s spreminjanjem te ocene lahko pride do spremembe v izbiri atributa za dano vozlišče. Poskušal bom reducirati začetno učno množico za eden primer. Izločil bom 5. primer (rainy, cool, normal, false, yes). Iz preostalih primerov za koren drevesa dobimo nekoliko spremenjene vrednosti ocene GainRatio za konkurenčne atribute, ki so še vedno v dovoljenih mejah. 11

Minimizacija učne množice pri učenju odločitvenih dreves outlook temperature humidity windy GainRatio 0,24601 0,00206 0,11023 0,01405 Tabela 2.2. Ocena GainRatio za posamezne atribute, ki si konkurirajo za koren drevesa. Iz učne množice je izločen 5. primer. Atribut outlook je najbolj informativen. Na podoben način dobim rezultat tudi za ostala vozlišča, ki v tem konkretnem primeru ostanejo nespremenjena. Ta poskus je bil uspešen. Poglejmo, kaj se bo zgodilo če bom iz začetne učne množice umaknil 3. primer (overcast, hot, high, false, yes). Podatki o oceni GainRatio za konkurenčne atribute so dani v tabeli 2.3. outlook temperature humidity windy GainRatio 0,18238 0,03598 0,19871 0,01405 Tabela 2.3. Ocena GainRatio za posamezne atribute, ki si konkurirajo za koren drevesa. Iz učne množice je izločen 3. primer. Atribut humidity je najbolj informativen. Pri izločanju 3. primera iz učne množice je prišlo do spremembe v strukturi drevesa. V korenu drevesa se zdaj nahaja atribut humidity in ne atribut outlook. Na enak način bi preverili tudi ostala vozlišča drevesa. Tako drevo je prikazano na sliki 2.1. Če se v vsaj enem vozlišču spremeni atribut, potem drevo ne ohrani svoje strukture. Drugače povedano, če najdemo vsaj eno vozlišče, ki vsebuje drugačen atribut od tistega, ki bi ga moralo vsebovati, nam ni potrebno iskati naprej, ker je drevo drugačno od izvirnega. Izločeni primer moramo vključiti nazaj v učno množico. 12

Diplomska naloga Slika 2.1. Odločitveno drevo za učno množico weather data brez 3. primera Pri izločanju enega primera je drevo ohranilo strukturo, pri izločanju drugega primera pa ne. Torej, moram poiskati nek primeren postopek, ki bi izločil vse tiste primere, pri katerih se struktura drevesa ohrani. 2.3. Reševanje problema S serijo poskusov sem prišel do ugotovitve, da problem izbire izločljivih primerov iz učne množice ni tako enostaven kot sem mislil na začetku. Ker nisem našel primernega orodja, ki bi bilo dovolj prilagodljivo, sem ga moral izdelati sam. Progam sem izdelal s programskim orodjem Borland Delphi. Poskušal sem vrsto različnih postopkov za reduciranje učne množice na umetno generiranih učnih množicah in s primerjanjem rezultatov med postopki prišel do najboljšega. Postopki so predstavljeni v 3. poglavju. Ker sam program ni osnovni predmet te naloge, ga ne bom opisoval. 13

Minimizacija učne množice pri učenju odločitvenih dreves 14

Diplomska naloga 3. Algoritmi Ponovno bom predstavil problem, tokrat nekoliko bolj splošno. Imamo učno množico U in učni algoritem P. Poskušal bom izbrati tako množico U, U U, za katero velja da je K = K, kjer je P( U ) K in P ( U ) = K. Slika 3.1. Iz podmnožice učne množice je možno dobiti isti klasifikator Očitno je, da izbira nekaterih primerov za izločanje iz učne množice pozitivno vpliva na ohranjanje klasifikatorja, izbira drugih pa negativno. S premišljevanjem sem prišel do naslednjih ugotovitev. Če pride do spremembe porazdelitev v posameznih listih, se klasifikator spremeni. To pomeni, da moramo pri izbiri primerov za izločanje upoštevati porazdelitev v listu in izbrati tako množico primerov za izločanje, za katero se bodo ohranile porazdelitve v vseh listih. Najbolj enostavna metoda za preverjanje je, da bi vsakič za izbrano podmnožico zgradili novo drevo in ga primerjali z začetnim. Če sta drevesi enaki, je bila izbira uspešna. Tak postopek je samoumeven in najbolj enostaven, vendar je tudi najbolj potraten. Boljše bi bilo, če bi samo v vsakem vozlišču drevesa preverjali, ali je prišlo do drugačne izbire atributa. V zvezi s tem je tudi ugotovitev, da je pri odvzemanju neke množice primerov dovolj preveriti pogoje na tistih vozliščih drevesa, v katera padejo izbrani primeri. Izbira vozlišč je razvidna iz slike 3.2, kjer je prikazano odločitveno drevo za učno množico weather data in sicer pri izločanju 8. primera (sunny, cool, normal, false, yes). 15

Minimizacija učne množice pri učenju odločitvenih dreves Slika 3.2. Odločitveno drevo za učno množico weather data brez 8. primera. Pot izločenega primera in vozlišč kjer lahko pride do sprememb je potamnjena. Torej, dovolj je, da preverimo samo tista vozlišča drevesa, kjer lahko pride do spremembe in nam ni treba preverjati vseh vozlišč. Iz prejšnjih dveh ugotovitev izhajajo nekatera pravila. Pred opisom teh pravil, bom definiral pojem ohranjanja porazdelitev v listu. Porazdelitev v listu je množica razmerij med številčnostjo primerov različnih razredov, ki padejo v isti list. Npr., na dani učni množici imamo razreda + in -. V nek list pade 20 primerov, od tega je 12 primerov v razredu + in jih je 8 v razredu -. Iz tega sledi, da je porazdelitev v listu 12 proti 8. Pri ocenjevanju verjetnosti sem se omejil na naivno oceno p C. p C = N N C kjer je N številčnost primerov razreda C, N je številčnost vseh primerov. C Če je porazdelitev v listu danega primera 12:8, potem bi, če za oceno verjetnosti uporabljamo naivno oceno verjetnosti, ohranili porazdelitev v listu če bi, z izločanjem primerov, porazdelitev spremenili na razmerje 6:4 ali 3:2. V takem primeru smo ohranili porazdelitev v listu. Torej, ohranjanje porazdelitev v listu pomeni ohranjanje razmerja med številčnostjo primerov različnih razredov. Potrebni pogoj za ohranjanje klasifikatorja: Če iz učne množice U izločimo neko množico primerov X, ki padejo v liste drevesa L, L L, potem mora za vsak list v L veljati, da izbrani izločeni primeri t X ohranijo porazdelitev v temu listu. 16

Diplomska naloga Zadostni pogoj za ohranjanje klasifikatorja (konjunkcija 1. in 2.): 1. Če iz učne množice U izločimo neko množico primerov X, ki padejo v liste drevesa L, L L, potem mora za vsak list v L veljati, da izbrani izločeni primeri t X ohranijo porazdelitev v temu listu. 2. Imamo učno množico U na množici atributov A, za katero dobimo odločitveno drevo z vozlišči V, kjer velja za v V : a = arg(max( Gain _ ratio( a))). Če iz U izločimo neko množico primerov, ki padejo v vozlišča drevesa V, vozlišče v V veljati arg( max( Gain _ ratio( a))) = a. A v v A V V, potem mora za vsako točkah. Na osnovi teh ugotovitev sem razvil niz postopkov, ki sem jih predstavil v naslednjih 3.1. Splošni podatki o algoritmih Da bi gradivo, predstavljeno v točki 3.2, bralcu bilo bolj razumljivo, najprej bom predstavil splošne podatke o algoritmih. Vsi postopki, razen osnovnega algoritma, so postopki lokalne optimizacije. V postopku dodajanja primerov v vsakemu koraku poskušamo, na osnovno množico izbranih primerov, dodati neko število primerov - ta korak imenujemo iteracija. Podobno, v vseh ostalih postopkih, v vsakem koraku (iteraciji) poskušamo izločiti neko število primerov. Iteracija, torej, predstavlja en korak lokalne optimizacije, ki je lahko uspešen, ali pa neuspešen. Glede na to, ali je poskus izločanja/dodajanja primerov bil uspešen (po poskusu izločanja/dodajanja primerov drevo ostane enako) ali neuspešen (po poskusu izločanja/dodajanja primerov se drevo spremeni), govorimo o zadetku v iteraciji, ali pa ne. V zvezi z tem, bi verjetnost zadetka bila verjetnost, da algoritem v neki iteraciji uspešno izloči/doda neko množico primerov. Naloga algoritmov je, da v čim manjšem številu korakov pridejo do čim bolj optimalne rešitve, to je minimizirane učne množice. Z velikim številom korakov lahko pridemo do zelo dobre, ali celo optimalne rešitve. 17

Minimizacija učne množice pri učenju odločitvenih dreves 3.2. Podatki o poskusih na naključnih učnih množicah Poskuse sem izvajal na umetno generiranih učnih množicah. Učne množice so bile različno generirane glede na naslednje parametre: število primerov v učni množici, število atributov skupaj z razredom in število možnih različnih vrednosti posameznega atributa skupaj z razredom. Vrednosti, v zvezi z velikostjo teh parametrov, so dane v tabeli 3.1. Do teh podatkov sem prišel s proučevanjem realnih učnih množic, kjer podatki v glavnem nihajo med temi vrednostmi. Generirana drevesa so bila zelo različna, glede na število listov. Iz realnih učnih množic brez šuma običajno dobimo drevo z majhnim številom listov - to je seveda odvisno od problema, vendar je sigurno, da bo število listov, v povprečju, manjše od števila listov, ki bi ga dobil z povsem naključnim generiranjem drevesa na osnovi prvih treh parametrov v tabeli 3.1. Zato sem se odločil, da bom stabiliziral množico dreves (in vzročno množico učnih množic) enostavno tako, da izločim vse tiste učne množice, za katere odločitveno drevo po številu listov odstopa od predvidenega. min max število primerov 100 2000 število atributov (+razred) 3 10 število različnih vrednosti atributov 2 6 število listov drevesa 5 25 Tabela 3.1. Lastnosti naključno generiranih učnih množic, na katerih sem opravljal poskuse Vrednosti atributov primerov, skupaj z razredom, so se v učnih množicah računale na območju parametrov, določenih v tabeli 3.1, po naslednji formuli: primer[atribut]:=round(sqrt(random*število_vrednosti_atributa[atribut]+1)) Funkcija koren v zgornji formuli ima vlogo določanja bolj pogostih (posledično bolj vplivnih) vrednosti atributov in razredov (isti gravitirajo proti manjši vrednosti). Vrednosti atributov in razredov so v testnih učnih množicah bile numerične. Poskuse sem izvajal nad učnimi množicami brez šuma in brez neobstoječih vrednosti. Izločil sem te lastnosti učnih množic, ker direktno vplivajo na izgradnjo odločitvenega drevesa in samo posredno in v manjšem obsegu na reduciranje učnih množic. V poskusih sem vsako predstavljeno metodo poskušal oceniti na več načinov. Za začetek bom predstavil vse ocene. 18

Diplomska naloga Ocena 1: Hitrost reduciranja učne množice Kot ocena postopkov lokalne optimizacije, hitrost reduciranja učne množice je za vse metode predstavljena s pomočjo grafa. Navpična os predstavlja velikost zmanjšane učne množice glede na velikost začetne učne množice, izraženo v odstotkih. Vodoravna os predstavlja število iteracij oz. poskusov za reduciranje učne množice. Število iteracij sem omejil na maksimalno 2000, ker je to velikost začetne učne množice na testnih primerih in večje število ne bi v večji meri vplivalo na dobljen rezultat. Če bi izvedli 10000 ali celo 100000 iteracij, bi na testnih učnih množicah, v povprečju, prišli do zanemarljivo boljših rezultatov (v povprečju <0,1% razlike v velikosti dobljene učne množice za 3000 iteracij, glede na velikost množice v 2000. iteraciji). Dejanskega optimuma na grafih nisem določal zato, ker ni bil izračunljiv v realnemu času (na raspoložljivi strojni opremi). Ocena 2: Povprečno število primerov, ki jih uspešno izločimo v eni iteraciji Povprečno število primerov, ki jih uspešno izločimo v eni iteraciji,, je vsota zmnožkov števila primerov, ki jih poskušamo izločiti v določeni iteraciji in verjetnosti, da je izločanje uspelo v razmerju z skupnim številom iteracij #i. i P Z = # i i= 1 p * n i # i i n je število primerov ki jih poskušamo izločiti v iteraciji i, P Z je verjetnost, da izločanje uspe (0 za neuspešno izločanje, 1 za uspešno). # i je število iteracij ki je potrebno, da uporabljena metoda pride do določenega razmerja v številčnosti med preostalimi primeri in vsemi primeri v učni množici. Ocenil sem metode za 50%, 25%, 10% in 5% relativne velikosti reducirane učne množice. Večja ocena P Z pi pomeni boljšo, ali vsaj hitrejšo, metodo. Poglejmo naslednji primer: Na učni množici, ki vsebuje 40 primerov, v vsaki iteraciji poskušamo izločiti po 10 primerov. Zanima nas koliki bo za minimizirano množico relativne velikosti 50%, glede na velikost dane učne množice (to je 20 primerov). V prvi iteraciji nam izločanje ne uspe. V drugi iteraciji nam izločanje uspe (30 primerov). V tretji iteraciji nam izločanje spet uspe (20 primerov). Dosegli smo potrebno velikost reducirane učne množice v treh iteracijah. P Z = 3 i= 1 p * n i 3 i P Z bomo izračunali po prej omenjeni formuli: 0*10 + 1*10 + 1*10. = = 6,66 3 Torej, da pridemo do 50% velikosti učne množice, povprečno število primerov, ki jih uspešno izločimo v eni iteraciji, za dan problem znaša 6,66. P Z 19

Minimizacija učne množice pri učenju odločitvenih dreves Ocena 3: Časovna zahtevnost algoritma Vsaka od predstavljenih metod za reduciranje učnih množic se, razen po hitrosti reduciranja, razlikuje od drugih tudi po časovni zahtevnosti. Metoda, kot je recimo naključna izbira, ne zahteva skoraj nič računanja, medtem ko recimo metoda povečevanja razlik zahteva veliko primerjanj. Ocena časovne zahtevnosti algoritma je pomembna kot protiutež prvi in drugi oceni, ker bi se, drugače, lahko zgodilo da imamo postopek, ki da zelo dober rezultat, ki se izvaja počasneje od nekega postopka, ki da slabši rezultat. Skupna časovna zahtevnost T je predstavljena kot seštevek časovne zahtevnosti izbire primerov, T in iter časovne zahtevnosti preverjanja strukture odločitvenega drevesa, T T = T + T iter Iiter Piter Piter, v eni iteraciji. Iiter Da bi ocenil koliko je časovno zahteven postopek preverjanja strukture odločitvenega drevesa, najprej moram predstaviti funkcije, ki ga soustvarjajo. Za opis časovne zahtevnosti teh funkcij bom uporabil naslednje parametre: b je povprečno število vej vozlišč oz. povprečno število vrednosti atributov, a je povprečno število konkurenčnih atributov za vsa vozlišča, i je število vseh primerov. Ena časovna enota je čas, ki je potreben za izvrševanje ene operacije (odštevanje, množenje, logaritemska funkcija, primerjanje, zanka...). Pri preverjanju pogoja (if stavek) sem vzel, da je pogoj vedno izpolnjen (worst case). function I(VectU) Total:=0; for i:=0 to število_razredov-1 do Številčnost[i]:=0; for i:=0 to število_primerov-1 do if VectU[i]=true then for k:=1 to število_razredov do if Učna_množica[i, število_atributov-1]= Vrednosti_atributov[število_atributov-1, k] then begin Inc(Številčnost[k-1]); Inc(Total); end; tempfloat:=0; for i:=0 to število_razredov-1 do begin if Številčnost[i]<>0 then tempfloat:=tempfloat-številčnost[i]/total*log2(številčnost[i]/total); end; t I = 2 + 8b + i + 3ib 20

Diplomska naloga function H(VectU; Atribut) Total:=0; for i:=0 to število_razredov-1 do Številčnost[i]:=0; for i:=0 to število_primerov-1 do if VectU[i]=true then for k:=1 to število_razredov do if Učna_množica[i, Atribut]=Vrednosti_atributov[Atribut, k] then begin Inc(Številčnost[k-1]); Inc(Total); end; tempfloat:=0; for i:=0 to število_razredov-1 do begin if (Številčnost[i]<>0) and (Total<>0) then tempfloat:=tempfloat-stevilcnost[i]/total*log2(stevilcnost[i]/total); end; t H = 2 + 9b + i + 3ib function IRes(VectU; Atribut) Total:=0; stelementov:=število_vrednosti_atributov[atribut]; for i:=0 to stelementov-1 do for k:=0 to število_razredov-1 do Številčnost[i, k]:=0; for i:=0 to stelementov-1 do totalveja[i]:=0; for i:=0 to število_primerov-1 do if VectU[i]=true then for k:=1 to stelementov do if Učna_množica[i, Atribut]=VrednostiAtributovSet[Atribut, k] then for j:=1 to število_razredov do if Učna_množica[i, število_atributov-1]= VrednostiAtributovSet[število_atributov-1, j] then begin Inc(Številčnost[k-1, j-1]); Inc(totalveja[k-1]); Inc(Total); end; tempfloat:=0; for i:=0 to stelementov-1 do begin tempfloat2:=0; for k:=0 to število_razredov-1 do if (Številčnost[i, k]<>0) and (totalveja[i]<>0) then tempfloat2:=tempfloat2-številčnost[i,k]/totalveja[i] *log2(številčnost[i, k]/totalveja[i]); if total<>0 then tempfloat:=tempfloat+totalveja[i]/total*tempfloat2; end; t 2 I Re s = + 7b + 9b + i + 5ib + 3 ib 2 function Gain_ratio(VectU; Atribut) tempfloat:=h(vectu, Atribut); if tempfloat>0 then GainRatio:=(I(VectU)-IRes(VectU, Atribut))/tempfloat else GainRatio:=0; t GainRatio = 4 + t + t + t H I I Re s 21

Minimizacija učne množice pri učenju odločitvenih dreves function IzberiNajboljsega(VectU; VectA) maxgain:=0; for i:=0 to število_atributov-2 do if VectA[i]=true then begin tempfloat:=gainratio(vectu, i); if tempfloat>maxgain then begin maxgain:=tempfloat; izbrani:=i; end; end; t IzberiNajboljsega = 1+ a(5 + tgainratio ) Iz izračunanih časovnih zahtevnosti dobimo čas, ki je potreben za preverjanje ohranjanja klasifikatorja v enem vozližču, t : Pnode t Pnode = 1+ t IzberiNajboljsega = 2 + a(5 + tgainratio ) = 2 + a(5 + 4 + t H + t I + t I Re s ) t Pnode = O( aib 2 = 2 + a (9 + 2 + 9b + i + 3ib + 2 + 8b + i + 3ib + 3 + 7b + 9b + i + 5ib + ib 2 2 = 2 + a (16 + 24b + 9b + 3i + 11ib + ib ) časovnih enot (č.e.) 2 ) V postopkih, ki so obdelani, sem razen omenjenih vrednosti uporabil tudi naslednje vrednosti: v za število vozlišč drevesa, l za število listov drevesa, g za povprečno globino drevesa. Ker so izbire primerov večinoma naključne, je včasih oceno potrebnih preverjanj težko določiti. Zato sem se odločil za časovno najslabšo oz. najbolj zahtevno možnost (ang. worst case scenario). Omeniti je treba še to, da sem časovno oceno inicializacije oz. priprave podatkov zapustil, ker ta čas ne vpliva dovolj na skupni čas. Na koncu sem podal še povprečni čas minimiziranja ene testne učne množice (CPU 1,2 GHz). 2 ) Pomembna lastnost vseh ocen je, da niso za vse algoritme univerzalno natančne in so veljavne samo za primerjanje algoritmov med seboj. V praksi so lahko realne učne množice zelo različne po strukturi drevesa, številu primerov in številu atributov. Pri izvajanju poskusov sem se omejil samo na en, dovolj reprezentativen in raznovrsten del vseh možnih učnih množic. 22

Diplomska naloga 3.3. Osnovni algoritem klasifikator Imamo dano učno množico U in učni algoritem katerega bi veljalo A s pomočjo katerega dobimo K. Obstaja vsaj ena množica U U za katero bi dobili klasifikator K, za K = K (trivialno U = U ). Lahko poiščemo vse možne podmnožice učne množice za katere velja K = K in izberemo tisto, ki je najmanjša. Očitno je, da je prostor, ki ga je potrebno preiskati prevelik, da bi lahko bil tak algoritem uspešen. Preden se upustimo v reševanje problema, najprej moramo definirati pojem vsote minimalnih porazdelitev v listu. Minimalna porazdelitev v listu je najmanjše možno število primerov, ki padejo v isti list tako, da je porazdelitev v listu ohranjena (poglavje 3, uvod). Spet uporabimo naivno oceno verjetnosti. Poglejmo en primer. Če v listu imamo porazdelitev 10:5:5, potem je minimalna porazdelitev v listu eneka 2:1:1 in je vsota minimalnih porazdelitev v temu listu enaka 4. Če v drevesu imamo, poleg omenjenega, samo še en list, z porazdelitvijo 3:7:4, potem je vsota minimalnih porazdelitev v vseh listih enaka 4+14=18. Da bi zmajnšal prostor, ki ga je potrebno preiskati, bom upošteval zakonitost, da mora biti velikost množice U vsaj tolikšna, kot je vsota minimalnih porazdelitev v vseh listih drevesa. Če imamo čiste porazdelitve v listih, mora biti velikost množice U večja ali enaka številu vseh listov. Z opazovanjem učnih množic sem prišel do ugotovitve, da je velikost optimalne oz. najmanjše U običajno nekoliko večja od števila vseh listov v drevesu oz. od vsote minimalnih porazdelitev listov. Torej, začnimo z množico naključno izbranih primerov velikosti # u, kjer je # u vsota minimalnih porazdelitev v vseh listih drevesa. # u # p c / l = L C L je množica vseh listov drevesa in C je množica vseh razredov. iz razreda c, c C, ki padejo v list l, porazdelitev. # p / c l je število primerov l L, pod pogojem, da v listu imamo minimalno Če se za izbrano množico drevo ohrani, potem je rezultat izbrana množica in je postopek končan. Sicer postopek izbire primerov za dano velikost # u ponavljamo, dokler ne pridemo do rešitve ali dokler ne izčrpamo vse možne podmnožice te velikosti. Drugi primer obravnavamo tako, da inkrementiramo #u in postopek ponovimo. Opisani postopek nam vedno zagotavlja optimalno rešitev, vendar je zelo počasen in v praksi nesprejemljiv. Zanimivo je ogledati si število možnih izbir v koraku i. Imamo možnih izbir. κ i 23

Minimizacija učne množice pri učenju odločitvenih dreves c l κ = i n k c / l L C c / l n / je število primerov iz razreda c, c C, ki padejo v list l, l L, in velja n, kjer je n velikost učne množice. k je število izbranih primerov iz razreda c, ki padejo v list l in smo jih izbrali za uvrstitev v zmanjšano učno množico. V prvem koraku je enako c / l #u, v drugem koraku je enako # u +1 itn. n c / l = L C L C k c / l Do optimalne rešitve pridemo v največ formulo za število možnih izbir, κ. κ = # korakov i= 1 κ i = # korakov n k c / l i= 1 L C c / l n # u korakih, tako da na koncu dobimo Za predstavitev zahtevnosti problema bom vzel učno množico, ki ima 100 primerov in 25 listov. Naj bo porazdelitev primerov po listih enakomerna in čista (primeri le enega razreda po vsekem listu). Torej v vsakem listu imam 4 primere. To pomeni, da imam v prvem 25 koraku 4 različnih možnosti, v drugem 4 24 * 25*3 različnih možnosti, v tretjem 4 23 *(25* 3 + 300*3*3), itn. Za 10 korakov število možnosti presega 25 mestno število. Iz zgornjega primera je razvidno, da je tak postopek težko rešljiv že pri troštevilčni velikosti učne množice. Za učno množico, kjer je razmerje med številom listov in velikostjo učne množice večje od 85%, se število možnih kombinacij drastično zmanjša. Za reduciranje učnih množic, večjih od 100 primerov ali za prej omenjeno razmerje manjše kot 85%, bi priporočil uporabo kakšne hevristične metode lokalne optimizacije. Ocena časovne zahtevnosti osnovnega algoritma: T Iiter = # u + korak = O( l) TPiter = v * t Pnode = T iter = O( vaib 2 ) O( vaib kjer je #u vsota minimalnih porazdelitev v vseh listih drevesa. 2 ) 24

Diplomska naloga 3.4. Dodajanje primerov V tej točki je opisana edina metoda, ki bazira na postopnem dodajanju primerov. Na osnovi izreka o nujnem pogoju za ohranjanje klasifikatorja, izberemo minimalno množico primerov U, U U. To pomeni da vsak primer v U pade v svoj list in jih v en list pade več samo, če v listu nimamo čiste porazdelitve. Izbrani začetni množici postopoma drugega za drugim dodajamo primere in postopek ponavljamo vse dokler reducirana množica ne ohranja klasifikator. Naprej sem predstavil implementacijo te metode z dodajanjem po enega naključno izbranega primera. Zakaj enega? Pokazalo se je, da je velikost minimalne podmnožice običajno le nekoliko večja od vsote minimalnih porazdelitev v listih. Pričakoval sem, da bo z naključno izbiro začetne množice prišlo do deformacije tega pravila in to se je tudi zgodilo, vendar je bila deformacija nepričakovano velika. Na sliki 3.3 je predstavljeno formiranje učne množice po metodi dodajanja primerov. Slika 3.3. Metoda dodajanja primerov. S črtkanim pravokotnikom sta označeni povprečna velikost dobljene zmanjšane učne množice in povprečno število iteracij, ki so potrebne, da pridemo do prvega pravilnega rezultata Povprečna velikost dobljene zmanjšane učne množice ni zadovoljiva tudi za tako majhen korak dodajanja in zato sem to metodo opustil kot slabo. 25

Minimizacija učne množice pri učenju odločitvenih dreves Mogoče bi se dalo narediti več z bolj konkretno in ne čisto naključno izbiro primerov za začetno učno množico. S primerno izbiro primerov za začetno učno množico bi se deformacija velikosti minimalne učne množice lahko zmanjšala na minimum. Žal v času pisanja diplomske naloge nisem prišel do nobene pomembnejše ugotovitve, ki bi razrešila problem «primerne» izbire primerov. Druga možnost bi bila ocenjevanje izbire začetnega števila primerov in bi potekala tako, da bi izbirali po #u primerov (točka 3.3) vse dokler ne bi bili zadovoljni z oceno in bi nadaljevali z naključno izbiro primerov za dodajanje v novo učno množico. Problem takega postopka je v iskanju neke začetne vrednosti, ki bi jo uporabljali kot referenčno točko za primerjanje posameznih ocen. Dobiti tako vrednost na sploh je zelo težko, ker so lahko učne množice medsebojno zelo različne. Ocena časovne zahtevnosti metode dodajanja primerov: T Iiter = # u = O( l), za prvo iteracijo T Iiter = 1, za ostale iteracije kjer je T T 2 = v * t O( vaib ), za prvo iteracijo Piter Pnode = 2 = g * t O( gaib ), za ostale iteracije Piter Pnode = 2 2 T iter = O( l + vaib + gaib ) = O( vaib #u vsota minimalnih porazdelitev v vseh listih drevesa. 2 ) Povprečni čas minimiziranja ene testne učne množice je bil, za metodo dodajanja primerov, 26,7 sekund (približno 200 iteracij, 0,1335 sekund po iteraciji). 26

Diplomska naloga 3.5. Naključna izbira n primerov Prva v vrsti algoritmov lokalne optimizacije je metoda naključne izbire n primerov. Algoritem deluje tako, da v vsaki iteraciji naključno izbere n primerov in jih izloči iz učne množice. Nato preveri če je prišlo do sprememb v drevesu in, če ni, postopek ponovi na novi učni množici. Če je, izločene primere vključi nazaj v učno množico. Obstajata dve osnovni izvedbi tega algoritma. Prva je statična, kjer na začetku določimo vrednost parametra n in na osnovi te vrednosti poskušamo skozi iteracije doseči čim manjšo velikost učne množice. Odvisno od velikosti parametra n bomo dobili hitrost zmanjševanja učne množice po iteraciji in najmanjšo možno velikost učne množice, ki jo izbrani koeficient lahko dobi. Iz slike 3.4 je razvidno, da je statična metoda v veliki meri linearna, ker se učna množica postopoma zmanjšuje za n primerov skoraj vse do konca oz. približnega optimuma velikosti dane učne množice. (a) 27

Minimizacija učne množice pri učenju odločitvenih dreves (b) Slika 3.4. Predstavitev uspešnosti algoritma naključne izbire n primerov v statični izvedbi, za vrednosti parametra n : (a) n = 1, 2, 5, 10 in (b) n =20, 50, 100 Naključna izbira n primerov 50% 25% 10% 5% - statična metoda n=1 0,98063 0,97848 0,97173 0,96853 n=2 1,91189 1,91452 1,84463 1,86838 n=5 4,51994 4,47174 4,55006 4,47576 n=10 8,70111 8,42626 7,88537 8,16330 n=20 18,62429 17,48640 16,69235 15,22617 n=50 45,83775 42,37854 40,30872 34,91528 n=100 75,26417 68,04930 55,65799 54,61594 Tabela 3.2. Povprečno število primerov, ki jih uspešno izločimo v eni iteraciji, za algoritem naključne izbire n primerov v statični izvedbi, za različne vrednosti parametra n Ocena časovne zahtevnosti metode naključne izbire n primerov, v statični izvedbi: kjer je T Iiter = n = O(n) TPiter = v * t Pnode = O( vaib 2 T iter = O( n + vaib ) = O( vaib n število primerov za izločanje. 2 ) 2 ) 28

Diplomska naloga Povprečni čas minimiziranja ene testne učne množice je bil, za različne vrednosti parametra n, naslednji: za n = 1 149,3 sekund, za n = 5 58,4 sekund, za n = 20 30,8 sekund, za n = 100 20,4 sekund (do 2000 iteracij). Druga izvedba je dinamična, kjer algoritem "z občutkom" spreminja vrednost parametra n, da v čim manj iteracij pride do čim boljše rešitve. Pokazalo se je, da so učne množice, ko so velike, veliko manj občutljive za izločanje posameznih skupin primerov kot majhne. Zato je smisel dinamične izvedbe v tem, da začnemo z nekim številom primerov za izločanje k in ga postopoma eksponencialno zmanjšujemo. Na osnovi poskusov sem prišel do ugotovitve, da bi začetni n-faktor k moral biti odvisen od števila listov v drevesu # l in velikosti začetne učne množice #i. k = 0 λ # i * # l λ je koeficient, ki ga uporabnik tega algoritma določi na osnovi lastnosti učne množice in pripadajočega odločitvenega drevesa in sicer [ 0.1,10] λ. Predlagam vrednost λ = 1. Algoritem naj bi potekal tako, da v vsaki iteraciji iz učne množice poskuša odvzeti primerov vse dokler mu to ne uspe odvzeti za r. k 1 k0 = r Če posplošimo: k i+ 1 = ki r r -krat. Takrat zmanjša število primerov, ki jih poskuša Kako se odločiti glede velikosti koraka? Od koraka r je odvisno kolikokrat se bo ki k i+ 1 poskus odvzemanja primerov naenkrat ponovil in koliki bo naslednji za odvzemanje iz učne množice. Predlagam uporabo vrednosti učne množice z dinamično metodo. r = 2. Na sliki 3.5 je dana hitrost zmanjševanja k 0 29

Minimizacija učne množice pri učenju odločitvenih dreves Slika 3.5. Predstavitev uspešnosti algoritma naključne izbire n parametrov v dinamični izvedbi za vrednosti parametra r = 2, 3, 5, 10 Naključna izbira n primerov 50% 25% 10% 5% - dinamična metoda r=2 136,88017 114,12084 66,13737 47,89683 r=3 91,46627 77,40977 48,01638 40,40220 r=5 108,83888 89,76956 46,97397 36,17910 r=10 107,47678 95,00827 37,58208 28,93578 Tabela 3.3. Povprečno število primerov, ki jih uspešno izločimo v eni iteraciji, za algoritem naključne izbire n primerov v dinamični izvedbi, za različne vrednosti parametra r Ocena časovne zahtevnosti metode naključne izbire n primerov, v dinamični izvedbi: T T Iiter = k iter = v * t i = O l Piter Pnode = O( vaib i 2 T iter = O + vaib = O( vaib l 2 ) 2 ) Povprečni čas minimiziranja ene testne učne množice je bil, za dinamično metodo, za r = 2, 11 sekund (500 iteracij, v povprečju 0,022 sekund po iteraciji). 30

Diplomska naloga 3.6. Izbira primerov iz listov V tej metodi sem poskušal ugotoviti, ali obstaja kakšna zakonitost med primeri, ki padejo v isti ali v različne liste drevesa. Za dano učno množico U imamo odločitveno drevo z množico listov L. Iz vsakega lista l L naključno izberemo po eden primer in jih skupaj poskušamo izločiti iz U. Hitrost take metode bo seveda odvisna od števila listov drevesa. Za manj listov bo počasna in manj občutljiva, za več listov bo hitra in bolj občutljiva. Z majhno občutljivostjo mislim na verjetnost, da bo naslednja izbira podmnožice za izločanje uspešna in obratno. Taka metoda je linearna in preveč počasna. Hitrost zmanjševanja učne množice s tako metodo se nahaja na sliki 3.6. Slika 3.6. Predstavitev uspešnosti algoritma izbire po eden primer iz vsakega lista Ocena časovne zahtevnosti metode izbire primerov iz listov: T Iiter = l = T = v * t O(l) Piter Pnode = O( vaib 2 T iter = O( l + vaib ) = O( vaib 2 ) 2 ) Povprečni čas minimiziranja ene testne učne množice je bil, za metodo izbire primerov, po en iz vsakega lista, 70 sekund (200 iteracij, 0,35 sekund po iteraciji). 31

Minimizacija učne množice pri učenju odločitvenih dreves Ker je prva metoda prepočasna jo bom spremenil in sicer tako, da ne bom več jemal samo po en primer iz vsakega lista, ampak po več primerov iz vsakega lista. Naj bo število primerov, ki padejo v list l in # število primerov, ki padejo v list l za izločanje. V vsaki iteraciji iz učne množice poskušamo izločiti # i l # p = 2 l i l #i l primerov iz vsakega lista. Ta metoda se je pokazala kot zelo uspešna na velikih učnih množicah, ker v vsaki iteraciji, seveda če ji uspe, prepolovi učno množico. # p l Slika 3.7. Hitrost zmanjševanja učne množice po metodi ohranjanja razmerij med listi Postopek se splača ponavljati vse dokler velikost učne množice ne pade pod velikost δ, za katero sem na osnovi poskusov ugotovil, da je odvisna od števila listov odločitvenega drevesa in števila atributov # a. δ =#l*#a Ko velikost učne množice postane manjša kot δ, je verjetnost, da nam bo uspelo zmanjšati učno množico v eni od naslednjih iteracij, zelo majhna. Zato bi bilo dobro, če bi takrat začeli uporabljati kakšno drugo metodo lokalne optimizacije. #l 32

Diplomska naloga Ocena časovne zahtevnosti metode izbire primerov iz listov z ohranjanjem porazdelitev: T T = # i O( i) Iiter iter = = v * t Piter Pnode = O( vaib 2 T iter = O( i + vaib ) = O( vaib 2 ) 2 ) Povprečni čas minimiziranja ene testne učne množice je bil, za metodo izbire primerov iz listov, z ohranjanjem porazdelitev, 10 sekund (200 iteracij, 0,05 sekund po iteraciji). Izbira primerov iz listov 50% 25% 10% 5% a) po en primer relativno 6,27507 3,31920 2,34912 1,87301 absolutno* 1,75702 0,26553 0,09396 0,03746 b) ohranjanje razmerja relativno 509,32750 228,60767 153,11607 130,98741 absolutno* 488,95440 210,31906 110,24357 68,113457 Tabela 3.4. Povprečno število primerov, ki jih uspešno izločimo v eni iteraciji, za algoritem izbire primerov iz listov v varianti: a) po en primer iz vsakega lista in b) po toliko primerov iz vsakega lista da se razmerje številčnosti primerov med listi ohranja ( * absolutno pomeni, da so pri izračunavanju povprečja bili vzeti v poštev tudi tisti primeri, ki niso dosegli določene meje) Zanimiva ugotovitev v zvezi z to metodo je ta, da se, dokler ima take pogoje, z izločanjem primerov iz učne množice približno ohranjajo razmerja med konkurenčnimi atributi. Ta pojav ima razlago v stabiliziranju ocene določeni veji vozlišča drevesa v razmerju do ostalih vej. Ker se parameter, ki predstavlja številčnost primerov v spreminja zelo malo, poudarek prehaja na ostale ocene, kot je recimo delež razredov izločenih primerov itn. Vpliv teh ostalih ocen pa spet nadzoruje parameter smo obdelali v 2. poglavju. p V p V, ker predstavlja utež za preostale. Omenjeni p V 33

Minimizacija učne množice pri učenju odločitvenih dreves 3.7. Povečevanje razlik Najbolj "pametna" metoda v vrsti algoritmov lokalne optimizacije je metoda povečevanja razlik med atributi. Opis delovanja tega algoritma se močno opira na osnove izgradnje odločitvenih dreves, ki so opisane v 2. poglavju. Na strukturo odločitvenega drevesa vplivajo tri ocene: informacija, residualna informacija atributa a in entropija vrednosti atributa a. I I RES ( a) Gain _ ratio = H ( a) Eden od pogojev za ohranjanje strukture drevesa je, da se v vsakem vozlišču drevesa za vlogo vozlišča izbere isti atribut. V vsakem trenutku za vlogo določenega vozlišča drevesa konkurira več atributov, kot je ponazorjeno na sliki 3.8. Slika 3.8. Konkurenčnost atributov za posamezna vozlišča drevesa na primeru učne množice weather data Imamo dano učno množico U in množico vseh atributov razen razreda, A. Odločitveno drevo je sestavljeno iz vozlišč n (ang. node) in listov l (ang. leaf). Za vsako vozlišče n v vsakem trenutku konkurirajo atributi iz množice A, A n A nad množico primerov U n ki padejo v vozlišče n, U n U. Konkurenčnost vsakega atributa iz An za dano vozlišče je določena z oceno Gain _ ratio, ki je določena z velikostjo ocen I, in H (a). Ker je ocena n (a) I RES I enaka za vse konkurenčne atribute, nas zanimata samo preostali dve oceni: I (a) in H (a). Primerjal sem, kako spremembe na učni množici vplivajo na RES vsako od teh ocen. Rezultati primerjave so predstavljeni na sliki 3.9. 34

Diplomska naloga Slika 3.9. Kako spremembe na učni množici vplivajo na oceni zgornja in spodnja meja vrednosti Gain _ ratio učne množice weather data. Prostor nihanja I RES in H. Prikazana sta za vsa vozlišča drevesa dobljenega iz I RES je večji od prostora nihanja H. za spremembe na učni množici Iz slike 3.9 je razvidno, da je ocena I RES bom usmeril raziskovanje v obnašanja prve ocene. I RES a) = pv pc / V log pc / V V C ( veliko bolj občutljiva kot ocena H in zato Kako bo algoritem deloval? Najprej moram oceniti katero vozlišče občutljivo. Oceno občutljivosti konkurenčnimi atributi za oceno Gain _ ratio. χ = # a ( Gain _ ratio( a1 ) Gain _ ratio( )) n a i i= 2 a i je atribut v množici konkurenčnih atributov n je najbolj χ n posameznega vozlišča bom dobil z razliko med A n za vozlišče n, razvrščenih po velikosti parametra Gain _ ratio od zgoraj navzdol tako, da je izbrani atribut, a najbližji konkurent izbranega atributa itn. # a najbolj občutljivo vozlišče drevesa. a1 2 je število konkurenčnih atributov. Vozlišče, ki ima najmanjši χ n je Ko smo izbrali na spremembe najbolj občutljivo vozlišče v učni množici, lahko nadaljujemo s "primerno" izbiro primerov za izločanje. Cilj je, z izločanjem primerov povečati 35

Minimizacija učne množice pri učenju odločitvenih dreves vrednost ocene Gain _ ratio ostale konkurenčne atribute, po vrstnemu redu v množici učni množici weather data za koren drevesa. za izbrani atribut in istočasno poskušati zmanjšati isto oceno za A n. Poglejmo naslednji primer na Za koren drevesa konkurirajo vsi atributi: outlook, temperature, humidity in windy in sicer na celi učni množici. Če uredimo njihov vrstni red po informativnosti, dobimo naslednje zaporedje: outlook kot izbrani atribut za koren drevesa in konkurenčni atributi humidity, windy in temperature. Najprej za atribut outlook pogledamo katera od vej mu najbolj škoduje oz. katera veja ima najbolj negotovo porazdelitev (najmanjša razlika). To vejo, če sploh obstaja, izberemo in njeno negotovost poskušamo zmanjšati z izbiro ustreznih primerov za izločanje - dobimo množico U (ang. extract) za izločanje. Nato v prvem konkurenčnem atributu, X atributu humidity poiščemo tisto vejo, ki je najmanj negotova in v množici U poiščemo vse tiste primere, ki povečajo negotovost v tej veji. Postopek ponovimo za preostale atribute, če je množica U neprazna. Če U v kateremkoli trenutku postane prazna, se vrnemo en X X korak nazaj in razveljavimo izbiro. Konkreten primer take izbire se nahaja na sliki 3.10. X Slika 3.10. Kako pridemo do izbire primerov za izločanje na učni množici weather data po metodi povečevanja razlik Z metodo povečevanja razlik na učni množici weather data v prvem koraku izberemo vse tiste primere, pri katerih je vrednost atributa outlook enaka sunny in razred enak yes - najdemo dva taka primera. V drugem koraku iz izbrane množice dveh primerov izberemo tiste, ki imajo vrednost atributa humidity enako normal - ostane en primer. To je konec postopka kajti, če bi v naslednjem koraku zmanjšali za še en primer, bi množica primerov za izločanje postala prazna. 36