You are on page 1of 55

Arbori binari de decizie

MARF
Masterat SIC,IS,RC, anul I
Arbori binari de decizie
Principiul metodei
Msuri de impuritate
Constructia unui arbore binar de decizie
Algoritm
Implementare n OpenCV
Concluzii
Arbori binari de decizie
Clasificare n mai multe etape, clasele
sunt rejectate pe parcursul procesului
pn ce una este acceptat
Spatiul caracteristicilor este divizat n mai
multe regiuni, corespunztoare claselor
Clasificatori neliniari

Arbori binari de decizie
Arbori binari de decizie
Secvena deciziilor este aplicat unor
caracteristici individuale
Uzual testele sunt de forma este xi<o unde o
este o valoare de prag
Rdcina i nodurile intermediare corespund
unor astfel de teste
Fiecare nod frunz conine o decizie privind
apartenena la o clas sau alta
Acesti arbori sunt numii ordinary binary
classification trees (OBCTs).

Arbori binari de decizie
Principiul de
recunoatere va
fi demonstrat pe
un exemplu n
care p=2 i
M=2, dar poate
fi aplicat i
pentru M>2.
Arbori binari de decizie
Arbori binari de decizie
Arbori binari de decizie
Arbori binari de decizie
Arbori binari de decizie
Arbori binari de decizie
Arbori binari de decizie
Arbori binari de decizie
Arbori binari de decizie
Arbori binari de decizie
Arbori binari de decizie
Arbori binari de decizie
Arbori binari de decizie
Arbori binari de decizie (ex.2)
Arbori binari de decizie
Arbori binari de decizie
Nu sunt unici !
Arbori binari de decizie
Nu sunt unici !
Arbori binari de decizie
Este posibil ca decizia s fie luat fr a
consulta valorile tuturor caracteristicilor
Arborele de decizie
nu este unic
este dedus din geometria dispunerii n plan a
formelor
pentru p>3 metoda nu poate fi aplicat

Arbori binari de decizie
Nodului rdcin i se asociaz mulimea
formelor E
La fiecare nod t este asociat un subset Xt de
forme din E
Prin rspunsul D sau N acest set este divizat n
dou subseturi XtY i XtN
Proprieti
Construcia arborilor binari de
decizie. Setul de ntrebri
Fie n numrul de forme din E i p numrul de
caracteristici.
Fiecare caracteristic xk, k=1,p, poate lua un
numr de valori nk s n.
Pentru fiecare caracteristic avem un numr de
valori de prag okt considerate la jumtatea
distanei dintre dou valori consecutive ale
caracteristicii xk n spaiul formelor.
Numrul total de ntrebri va fi egal cu

=
p
k
kt
n
1
Arbori binari de decizie
Ce este necesar:
Un criteriu prin care s se decid care este
metoda cea mai bun de divizare a
submulimilor de forme dintr-un set de metode
candidat
O regul prin care s se decid oprirea divizrii
setului de forme. Aceast regul controleaz
creterea arborelui i declar c un anumit nod
este un nod frunz.
O regul de decizie a clasficrii n nodurile
frunz.
Constructia arborilor binari de decizie
Problema: ce caracteristic combinat cu ce valoare de
prag purific cel mai bine setul de date.

Este important ca prin ntrebarea pus n fiecare nod t,
setul Xt s se divizeze n dou subseturi XtD i XtN care
s fie mai omogene dect setul iniial.

Exemplu. Presupunem c nainte de nodul t setul Xt
coninea forme din M=4 clase.
Dac dup nodul t, subsetul XtD va conine numai forme
din clasele C1 i C2, iar n XtN numai forme din clasele C3
i C4, atunci se poate afirma c dup testul din nodul t
submulimile au devenit mai pure.

Constructia arborilor binari de decizie
Msuri de impuritate
Cazul continuu
n cazul unei regresii, msura poate fi dat
de suma ptratelor diferenelor dintre
valorile observate i cele calculate prin
funcia de regresie determinat.

Constructia arborilor binari de decizie
t) P(C t) P(C t I
M
k
| log | ) (
k 2
1
k
=
=
Entropia ca msur a impuritii

Fie P(C
k
|t) probabilitatea ca dat fiind nodul t, o form din setul X
t
s
aparin clasei C
k
.
n practic aceast probabilitate este calculat prin raportul n
tk
/n
t
,
unde
n
tk
este numrul de forme din X
t
care aparin clasei C
k
,
n
t
este numrul de forme din setul X
t
.
O msur a impuritii este entropia
Constructia arborilor binari de decizie
I(t) va lua valoarea maxim dac P(C
k
|t)=1/M, pentru
k=1,M,
ceea ce ar corespunde la impuritate maxim,
Dac n setul X
t
toate formele aparin unei singure clase
C
i
, P(C
i
|t)=1 i P(C
k
|t)=0 pentru k=i, atunci I(t)=0.
t) P(C t) P(C t I
M
k
| log | ) (
k 2
1
k
=
=
Constructia arborilor binari de decizie
Msura Gini de impuritate
t) P(C t) P(C t I
j i
| | ) (
j i
=
=
Eroarea de clasificare maxim
{ } t) P(C t I | max 1 ) (
k
=
Constructia arborilor binari de decizie
Variaia impuritii ntr-un arbore de decizie
Fie un nod t. Setul asociat, X
t
coninnd n
t
forme, este divizat n acest nod n
dou subseturi X
tD
si X
tN
avnd fiecare n
tD
i respectiv n
tN
forme. Descreterea
impuritii prin trecerea de la nodul t la nodurile t
D
si t
N
este exprimat prin
relaia
) ( ) ( ) ( ) (
N
t
tN
D
t
tD
t I
n
n
t I
n
n
t I t I = A
Obiectiv: se alege din setul de ntrebri candidate acea ntrebare
care produce o divizare ce conduc la o descretere maxim a
impuritii.
Constructia arborilor binari de decizie
Regula de oprire a divizrii setului de
forme
Un nod devine frunz cnd s-a ajuns la
puritate, I(t)=0, sau cnd descretera
maxim a impuritii, AI(t), este mai mic
dect o valoare de prag.
O alt cale de a opri divizarea este
constatarea c nt este mai mic dect o
valoare de prag, N.
Constructia arborilor binari de decizie
Regula de decizie a clasficrii n nodurile frunz

Fie un nod frunz f
xeC
i
dac P(C
i
|f)= max { P(C
k
|f)}
Cu alte cuvinte, se asigneaz clasa majoritar din setul de
forme asociat nodului frunz f.

Algorimul de construcie
Procedura constructArbDecizie(E,iclas[], arb) este
*) Se pornete cu nodul rdcin, X
t
=E
pentru *) fiecare nou nod t execut
pentru *) fiecare caracteristic x
j
cu j=1,p execut
pentru *) fiecare valoare o
jn
,cu n=1,...,n
tj
execut
*) genereaz seturile X
tD
i X
tN
corespunztoare
rspunsului la ntrebarea este x
ij
< o
jn

pentru i= 1,2 . . . . . Nt
*) calculeaz AI(t)

*) determin o
j,no
care conduce la cea mai mare
descretere a impuritii

Algorimul de construcie
*) determin caracteristica x
jo
i valoarea asociat o
jo,no

care conduce la cea mai mare descretere a impuritii
dac *) oprirea divizrii este ndeplinit, atunci
*) declar nodul t frunz i i asociaz o clas
altfel
*) genereaz doi descendeni, t
Y
i t
N
cu
subseturile asociate, X
tY
i X
tN
, coresp.
ntrebrii este x
jo
< o
jo,no



sfrit
Arbori binari de decizie n OpenCV
Arbori binari de decizie n OpenCV
p,x,s,n,t,p,f,c,n,k,e,e,s,s,w,w,p,w,o,p,k,s,u
e,x,s,y,t,a,f,c,b,k,e,c,s,s,w,w,p,w,o,p,n,n,g
e,b,s,w,t,l,f,c,b,n,e,c,s,s,w,w,p,w,o,p,n,n,m
p,x,y,w,t,p,f,c,n,n,e,e,s,s,w,w,p,w,o,p,k,s,u
/* The sample demonstrates how to build a decision tree for
classifying mushrooms.
It uses the sample base agaricus-lepiota.data from UCI
Repository.

Newman, D.J. & Hettich, S. & Blake, C.L. & Merz, C.J. (1998).
UCI Repository of machine learning databases
[http://www.ics.uci.edu/~mlearn/MLRepository.html].
Irvine, CA: University of California, Department of
Information and Computer Science.
*/
Arbori binari de decizie n OpenCV
CvDTree* mushroom_create_dtree( const CvMat* data, const CvMat* missing,
const CvMat* responses, float p_weight ) {
CvDTree* dtree;
CvMat* var_type;
int i, hr1 = 0, hr2 = 0, p_total = 0;
float priors[] = { 1, p_weight };

var_type = cvCreateMat( data->cols + 1, 1, CV_8U );
cvSet( var_type, cvScalarAll(CV_VAR_CATEGORICAL) );
dtree = new CvDTree;
dtree->train( data, CV_ROW_SAMPLE, responses, 0, 0, var_type, missing,
CvDTreeParams( 8, // max depth
10, // min sample count
0, // regression accuracy: N/A here
true, // compute surrogate split, as we have missing data
15, // max number of categories
10, // the number of cross-validation folds
true, // use 1SE rule => smaller tree
true, // throw away the pruned tree branches
priors // the bigger p_weight, the more attention
// to the poisonous mushrooms (a mushroom will be
// judged to be poisonous with bigger chance)
)
);
Arbori binari de decizie n OpenCV
for( i = 0; i < data->rows; i++ ) {
CvMat sample, mask;
cvGetRow( data, &sample, i );
cvGetRow( missing, &mask, i );
double r = dtree->predict( &sample, &mask )->value;
int d = fabs(r - responses->data.fl[i]) >= FLT_EPSILON;
if( d )
{
if( r != 'p' )
hr1++;
else
hr2++;
}
p_total += responses->data.fl[i] == 'p';
}
printf( "Results on the training database:\n"
"\tPoisonous mushrooms mis-predicted: %d (%g%%)\n"
"\tFalse-alarms: %d (%g%%)\n", hr1, (double)hr1*100/p_total,
hr2, (double)hr2*100/(data->rows - p_total) );

cvReleaseMat( &var_type );
return dtree;
}
Arbori binari de decizie n OpenCV
p, x,s,n,t,p, f,c,n,k,e, e,s,s,w,w, p,w,o,p,k, s, u
e, x,s,y,t,a, f,c,b,k,e, c,s,s,w,w, p,w,o,p,n, n, g
Clasa 1.......5 6......10 11.....15 16.....20 21 22
Newman, D.J. & Hettich, S. & Blake, C.L. & Merz, C.J. (1998).
UCI Repository of machine learning databases
[http://www.ics.uci.edu/~mlearn/MLRepository.html].
Irvine, CA: University of California, Department of
Information and Computer Science.
Attribute Information:
1. cap-shape: bell=b,conical=c,convex=x,flat=f, knobbed=k,sunken=s
2. cap-surface: fibrous=f,grooves=g,scaly=y,smooth=s
3. cap-color: brown=n,buff=b,cinnamon=c,gray=g,green=r, pink=p, purple=u, red=e, white=w,
yellow=y
4. bruises?: bruises=t,no=f
5. odor: almond=a,anise=l,creosote=c,fishy=y,foul=f, musty=m,none=n,pungent=p,spicy=s
6. gill-attachment: attached=a,descending=d,free=f,notched=n
7. gill-spacing: close=c,crowded=w,distant=d
8. gill-size: broad=b,narrow=n
9. gill-color: black=k,brown=n,buff=b,chocolate=h,gray=g, green=r, orange=o, pink=p, purple=u,
red=e, white=w, yellow=y
10. stalk-shape: enlarging=e,tapering=t
11. stalk-root: bulbous=b,club=c,cup=u,equal=e, rhizomorphs=z,rooted=r,missing=?
12. stalk-surface-above-ring: fibrous=f,scaly=y,silky=k,smooth=s
13. stalk-surface-below-ring: fibrous=f,scaly=y,silky=k,smooth=s
14. stalk-color-above-ring: brown=n,buff=b,cinnamon=c,gray=g,orange=o, pink=p, red=e, white=w,
yellow=y
15. stalk-color-below-ring: brown=n,buff=b,cinnamon=c,gray=g,orange=o, pink=p, red=e, white=w,
yellow=y
16. veil-type: partial=p,universal=u
17. veil-color: brown=n,orange=o,white=w,yellow=y
18. ring-number: none=n,one=o,two=t
19. ring-type: cobwebby=c,evanescent=e,flaring=f,large=l, none=n,pendant=p,sheathing=s,zone=z
20. spore-print-color: black=k,brown=n,buff=b,chocolate=h,green=r,
orange=o,purple=u,white=w,yellow=y
21. population: abundant=a,clustered=c,numerous=n, scattered=s,several=v,solitary=y
22. habitat: grasses=g,leaves=l,meadows=m,paths=p, urban=u,waste=w,woods=d


Arbori binari de decizie n OpenCV
Rezultatul
-100% clasificare corect a
setului de nvare
- ar putea apare probleme la
utilizarea cu date reale
deoarece arborele
nglobeaz i zgomotele din
setul de nvare

Combinaia erori mici n setul
de nvare-erori mari n cel de
test caracterizeaz o
problem over fit: variance
Over fit
Dac erorile de clasificare a setului de
nvare i a setului de test sunt mici, dar
n exploatare (cu date reale) erorile sunt
mari, atunci setul de nvare este
nerealist (datele au fost prelevate n
condiii neuzuale, probabil n acele condiii
n care prelevarea lor a fost mai uoar).
Situatia
complementar

Under fit: bias

Probabil algoritmul nu
este potrivit sau
caracteristicile nu au
potenial discriminativ
ridicat.

Problema Solutii posibile
Bias (under fit)
Mai multe caracteristici
Utilizarea unui algoritm mai
puternic
Variance (over fit)
Mai multe forme n setul de
nvare pot netezi modelul
Mai puine caracteristici
Un algoritm mai puin performant
Erori mici la nvare i test,
dar mari n practic
De achiziionat date realistice
Modelul este incapabil de a
nva
Redefinirea caracteristicilor
Colectarea de noi date mai
relevante
Utilizarea unui algoritm mai puternic
Arbore de decizie simplificat (1)
Cu toate c e un
arbore de decizie
simplificat d
rezultate bune i
pe setul de test
i n practic.

PROBLEMA:
1.13% din
ciupercile
otrvitoare vor fi
clasificate drept
comestibile
Arbore de decizie simplificat (2)
Arbore de decizie
simplificat pentru care s-
au multiplicat de 10 ori
ponderile ciupercilor
otrvitoare.
Rezultat:
Pentru siguran, unele
ciuperci comestibile vor
fi considerate
otrvitoare

Spre exemplu n nodul frunz din
dreapta, decizia este
necomestibil, deoarece nu se
realizeaz o majoritate de 10 x
mai mare
Comparaia celor doi arbori simplificai
1.
+ eroare general de
clasificare mic
+ risc de a clasifica o
ciuperc otrvitoare
drept comestibil

2.
+ eroare general de
clasificare mai mare
+ nu prezint risc de a
clasifica o ciuperc
otrvitoare drept
comestibil
+ cost > ciuperci
comestibile vor fi
declarate otrvitoare
Importana variabilelor n cei doi
arbori de decizie simplificai
Col5. odor: almond=a,anise=l,creosote=c,fishy=y,foul=f, musty=m, none=n, pungent=p,
spicy=s
Col20. spore-print-color: black=k,brown=n,buff=b,chocolate=h,green=r, orange=o,
purple=u,white=w,yellow=y
Col15. stalk-color-below-ring: brown=n,buff=b,cinnamon=c,gray=g,orange=o, pink=p,
red=e, white=w, yellow=y
Metoda arborilor binari de decizie
Metoda arborilor de decizie este probabil cea
mai rspndit tehnologie de clasificare.
Funcioneaz pentru caracteristici cantitative i
calitative. n cazul caracteristicilor calitative
testele vor fi de forma: xe{v1, v2, ..., vq} unde
vi sunt valorile posibile ale variabilei.
Ali algoritmi (Adaboost, arbori aleatorii) o
folosesc.
Concluzii
No free lunch theorem. Nu exist cel mai
bun algoritm
Eroarea de clasificare medie pe toate sturile
de date este aceeai pentru toi algoritmii
Pentru un anumit set de date poate exista
cel mai bun algoritm.
Cnd avem de rezolvat o problem concret
trebuie s experimentm diveri algoritmi.
Concluzii
n funcie de obiectivul problemei se va analiza:
Dac este important eroarea sau interpretarea
rezultatului
Dac sunt importante restriciile de memorie,
vitez de calcul sau un coeficient de ncredere
mai mare n recunoatere
Clasificatori diferii au proprieti diferite. Funcie
de scop se alege cel mai potrivit.