17
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 -

Arbori de Decizie

Embed Size (px)

Citation preview

Page 1: Arbori de Decizie

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 -

Page 2: Arbori de Decizie

Biblio

teca

virtu

ala d

e Inte

ligen

ta ar

tifici

ala

http

://eu

reka

.cs.tu

iasi.r

o/~fle

on/bvia

.htm

C

oordonat

or: Flo

rin L

eon

florin

leon@

yahoo.co

m

Inteligenta Artificiala - Arbori de decizie

1

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 se 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 rezolve ecuatii complicate, sa proceseze baze de date cu sute de mii de inregistrari, sa-l ajute in proiectarea

Page 3: Arbori de Decizie

Biblio

teca

virtu

ala d

e Inte

ligen

ta ar

tifici

ala

http

://eu

reka

.cs.tu

iasi.r

o/~fle

on/bvia

.htm

C

oordonat

or: Flo

rin L

eon

florin

leon@

yahoo.co

m

Inteligenta Artificiala - Arbori de decizie

2

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 punand-o 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.

Arbori de decizie- definitie

Arborii de decizie sunt niste instrumente puternici si populare pentru clasificare si prezicere. Atractivitatea acestor arbori consta in faptul ca in contrast cu retele neuronale, arborii de decizie prezinta anumite reguli specifice. Regulile pot fi exprimate in asa fel incat oamenii sa le inteleaga si sa le poata folosi intr-un limbaj de accesare a bazelor de date cum este SQL astfel incat inregistrarile care fac parte dintr-o anumita categorie sa poata fi accesate.

Page 4: Arbori de Decizie

Biblio

teca

virtu

ala d

e Inte

ligen

ta ar

tifici

ala

http

://eu

reka

.cs.tu

iasi.r

o/~fle

on/bvia

.htm

C

oordonat

or: Flo

rin L

eon

florin

leon@

yahoo.co

m

Inteligenta Artificiala - Arbori de decizie

3

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 clasificatiile 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 datoreaza 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

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.

Page 5: Arbori de Decizie

Biblio

teca

virtu

ala d

e Inte

ligen

ta ar

tifici

ala

http

://eu

reka

.cs.tu

iasi.r

o/~fle

on/bvia

.htm

C

oordonat

or: Flo

rin L

eon

florin

leon@

yahoo.co

m

Inteligenta Artificiala - Arbori de decizie

4

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.

Arhitectura arata ca un arbore. Fiecare nod semnifica un test asupra unei valori atribut.

Nod radacina

Nod frunza

Nod frunza

Set de raspunsuri posibile

Atribut Test 1

Atribut Test 2

Atribut Test 2

Atribut Test 2

Subset1 Subset2 Subset3

Page 6: Arbori de Decizie

Biblio

teca

virtu

ala d

e Inte

ligen

ta ar

tifici

ala

http

://eu

reka

.cs.tu

iasi.r

o/~fle

on/bvia

.htm

C

oordonat

or: Flo

rin L

eon

florin

leon@

yahoo.co

m

Inteligenta Artificiala - Arbori de decizie

5

Fiecare ramificatie semnifica rezultatul unui test. Arborii de decizie pot fi usor convertiti intr-un set de reguli de clasificare. Exemplu 2: clasificare Tid Job Age Salary Class 0 Self 30 30K C 1 Industry 35 40K C 2 Univ. 50 70K C 3 Self 45 60K B 4 Univ. 30 70K B 5 Industry 35 60K A 6 Self 35 60K A 7 Self 30 70K A

Arbori de decizie oblici

Majoritatea arborilor determina ca in interiorul algoritmului sa se creeze cate un test la fiecare nod ceea ce implica in mod obisnuit un singur atribut. Aceste teste sunt echivalente cu planele paralele la una din axe, de aceea arborele rezultat se numeste axis-parallel paralel cu axele. Acesti arbori sunt convenabil de folosit pentru ca sunt usor de interpretat de un sistem expert. Arborii de decizie oblici folosesc teste cu multivariabile care nu sunt obligatoriu paralele cu axele, iar in unele domenii arborii rezultati sunt mai mici si mai precisi. Cu toate acestea arborii oblici nu sunt la fel de populari ca arborii axis-paralel pentru ca testele sunt mai greu de interpretat si gasirea hiperplanurilor oblice e mai dificila decat cea a gasirii planurilor paralele cu axele.

Class C

(>50K)

(<=50K)

c

Sample Decision Tree

Sal

Age

(>40)(<=40)

Job

Class B Class A

Class C (Univ., Industry)

(Self)

Page 7: Arbori de Decizie

Biblio

teca

virtu

ala d

e Inte

ligen

ta ar

tifici

ala

http

://eu

reka

.cs.tu

iasi.r

o/~fle

on/bvia

.htm

C

oordonat

or: Flo

rin L

eon

florin

leon@

yahoo.co

m

Inteligenta Artificiala - Arbori de decizie

6

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,cj), 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:

0* 11

>+ +=∑ d

d

iii axa , ai � coeficient valoare reala

Figura urmatoare arata modul in care arborii decizionali oblici si cei paraleli partitioneaza, segmenteaza acelasi exemplul:

Constructia unui arbore de decizie

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:

Page 8: Arbori de Decizie

Biblio

teca

virtu

ala d

e Inte

ligen

ta ar

tifici

ala

http

://eu

reka

.cs.tu

iasi.r

o/~fle

on/bvia

.htm

C

oordonat

or: Flo

rin L

eon

florin

leon@

yahoo.co

m

Inteligenta Artificiala - Arbori de decizie

7

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"); }

Page 9: Arbori de Decizie

Biblio

teca

virtu

ala d

e Inte

ligen

ta ar

tifici

ala

http

://eu

reka

.cs.tu

iasi.r

o/~fle

on/bvia

.htm

C

oordonat

or: Flo

rin L

eon

florin

leon@

yahoo.co

m

Inteligenta Artificiala - Arbori de decizie

8

! 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

Rural Semi-detached Low Responded Responded

Suburban Terrace High No Nothing

Suburban Semi-detached Low No Responded

Urban Terrace Low No Responded

Suburban Terrace Low Responded Responded

Rural Terrace High Responded Responded

Rural Detached Low No Responded

Urban Terrace High Responded Nothing

Ar fi util sa stim ce factori influenteaza pe cineva sa raspunda sau nu, ce factori afecteaza cel

mai mult raspunsul la promotie. Din exemplu putem vedea ca toate casele rurale au raspuns.

Page 10: Arbori de Decizie

Biblio

teca

virtu

ala d

e Inte

ligen

ta ar

tifici

ala

http

://eu

reka

.cs.tu

iasi.r

o/~fle

on/bvia

.htm

C

oordonat

or: Flo

rin L

eon

florin

leon@

yahoo.co

m

Inteligenta Artificiala - Arbori de decizie

9

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 top-down de la radacina si implica partitionarea datelor in subseturi care contin instante care au valori similare. Facand aceasta ar putea rezulta urmatorul arbore:

District |

Suburban 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) Criteriul de despicare a arborelui:

O parte fundamentala a oricarui algoritm care construieste un arbore de decizie dintr-un set de date este metoda in care se selecteaza atributele la fiecare nod din arbore. Unele atribute impart datele mai mult pur decat altele. Aceasta inseamna ca valorile sale corespund mai consistent cu instantele care au valori particulare. Punctul central al algoritmilor privind arborii decizionali constau in selectarea atributului ce urmeaza a fi testat la fiecare nod. Pentru alegerea atributului cu cea mai neomogena clasa de distributie algoritmul utilizeaza conceptul de entropie. Criteriul de estimare la algoritmii ce utilizeaza arbori decizionali este selectia unui atribut pentru testare fiecarui nod de decizie din arbore. O ideee asupra importantei unui atribut o da

Page 11: Arbori de Decizie

Biblio

teca

virtu

ala d

e Inte

ligen

ta ar

tifici

ala

http

://eu

reka

.cs.tu

iasi.r

o/~fle

on/bvia

.htm

C

oordonat

or: Flo

rin L

eon

florin

leon@

yahoo.co

m

Inteligenta Artificiala - Arbori de decizie

10

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)= nnpp pppp 22 log*log* −− , unde np - proportia exemplelor negative din S

pp - 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) log2 (15/25) - (10/25) log2 (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.

Pana acum am prezentat entropia in cazul special al clasificarii binare. Daca atributul are c

valori diferite, entropia are formula:

Information gain �Castigul informational

Sa zicem ca vrem sa aflam un mod cantitativ de a afla efectul impartirii setului d edate folosind un atribut particular. Putem folosi o masura numita �Information Gain� care calculeaza reducerea entropiei care ar rezulta din impartirea datelor dupa atributul A

Pentru un anumit atribut A, câstigul informational produs de selectarea acestuia ca rădăcină a arborelui de decizie este egal cu continutul total de infomatie din arbore minus continutul de

Page 12: Arbori de Decizie

Biblio

teca

virtu

ala d

e Inte

ligen

ta ar

tifici

ala

http

://eu

reka

.cs.tu

iasi.r

o/~fle

on/bvia

.htm

C

oordonat

or: Flo

rin L

eon

florin

leon@

yahoo.co

m

Inteligenta Artificiala - Arbori de decizie

11

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 Sv este o submultime a lui S pentru care atributul A are valoarea v Sv = {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 Sv, inmultita cu fractia |Sv|/|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.

Page 13: Arbori de Decizie

Biblio

teca

virtu

ala d

e Inte

ligen

ta ar

tifici

ala

http

://eu

reka

.cs.tu

iasi.r

o/~fle

on/bvia

.htm

C

oordonat

or: Flo

rin L

eon

florin

leon@

yahoo.co

m

Inteligenta Artificiala - Arbori de decizie

12

In continuare prezentam un exemplu de construire a unui arbore decizional folosindu-ne de entropie:

Atribute independente / Condition Attributes Dependent 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

Page 14: Arbori de Decizie

Biblio

teca

virtu

ala d

e Inte

ligen

ta ar

tifici

ala

http

://eu

reka

.cs.tu

iasi.r

o/~fle

on/bvia

.htm

C

oordonat

or: Flo

rin L

eon

florin

leon@

yahoo.co

m

Inteligenta Artificiala - Arbori de decizie

13

b1 = mica b2 = medie b3 = inalta

Entropie = 0.69

Calcularea entropiei pentru atributul �inaltime�:

Page 15: Arbori de Decizie

Biblio

teca

virtu

ala d

e Inte

ligen

ta ar

tifici

ala

http

://eu

reka

.cs.tu

iasi.r

o/~fle

on/bvia

.htm

C

oordonat

or: Flo

rin L

eon

florin

leon@

yahoo.co

m

Inteligenta Artificiala - Arbori de decizie

14

b1 = mica b2 = medie b3 = mare

Entropie = 0.94

Calcularea entropiei pentru atributul �greutate�:

b1 = nu b2 = da Entropie = 0.61

Page 16: Arbori de Decizie

Biblio

teca

virtu

ala d

e Inte

ligen

ta ar

tifici

ala

http

://eu

reka

.cs.tu

iasi.r

o/~fle

on/bvia

.htm

C

oordonat

or: Flo

rin L

eon

florin

leon@

yahoo.co

m

Inteligenta Artificiala - Arbori de decizie

15

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.

2.Asemãnãtor, acum alegem alt test pentru separarea indivizilor arsi de soarea sau nu pentru ramura blondelor

Rezultate:

Attribute Entropie Inaltime 0.50 Greutate 1.00 Lotiune 0.00

Page 17: Arbori de Decizie

Biblio

teca

virtu

ala d

e Inte

ligen

ta ar

tifici

ala

http

://eu

reka

.cs.tu

iasi.r

o/~fle

on/bvia

.htm

C

oordonat

or: Flo

rin L

eon

florin

leon@

yahoo.co

m

Inteligenta Artificiala - Arbori de decizie

16

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:

- nu sunt recomandate pentru sarcinile de apreciere unde scopul este sa prezica valoarea unui atribut continuu.;

- nu sunt recomandati in clasificari cu multe clase si numar relativ mic de exemple;

- nu trateaza bine regiunile nerectangulare;majoritatea algoritmilor ce folosesc arbori de decizie examineaza doar un singur camp la un moment dat, acest lucru ar putea duce la o clasificare care s-ar putea sa nu corespunda cu distribuirea existenta a inregistrarilor in spatiul de decizie.

- nu poate captura corelatiile intre atribute - considera taieri numai dupa axe paralele.