UNIVERSITATEA TEHNIC! „GH. ASACHI” IA"I FACULTATEA DE AUTOMATIC! "I CALCULATOARE
Arbori de decizie Inteligen!" artificial" - referat -
Simona Iulia Cantea, Daniel Costin, Alina Coroi
- 2004/2005 -
Inteligenta Artificiala - Arbori de decizie
Prima data cand s-a vorbit de Inteligenta Artificiala (AI – Artificial Intelligence) in 1956, totul parea o utopie, un vis prea frumos pentru a fi realizat, un stadiu al dezvoltarii considerat a fi greu de atins. In ultimii aproape 50 de ani, termenul a prins contur, devenind realitate, fiind in prezent folosit in aproape toate stiintele care doresc sa s e afirme. Initiatorul sau, prof. John McCarthy a prezentat noul concept in vara anului 1956 la intrunirea “Darthmouth Summer Research Project on Artificial Intelligence”. Odata cu dezvoltarea tehnicii de calcul si a pachetelor software, Inteligenta Artificiala a devenit o ramura suplimentara a stiintelor. Totusi, varful de lance este stiinta computerelor, cea care a introdus termenul si a facut cel mai mult pentru afirmarea noului concept. Termenul de Inteligenta Artificiala este intalnit azi in numeroase publicatii tehnice, medicale, militare, stiintifice, de obicei, cand vine vorba de aplicatii ce realizeaza performante de care numai omul era socotit capabil: recunoasterea si analiza vocii si a imaginilor, traduceri dintr-o limba in alta, diferite jocuri de inteligenta (sah, bridge), luarea unor decizii complexe fara interventia unui operator uman etc. Initial, obiectivele Inteligentei Artificiale au fost foarte ambitioase: masina trebuia sa rezolve diferite probleme, sa invete din propria experienta si din evenimentele exterioare sistemului sau, sa efectueze rationamente, sa conceapa noi obiecte cu proprietati prestabilite. Spre a intelege inteligenta umana, trebuie sa intelegem modul in care se formeaza cele mai simple ganduri. Incercarea de a trece peste aceste etape primare si a cerceta direct actiunile complexe ale creierului uman este aproape imposibila. O metoda de a intelege lucrurile este de a le modela pe un computer si apoi a le produce artificial. Primul pas pe care stiinta computerelor trebuie sa il faca in cercetarea Inteligentei Artificiale este sa incerce a modela modul de functionare a creierului. Pana in prezent s-au dezvoltat doua metode diferite de abordare a Inteligentei Artificiale. Prima metoda este cunoscuta sub numele “top-down approach” sau “symbolic approach to AI”. Spre exemplu, vederea artificiala a unei masini (controlata de un computer) a fost abordata prin construirea unor algoritmi si aplicarea lor pe o serie de date de intrare. Fiecare pas al procesului de vedere trebuie evaluat, un algoritm urmand sa transforme datele de intrare intr-o forma mai usor de utilizat. Aceasta metoda are dezavantajul ca este prea dependenta de masina si poate fi utilizata doar in probleme foarte restranse. De asemenea, abordarea se bazeaza in mare masura pe cunostintele programatorului, absolut nimic nu poate fi adaugat automat. A doua metoda consta in construirea unei retele neuronale care sa asigure convertirea unei imagini in informatie. In anii ’60 preocuparile au fost concentrate pentru constituirea unei astfel de retele, denumita “perceptron”. Acesta, o combinatie reusita de retea neuronala si informatii pre procesate, a permis pentru prima data recunoasterea imaginilor de catre un computer. Perceptronul s-a bazat pe ceea ce a reprezentat atunci primul stadiu al vederii artificiale, fiind folosit ulterior in constructia masinilor autoghidate.In viitor, computerele vor fi, probabil, un hibrid intre reteaua neuronala si tehnologia conventionala, utilizata in prezent. Tehnologia actuala are avantajul de a fi logica si rapida in probleme matematice. Retelele neuronale nu sunt foarte potrivite pentru ecuatii complicate, asa cum creierul uman se descurca mai greu in calcule matematice, dar exceleaza in deosebirea culorilor, a sunetelor, a formelor. Azi, in ciuda realizarilor extraordinare in domeniu, retelele neuronale se afla in stadiul de inteligenta al unei insecte, fiind inca un concept foarte nou si care trebuie inteles cu maxima precizie. Totusi, in urma cercetarilor din ultimii ani, calculatorul este capabil sa realizeze rationamente si sa descopere legaturi logice intre fapte descrise corect prin propozitii. De asemenea, calculatorul este capabil sa invete din propriile greseli si sa interactioneze cu un utilizator. Folosindu-se de aceste performante, omul a creat computere si programe specifice care sa lucreze pentru el, sa-i re zolve ecuatii complicate, sa proceseze baze de date cu sute de mii de inregistrari, sa-l ajute in proiectarea 1
l a a i m c i t f h i t . a a r v i t a b / n n n e o e o i g f e l l e / ~ L o m t i n c I n r o r . . e o o i l d a s F h o a i r : a l u a t o y . u t t s a @ r c i n n . v a o o a k r d l e c e r e u o o r i n t o i o : / / e C f l l b t p i B h t
Inteligenta Artificiala - Arbori de decizie si producerea unor echipamente tehnice avansate etc. Inteligenta si informatia nu pot fi separate una de alta. Oamenii sunt capabili sa furnizeze o informatie utila, dau dovada de inteligenta, de competenta, dar sunt limitati in cunoastere. Sistemele informatice cladite in jurul unor baze de date inglobeaza acest tip de competenta, dar nu au rationamentul nativ al omului. Deosebirea consta in proprietatile echipamentului electronic ce permite multiplicarea competentei respective de mii de ori, oferind, implicit, o inteligenta multiplicata corespunzator. Aceasta inteligenta, astfel creata, este mult mai ieftina si precisa decat cea umana, putand fi reprodusa mecanic la nesfarsit. Tinand cont de explozia performantelor componentelor electronice si a calculatoarelor in general, este evident ca termenul de Inteligenta Artificiala va capata noi valente in anii urmatori. Iata o scurta enumerare a doar cateva din domeniile in care este si va fi folosita Inteligenta Artificiala: -Sisteme expert . Un sistem expert este format dintr-un grup de programe si o colectie de informatii specifice, cu ajutorul carora se poate purta un dialog om-computer, in vederea rezolvarii problemelor. Informatiile primite de la calculator sunt asemanatoare cu cele date de un expert uman in domeniul respectiv. Sistemele expert multiplica inteligenta formalizata a unor specialisti punando la dispozitia acelor persoane al caror acces la respectivii specialisti este imposibila; -Retele neuronale - sunt sisteme care simuleaza inteligenta prin reproducerea tipurilor de conexiuni fizice care se gasesc in creierul biologic. Din cauza limitarilor tehnologice, numarul acestor conexiuni este foarte mic, comparativ cu cele cateva zeci de miliarde de conexiuni din creierul uman; -Intelegerea limbajului natural - reprezinta programarea computerelor astfel incat acestea sa inteleaga si sa interactioneze cu utilizatorii in limbajul natural al acestora. La baza intelegerii limbajului natural se afla recunoasterea vocala care transforma un dialog in text, folosind un dispozitiv special; -Agentii - sunt entitati computerizate care actioneaza in locul operatorilor umani, adunand stiri de pe Internet, trimitand mesaje de e-mail sau filtrandu-le pe cele primite. Desi lucreaza pe baza unor "cuvinte cheie" si se afla inca in cercetare, agentii vor deveni foarte utili, ajutandu-si utilizatorul sa gaseasca, spre exemplu, numai stirile sau articolele care il intereseaza, scutindu-l de ore intregi de navigare inutila pe Internet; -Roboti . Noile modele de roboti au in componenta computere programate sa "auda", sa "vada" si sa reactioneze la diferiti stimuli externi. Exista deja roboti care pasesc asemenea unei fiinte vii, disting o voce din mai multe, raspunzand numai la comanda acesteia, se orienteaza in spatiu, recunoscand obiectele inconjuratoare, aleg drumul cel mai scurt intre doua puncte si ocolesc obstacolele. -Jocurile pe computer. Dezvoltarea jocurilor si a domeniului multimedia, in general, este in plina expansiune, o afacere de sute de milioane de dolari. La ora actuala, nu se mai poate concepe un joc fara a avea in structura elemente de Inteligenta Artificiala. Implementata corect, aceasta garanteaza un produs bine vandut, deci profit si satisfactie oferita jucatorilor. Este deja cunoscut ca programele de sah pe computer pot invinge un oponent uman, cel mai elocvent exemplu fiind cel de acum cativa ani in care campionul Gary Kasparov a fost intrecut de un super-computer, Deep Blue, creat de firma IBM.
l a a i m c i t f h i t . a a r v i t a b / n n n e o e o i g f e l l e / ~ L o m t Arbori de decizie- definitie i n c I n r o r . . e o o i l Arborii de decizie sunt niste instrumente puternici si populare pentru d clasificare s : Fsi hprezicere. o a a i l r y adecizie Atractivitatea acestor arbori consta in faptul ca in contrast cu retele neuronale, de uarborii a t o . u t prezinta anumite reguli specifice. Regulile pot fi exprimate in asa fel r incat sa le inteleaga t c soamenii a @ i n n .SQL oastfel si sa le poata folosi intr-un limbaj de accesare a bazelor de date cum v este o incat a a d e k l inregistrarile care fac parte dintr-o anumita categorie sa poata fi c accesate. e o r i n r e t e u o o r o i l l : / / C f b i t p B t 2 h
Inteligenta Artificiala - Arbori de decizie In unele aplicatii acuratetea clasificarii sau prezicerii este singurul lucru care conteaza. Astel de situatii nu prezinta intotdeauna interes in mod deosebit. In alte situatii abilitatea de a explica motivul luarii unei decizii este cruciala. Exista o multitudine de algoritmi pentru construirea arborilor de decizie care au in comun calitatea de a fi interpretabili. Unul din cele mai cunoscute si utilizate de-a lungul timpului este C4.5 (imbunatatitul, dar comerciala versiune este cunoscuta sub numele de See 5/C 5.0). Definite: Un arbore decizional este, dupa cum ii spune si numele, o structura sub forma de arbore in care fiecare nod poate fi: - nod terminal (nod frunza) - nod decizional Arbore de decizie - arbore care contine în noduri câte un test pentru o anumit ! proprietate, fiecare arc fiind etichetat cu o valoare a propriet!tii testate în nodul din care pleac! arcul respectiv, iar în fiecare frunz! o clas!. Nodurile terminale sunt etichetate cu clasificatii ( daca c lasificatiile sunt simple cu “yes” si “no” atunci arborele se numeste boolean). Nodurile intermediare sunt etichetate ca atribute.Arcurile care pleaca dintr-un nod A sunt etichetate cu valorile posibile ale atributului A. Arborii de decizie sunt cea mai puternica si cea mai populara metoda de clasificare si predictie. Atractivitatea arborilor de decizie se datorea za faptului ca, in contrast cu retelele neuronale, reprezinta reguli. In unele aplicatii acuratetea clasificarii sau predictiei este singurul lucru care conteaza. In aceste situatii nu conteaza asa mult cum si de ce modelul merge. In alte situatii abilitatea de a explica motivul unei decizii e crucial.Sunt o multime de algoritmi pentru a costrui arbori de decizie care impartesc calitatea interpretarii. Ce este un arbore de decizie? - o reprezentare vizuala a alegerilor, consecintelor, probabilitatilor si oportunitatilor. - Un mod de a simplifica situatiile complicate in scenariu usor de inteles. - Este un mod de a intelege o structura. Aplicatii ale arborilor de decizie: - medicina - gaze si zacaminte minerale - prevederea vremii - predictii ale stocurilor de marfa in comert - credite financiare - analiza greselilor - cateva sisteme de control complexe
l a a i m c i t f h i t . a a r v i t a b / n n n e o e o i g f e l l e / ~ L o m t i n c I n r o r . . e o o i l d a s F h o a i r : a l u a t o y . u t t s a @ r c i n n . v a o o a k r d l e c e r e u o o r i n t o i o : / / e C f l l b t p i B h t
Reprezentare arborilor de decizie Fiecare nod neterminal este conectat la un test care imparte setul sau de raspunsuri posibile intr-o submultime corespunzand rezultatelor de test diferite. Fiecare ramura duce rezultatul testului la un alt nod si fiecare nod este conectat la un set de raspunsuri posibile.
3
Inteligenta Artificiala - Arbori de decizie Nod radacina
Nod frunza
Atribut Test 1
Nod frunza
Set de raspunsuri posibile
Atribut Test 2
Atribut Test 2
Atribut Test 2
Exemplu 1: arobre de decizie pt identificare monezilor: Intrebare1: Este aur, argint sau bronz? Concluzia: daca e aur atunci este 1E. Intrebare2: Este rorund sau cu mai multe parti? (argint) Intrebare2: Este mare sau mic? (cupru) Concluzia : Daca este mare este un 2p, daca e mic este un 1p. Intrebare3: Este mare sau mic? (argint/rotund) Concluzia: Daca e mare e 10p, daca e mic e 5p. Intrebare3: este mare sau mic? (argint/mai multe parti) Concluzia: Daca este mare 2 50p, daca e mic este 20p.
l a a i m c i t f h i t . a a r v i t a b / n n n e o e o i g f e l l e / ~ L o m t i n c I n r o r . . e o o i l d a s F h o a i r : a l u a t o y . u t t s a @ r c i n n . v a o o a k r d l e Arhitectura arata ca un arbore. c e r e u o o r i n t Fiecare nod semnifica un test asupra unei valori atribut. o i o : / / e C f l l b t p i B h t 4
Inteligenta Artificiala - Arbori de decizie Fiecare ramificatie semnifica rezultatul unui test. Arborii de decizie pot fi usor convertiti intr-un set de reguli de clasificare. Exemplu 2: clasificare Tid 0 1 2 3 4 5 6 7
Job Self Industry Univ. Self Univ. Industry Self Self
Age 30 35 50 45 30 35 35 30
(<=50K)
Salary 30K 40K 70K 60K 70K 60K 60K 70K
Sal
Class C C C B B A A A
(>50K )
Age c
Class C
(>40)
(<=40)
Job (Univ., Industry)
Class B
Class C (Self )
Class A
Sample Decision Tree
l a a i m c i t f h i t . Arbori de decizie oblici a a r v i t a b / n Majoritatea arborilor determina ca in interiorul algoritmului sa se creeze cate un e test n la n ocu e o i g f e fiecare nod ceea ce implica in mod obisnuit un singur atribut. Aceste teste sunt echivalente l l e / ~ cu Laxele. m t planele paralele la una din axe, de aceea arborele rezultat se numeste axis-parallel paralel o n n i I oexpert. c r . r Acesti arbori sunt convenabil de folosit pentru ca sunt usor de interpretat de un e sistem . o o i l d a s F hcu oaxele, Arborii de decizie oblici folosesc teste cu multivariabile care nu sunt obligatoriu paralele a : i l r y aoblici nu u t oarborii iar in unele domenii arborii rezultati sunt mai mici si mai precisi. Cu toate aacestea t . u tgreu sde ninterpretat a n @ si gasirea sunt la fel de populari ca arborii axis-paralel pentru ca testele sunt mai r i c . v acu o hiperplanurilor oblice e mai dificila decat cea a gasirii planurilor paralele axele. o a d e k l r e c u r e o o r i n t o i o : / / e C f l l b t p i B h t 5
Inteligenta Artificiala - Arbori de decizie Sarcina fiecarui arbore de decizie este de a folosi informatiile continute in setul de valori a instantierelor etichetate stiute pentru a crea un model ce prevede clasa instantierelor nevazute. Consideram ca instantierele au forma (x1,x2,....,xd,c j), unde xi – valoarea reala Cj – valorea discreta. In cazul hiperplanurilor paralele cu axele testele din nodurile de decizie au forma xi>k. Scopul este sa gasim valoarea corecta pentru i si k. Arborii de decizie oblici au teste din noduri mult mai generale de forma: d
! ai * xi " a d 1 ! 0 , ai – coeficient valoare reala "
i #1
Figura urmatoare arata modul in care arborii decizionali oblici si cei paraleli partitioneaza, segmenteaza acelasi exemplul:
Constructia unui arbore de decizie
l a a i m c i t f h i t . a a r v i t a b / n n n e o e o i g f e l l e / ~ L o m t i n c I n r o r . . e o o i l d a s F h o a i r : a l u a t o y . u t t s a @ r c i n n . v a o o a k r d l e c e r e u o o r i n t o i o : / / e C f l l b t p i B h t
Majoritatea algoritmilor care au fost creati pentru invatarea arborilor de decizie sunt variatii ale unui algoritm de baza care implica o parcurgere „top-down” greedy prin multimea arborilor de decizie posibili. Programele de acest tip construiesc un arbore decizional pornind de la un set de situatii, cazuri. Algoritmul ID3 construieste arbori de decizie în manier ! “top-down”. Pentru fiecare proprietate, putem partitiona multimea de exemple de înv!tare în submultimi disjuncte, în fiecare submultime aflându-se obiecte cu o anumit ! valoare a acelei propriet!ti Algoritmul selecteaz! o proprietate pentru a o testa în nodul curent al arborelui si foloseste aceast! proprietate pentru a partitiona multimea de exemple. Algoritmul se aplic! recursiv pentru construirea subarborilor corespunz!tori fiec!rei partitii. Acest procedeu continu! pân! când toti membrii unei partitii sunt în aceeasi clas!. Clasa devine o frunz ! în arborele de decizie Ordinea testelor este important!, punându-se accent pe criteriul alegerii testului din r !d!cina arborelui de decizie. Vom prezenta o euristic! pentru selectia testului din r !d!cina arborelui de decizie. Mai intai, se construieste arborele de decizie Dupa aceea, se foloseste arborele de decizie pentru a clasifica exemple necunoscuteExemplele necunoscute pot fi clasificate astfel: 6
Inteligenta Artificiala - Arbori de decizie apartin unei clase (YES) nu apartin unei clase (NO) Algoritmul poate fi folosit pentru a clasifica exemplele necunoscute in diverse clase. In acest caz, frunzele arborelui de decizie sunt etichetate cu valorile atributului pentru acea clasa (in loc de a fi etichetate cu YES / NO). Algoritm pentru construirea arborelui de decizie: function ind-arbore (set-exemple, proprietati) begin dac! toate exemplele din set-exemple sunt în aceeasi clas! atunci întoarce o frunz ! etichetat ! cu acea clas! altfel dac! propriet !ti este vid ! atunci întoarce o frunz ! etichetat ! cu disjunctia tuturor claselor din set-exemple altfel begin selecteaz ! o proprietate P pentru a o testa si plaseaz-o în r !d !cina arborelui curent sterge P din propriet !ti pentru fiecare valoare V a lui P begin // algoritm pentru construirea arborelui de decizie creeaz ! o ramur ! a arborelui etichetat ! cu V fie partitieV multimea exemplelor din set-exemple, cu valorea V pentru proprietatea P apeleaza ind-arbore (partitieV, propriet !ti) si plaseaz ! rezultatul la ramura cu valoarea V end; end; end. Determinarea unui arbore de decizie dintr-o sectiune de cod:
if (i % 2 == 0) System.out.println ( "Numar par" ); else { if (i % 3 != 0) System.out.println ("Numar care nu e divizibil cu 3"); else if (i % 7 == 0) System.out.println ("Numar divizibil cu 3 si 7"); else System.out.println ("Numar divizibil cu 3 dar nu cu 7"); }
7
l a a i m c i t f h i t . a a r v i t a b / n n n e o e o i g f e l l e / ~ L o m t i n c I n r o r . . e o o i l d a s F h o a i r : a l u a t o y . u t t s a @ r c i n n . v a o o a k r d l e c e r e u o o r i n t o i o : / / e C f l l b t p i B h t
Inteligenta Artificiala - Arbori de decizie ! Arborele de decizie
Analiza pentru un arbore de decizie: Fie un exemplu de date : Sa presupunem ca avem o strategie fictiva despre marketing. Sa presupunem ca cateva companii trimit diverse promotii la cateva case si inregistreaza aspecte de la fiecare casa in parte si de asemenea daca oamenii raspund sau nu.
District
House Type
Income
Previous Customer
Outcome
Suburban
Detached
High
No
Nothing
Suburban
Detached
High
Responded
Nothing
Rural
Detached
High
No
Responded
Urban
Semi-detached
High
No
Responded
Urban
Semi-detached
Low
No
Responded
Urban
Semi-detached
Low
Responded
Nothing
l a a i m Rural Semi-detached Low Responded Responded c i t f h i t Suburban Terrace High No Nothing . r i a a Suburban Semi-detached Low No Responded v a b t / n n n Urban Terrace Low No Responded e o e o i g f e Suburban Terrace Low Responded Responded l l e / ~ L o m t Rural Terrace High Responded Responded i n c I n r o r . . e o Rural Detached Low No Responded o i l d a s F h o a Urban Terrace High Responded l Nothing i r : a u a t o y . u t t s a @ afecteaza cel rsau c i n n . Ar fi util sa stim ce factori influenteaza pe cineva sa raspunda nu, ce factori v a o o a d l eau raspuns. k rrurale mai mult raspunsul la promotie. Din exemplu putem vedea ca toate casele c e r o e u o r i n t o i o : / / e C f l l b t p i B h t 8
Inteligenta Artificiala - Arbori de decizie Aceasta ar putea fi util pentru a sti in viitor unde sa trimitem brosuri promotionale pentru a avea un raspuns cat mai mare. Pentru a genera un set de reguli putem construe un arbore de decizie. Acesta este facut topdown de la radacina si implica partitionarea datelor in subseturi care contin instante care au valori similare. Facand aceasta ar putea rezulta urmatorul arbore:
Suburban
District | Rural
Urban
3/5 4/4 3/5 | | | House type Responded Previous Customer | | | | | | No Yes Detached Semi-detached Terrace 3/3 2/2 2/2 1/2 1/1 Responded Nothing | | | Nothing Income Responded | | | High Low 1/1 1/1 | | Nothing Responded Nodurile colorate in maro corespund atributelor. La fiecare nod setul de date este impartit in subseturi bazate pe valorile atributelor din acel nod. La nodul radacina am impartit intregul set in 3 ramuri: una care contine numai instante care au valoarea “Suburban” pentru atributul “District”, una care contine numai instante unde atributul “District” este “Urban” si una in care toate instantele sunt pentru atributul “Rural”. Privind la caracteristica primului nod duap radacina vedem ca atunci cand District=Suburban, numai 3 din5 instante au aceeasi valoare a tintei.Aceste 5 instante sunt apoi testate dupa “House-Type” si sunt impartite in alte 3 subseturi. Construirea arborelui continua pana se ajunge la subseturi pure (care respecta atributul tintei). Dupa ce am construit arborele putem foarte usor extrage regulile doar citind caile in arbore: $ $
(District=Suburban) AND (House Type=Detached) => (Outcome = Nothing) (District=Suburban) AND (House Type=Semi-Detached) AND (Income=High) => (Outcome = Nothing) (District=Suburban) AND (House Type=Semi-Detached) AND (Income=Low) => (Outcome = Responded) (District=Suburban) AND (House Type=Terrace) => (Outcome = Responded) (District=Urban) AND (Previous Customer=No) => (Outcome = Responded) (District=Urban) AND (Previous Customer=Yes) => (Outcome = Nothing) (District=Urban) => (Outcome = Responded)
l a a i m c i t f h i t . a a r v i t a b / n n n e o e o Criteriul de despicare a arborelui: i g f e l l L m e / ~dintr-un O parte fundamentala a oricarui algoritm care construieste un arbore de decizie set t o n n i I r de date este metoda in care se selecteaza atributele la fiecare nod din arbore. Unele atribute o o r impart c . . e o iconsistent l datele mai mult pur decat altele. Aceasta inseamna ca valorile sale corespund d mai s cu a r : F a h o a u i instantele care au valori particulare. l ain t o yatributului ce . u t Punctul central al algoritmilor privind arborii decizionali constau selectarea t s a @ i r neomogena c n urmeaza a fi testat la fiecare nod. Pentru alegerea atributului cu cea v mai clasa de n . o o a a e distributie algoritmul utilizeaza conceptul de entropie. k r d l e c n unui atribut r e u o o iselectia Criteriul de estimare la algoritmii ce utilizeaza arbori decizionali este r t ounui atribut o da e C f i o : / /importantei l pentru testare fiecarui nod de decizie din arbore. O ideee asupra l b t p i B h t 9 $
$ $ $ $
Inteligenta Artificiala - Arbori de decizie propritatea numita castig informational information gain, ce masoara cat de bine un atribut dat separa exemplele date dupa un criteriu de clasificare.
Entropia – o masura a omogenitatii unui set de exemple Informal, entropia unui set de date poate fi considerata cat de dezordonat este setul.A fost demonstrat ca entropia reprezinta relatarea informatiei, in sensul ca o entropie mai mare a unei date inseamna ca e nevoie de mai multa informatie pentru a descrie acea data. In construirea unui arbore ne indreptam spre a descreste entropia pana ajungem la nodurile frunza (finale), punct in care avem entropia=0. Entropia este o masura care caracterizeaza puritatea/impuritatea unei colectii arbitrare de exemple. Fiind dat un set S, continand doar exemple pozitive si negative a unui concept dorit, entropia setului S este: Entropie(S)= % p p * log 2 p p
%
p n * log 2 p n , unde pn - proportia exemplelor negative din S p p - proportia exemplelor pozitive din S
Pentru exemplificare se presupunem ca S este o colectie de 25 de exemple din care 15 pozitive si 10 negative: Entropie(S) = - (15/25) log 2 (15/25) - (10/25) log 2 (10/25) = 0.970 Se observa ca entropia este 0 daca toti membrii lui S apartin aceleasi clase. Entropia este 1 cand exista un numar egal de exemple pozitive si negative. Daca numarul de exemple este inegal, entropia este intre 0 si 1. in figura este reprezentata functia de entropie, dupa cum proportia de exemple pozitive variaza intre 0 si 1.
l a a i m c c t Pana acum am prezentat entropia in cazul special al clasificarii binare. Daca atributul are f i i h t valori diferite, entropia are formula: r a . a v i t a b / n n n e o e o i g f e l l e / ~ L o m t i n c I n r o Information gain – Castigul informational r . . e o o i l d a s F h o a : d aedate isetului l u r Sa zicem ca vrem sa aflam un mod cantitativ de a afla efectul impartirii a y t o calculeaza . u t t folosind un atribut particular. Putem folosi o masura numita “Information Gain” care s a @ i rA c . o n o n v reducerea entropiei care ar rezulta din impartirea datelor dupa atributul a a selectarea e ca r !d!cin! k r d l Pentru un anumit atribut A, câstigul informational produs c de acestuia e n r o i continutul de t e r o a arborelui de decizie este egal cu continutul total de infomatie din u arbore minus o o e i : / / C f l l b i t p 10 B t h
Inteligenta Artificiala - Arbori de decizie informatie necesar pentru a termina clasificarea (construirea arborelui), dupa selectarea atributului A ca radacina. Information gain-castigul informational reprezinta reducerea asteptata in entropie cauzata de segmentare. Mai précis, information gain, Gain(S, A) a unui atribut A in raport cu o colectie S este definit ca:
unde Value(A) este un set de posibile valori pentru atributul A S v este o submultime a lui S pentru care atributul A are valoarea v S v = {s & S | A(s) = v} Primul termen din Gain este chiar entropia lui S, iar cel de-al doilea termen e valoarea asteptata pentru entropie dupa ce S este segmentat folosind atributul A, deci este suma entropiilor pentru fiecare submultime S v, inmultita cu fractia | S v|/|S|. Procesul continua alegand un nou atribut si repetand segmentarea cu fiecare nod neterminal. Procesul se repeta pana cand una din cele doua conditii este satisfacuta: 1. toate atributele au fost deja incluse in parcurgerea arborelui; 2. exemplele antrenate associate cu nodul frunza au toate aceeasi valoare de atribut (entropia lor e 0).
Calculand aceasta valoare pentru fiecare atribut care a ramas, putem vedea care din ele imparte data in modul cel mai pur. $ $ $
Gain(S,House Type) = 0.049 bits Gain(S,Income) =0.151 bits Gain(S,Previous Customer) = 0.048 bits
Algoritmul in pseudo-cod: Input : A set date, S Output : A arbore decizie DACA toate instantele au aceeasi valoare pentru atributul tinta Atunci constr un arbore care e simplu din aceasta valoare ATLFEL - Calculeaza valorile Gain pentru toate atributele si selecteaza atributul cu cea mai mica valoare si creeaza un nod pentru acest atribut - Constr o ramificatie pentru acest nod pentru fiecare valoare a atributlui. - Asigneaza toate valorile posibile ale atributelor la ramificatii - Urmeaza fiecare ramificatie impartind setul de date pentru a fi numai instante ordonate dupa valorile ramificatiilor si apoi intoarcete la 1.
11
l a a i m c i t f h i t . a a r v i t a b / n n n e o e o i g f e l l e / ~ L o m t i n c I n r o r . . e o o i l d a s F h o a i r : a l u a t o y . u t t s a @ r c i n n . v a o o a k r d l e c e r e u o o r i n t o i o : / / e C f l l b t p i B h t
Inteligenta Artificiala - Arbori de decizie In continuare prezentam un exemplu de construire a unui arbore decizional folosindu-ne de entropie: Dependent Attributes / Atribute independente / Condition Attributes Decision Attributes Nume
Par
Inaltime
Greutate
Lotiune
Resultat
Sarah
Blonda
Medie
Mica
Nu
Ars de soare (positive)
Dana
Blonda
Inalta
Medie
Da
Nu (negative)
Alex
Bruneta
Mica
Medie
Da
Nu
Annie
Blonda
Mica
Medie
Nu
Ars de soare
Emily
Roscata
Medie
Mare
Nu
Ars de soare
Pete
Bruneta
Inalta
Mare
Nu
Nu
John
Bruneta
Medie
Mare
Nu
Nu
Katie
Blonda
Mica
Mica
Da
Nu
Faza I: De la date la arbore
Calculeaza entropia medie a setului de date complet pentru fiecare din cele 4 atribute
b1 = blonda b2 = roscata b3 = bruneta
Entropie = 0.50
12
l a a i m c i t f h i t . a a r v i t a b / n n n e o e o i g f e l l e / ~ L o m t i n c I n r o r . . e o o i l d a s F h o a i r : a l u a t o y . u t t s a @ r c i n n . v a o o a k r d l e c e r e u o o r i n t o i o : / / e C f l l b t p i B h t
Inteligenta Artificiala - Arbori de decizie
b1 = mica b2 = medie b3 = inalta
Entropie = 0.69
Calcularea entropiei pentru atributul „inaltime”:
13
l a a i m c i t f h i t . a a r v i t a b / n n n e o e o i g f e l l e / ~ L o m t i n c I n r o r . . e o o i l d a s F h o a i r : a l u a t o y . u t t s a @ r c i n n . v a o o a k r d l e c e r e u o o r i n t o i o : / / e C f l l b t p i B h t
Inteligenta Artificiala - Arbori de decizie b1 = mica b2 = medie b3 = mare
Entropie = 0.94
Calcularea entropiei pentru atributul „greutate”:
b1 = nu b2 = da
Entropie = 0.61
14
l a a i m c i t f h i t . a a r v i t a b / n n n e o e o i g f e l l e / ~ L o m t i n c I n r o r . . e o o i l d a s F h o a i r : a l u a t o y . u t t s a @ r c i n n . v a o o a k r d l e c e r e u o o r i n t o i o : / / e C f l l b t p i B h t
Inteligenta Artificiala - Arbori de decizie Calcularea entropiei pentru atributul „lotiune de branzat”:
Rezultate: Attribute
Average Entropy
Culoarea parului
0.50
Inaltime
0.69
Greutate
0.94
Lotiune
0.61
Atributul „culoarea parului” are entropia cea mai mica.
l a a i m c i t f h 2.Asemãnãtor, acum alegem alt test pentru separarea indivizilor arsi de soarea sau nu t i . a pentru ramura blondelor a r v i t a b / n n n Rezultate: e o e o i g f e l l e / ~ L o m t Attribute Entropie i n c I n r o r . . e o o i l Inaltime 0.50 d a s F h o a i r : a l u Greutate 1.00 a t o y . u t t Lotiune 0.00 s a @ r c i n n . v a o o a k r d l e c e r e u o o r i n t o i o : / / e C f l l b t p i 15 B t h
Inteligenta Artificiala - Arbori de decizie Atributul „lotiune” este selectat deoarece el are entropia cea mai mica în selecþia ramurei „par blond”.Astfel, folosind impreuna testele pentru „culoarea parului” si „lotiune” asigura indentificarea corecta a tuturor exemplelor din tabelul initial
Arborele de decizie final Avantajele si dezavantajele folosirii arborilor decizionali Avantaje:
- sunt capabili sa genereze reguli usor de inteles; - fac clasificari fara a necesita prea mult calcul - pot lucra atat cu variabile continuee cat si cu variabile absolute - furnizeaza explicit care campuri sunt cele mai importante pentru calsificare - timp executie rapid - regulile generate sunt usor interpretate de oameni - arhitectura optima pentru set date mari - poate trata date de dimensiuni mari Dezavantaje:
-
-
l a a i m c i t f h i t . a a rsa i nu sunt recomandate pentru sarcinile de apreciere unde scopul este v t a b prezica valoarea unui atribut continuu.; / n n n e nu sunt recomandati in clasificari cu multe clase si numar g relativ omic ode i e e l l exemple; e / ~ f L o m t n c nu trateaza bine regiunile nerectangulare;majoritatea ce i I nalgoritmilor o r . r . l o i folosesc arbori de decizie examineaza doar un singur camp la un o d e a s oputea sa F h a u moment dat, acest lucru ar putea duce la o clasificare care s-ar : i l rin y a a t o nu corespunda cu distribuirea existenta a inregistrarilor spatiul de . u t t c s a @ r i decizie. . o n o n v a nu poate captura corelatiile intre atribute a e k r d l e c r considera taieri numai dupa axe t paralele. e u o o r i n o i o : / / e C f l l b t p i 16 B t h