SlideShare una empresa de Scribd logo
1 de 78
Descargar para leer sin conexión
Introducere în Data Mining
Curs 4 - Clasificare: Concepte de bază, arbori de decizie, evaluarea
modelelor
Lucian Sasu, Ph.D.
Universitatea Transilvania din Braşov, Facultatea de Matematică şi Informatică
April 7, 2014
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 1 / 75
Outline
1 Preliminarii
2 Utilizarea arborilor de decizie
3 Construirea arborilor de decizie
4 Overfiting şi underfitting
5 Evaluarea performanţei unui clasificator
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 2 / 75
Clasificare
Informal: asignarea de obiecte unei anumite categorii dintr–o mulţime
fixată de categorii
Exemple: detectarea spam–ului (categorii: spam/mail legitim),
clasificarea celulelor (canceroase/sănătoase), clasificarea galaxiilor pe
baza formelor lor (spiralate, eliptice), clasificarea tranzacţiilor de pe
card (frauduloase/legale), clasificarea automată a ştirilor (domeniu
financiar/ sportiv/vreme etc.)
Figure 1: Procesul de clasificare: pentru o intrare x se determină o ieşire
asociată y
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 3 / 75
Procesul de construire a unui clasificator
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 4 / 75
Set de antrenare pentru un clasificator
Setul de antrenare: perechi de forma (x, y), unde y este o etichetă
(clasă, categorie) dintr-o mulţime discretă şi finită
Diferenţă faţă de regresie, unde ieşirea este dintr-o mulţime continuă
Nume Temperatura Corp Naşte Creatură Creatură Picioare Hibernează Clasă
sângelui acoperit cu acvatică aeriană
om cald păr da nu nu da nu mamifer
piton rece solzi nu nu nu nu da reptilă
somon rece solzi nu nu nu nu nu peşte
balenă cald păr da da nu nu nu mamifer
broască rece nimic nu semi nu da da amfibian
dragon rece solzi nu nu nu da nu reptilă
de Comodo
porumbel cald pene nu nu da da nu pasăre
pisică cald blană da nu nu da nu mamifer
leopard cald blană da nu nu da nu mamifer
pinguin cald pene nu semi nu da nu pasăre
arici cald ţepi da nu nu da da mamifer
ţipar rece solzi nu da nu nu nu peşte
salamandră rece nimic nu semi nu da da amfibian
liliac cald păr da nu da da da mamifer
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 5 / 75
Definiţie, scopuri
Definiţie (Clasificare)
Clasificarea este un proces prin care se construieşte (învaţă, induce) o
funcţie f care asociază fiecărui set de atribute x o etichetă de clase y
dintr-o mulţime predefinită.
Funcţia f se mai numeşte şi clasificator sau model de clasificare.
Utilitatea unui clasificator: modelare descriptivă şi modelare
predictivă
Modelare descriptivă: un clasificator poate servi ca o modalitate
explicativă sau de sumarizare, ce permite diferenţierea între clase;
pentru tabelul de mai sus, mecanismul poate fi util biologilor.
Modelarea predictivă: un clasificator poate fi folosit pentru a
prezice clasa unui obiect:
Nume Temperatura Corp Naşte Creatură Creatură Picioare Hibernează Clasă
sângelui acoperit cu acvatică aeriană
monstru gila rece solzi nu nu nu da da ?
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 6 / 75
Modalităţi de construire a clasificatorilor
Metode bazate pe arbori de decizie
Metode bazate pe reguli
Raţionare bazată pe memorie
Reţele neuronale
Reţele Bayesiene şi Naïve Bayes
Support Vector Machines
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 7 / 75
Clasificatori
Tipuri de date preferate pentru clasificare:
tehnicile de clasificare sunt adecvate pentru seturi de date binare sau
nominale
clasificatorii sunt mai puţin utili pentru categorii ordinale deoarece ei
nu iau în considerare relaţiile de ordine existente între categorii (cu
excepţia reţelelor)
nu sunt utilizate în clasificare nici relaţiile de forma “este un”, e.g.
“un om este un primat” (relaţii ierarhice)
Seturi de date folosite în construirea clasificatorilor:
set de antrenare: utilizat pentru construirea clasificatorului
set de testare: utilizat pentru a măsura performanţa clasificatorului
uneori şi set de validare: folosit pentru a alege un clasificator dintr-o
mulţime de modele candidat
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 8 / 75
Outline
1 Preliminarii
2 Utilizarea arborilor de decizie
3 Construirea arborilor de decizie
4 Overfiting şi underfitting
5 Evaluarea performanţei unui clasificator
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 9 / 75
Arbori de decizie: componenţă
Nod rădăcină — nod care nu are arce ce intră în el şi zero sau mai
multe arce care ies
Nod intern — are exact un singur nod care intră in el şi două sau
mai multe arce care ies
Frunză sau nod terminal — exact un singur nod intră, niciun arc
care iese
În nodurile neterminale se află predicate; rezultatul aplicării predicatului pe
valoarea concretă a unui atribut determină arcul pe care se merge mai
departe.
Figure 3: Arbore de decizie
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 10 / 75
Arbori de decizie: exemplu
Figure 4: Exemplu de arbore de decizie
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 11 / 75
Arbori de decizie: exemplu
Figure 5: Se poate să se obţină mai mulţi arbori de decizie pornind de la un
acelaşi set de date.
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 12 / 75
Arbori de decizie: utilizare
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 13 / 75
Arbori de decizie: utilizare
Figure 7: Utilizare: se porneşte de la nodul rădăcină
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 14 / 75
Arbori de decizie: utilizare
Figure 8: Se foloseste valoarea efectivă a atributului “Refund” prezent în
rădăcină
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 15 / 75
Arbori de decizie: utilizare
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 16 / 75
Arbori de decizie: utilizare
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 17 / 75
Arbori de decizie: utilizare
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 18 / 75
Arbori de decizie: utilizare
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 19 / 75
Outline
1 Preliminarii
2 Utilizarea arborilor de decizie
3 Construirea arborilor de decizie
4 Overfiting şi underfitting
5 Evaluarea performanţei unui clasificator
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 20 / 75
Arbori de decizie: algoritmi de construcţie
Numărul de arbori care poate fi creat pentru un set de date este
exponenţial în numărul de atribute
Determinarea arborelui optim este computaţional infezabilă
Dar: se pot determina arbori suboptimali suficienţi de buni
Algoritmi:
Algoritmul lui Hunt – unul din primii dezvoltaţi
CART
ID3, C4.5
SLIQ, SPRINT
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 21 / 75
Structura generală a algoritmului lui Hunt
Fie Dt setul de date din mulţimea de antrenare ce corespund unui nod
t; fie y = {y1, y2, . . . , yc} toate etichetele de clase.
Procedura generală este:
1 Dacă toate înregistrările din Dt au aceeaşi clasă yt asociată, atunci t
este o frunză etichetată yt
2 Dacă Dt conţine înregistrări care aparţin mai multor clase, atunci se
selectează o condiţie de test pe un atribut pentru a partiţiona
înregistrările în subseturi mai mici. Se creează câte un nod copil pentru
fiecare rezultat al testului şi înregistrările din Dt sunt distribuite acestor
noduri copil.
3 Algoritmul se aplică recursiv fiecărui nod copil obţinut la punctul
anterior.
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 22 / 75
Exemplu de aplicare a algoritmului lui Hunt
Figure 9: Algoritmul lui Hunt pentru construirea arborelui de decizie
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 23 / 75
Algoritmul lui Hunt: probleme
Dacă fiecare combinaţie de valori de atribute este prezentă în setul de
date, algoritmul funcţionează
Dacă fiecare combinaţie de valori are o singură etichetă de clasă
ataşată, atunci algoritmul funcţionează
Pentru situaţii care nu concordă cu condiţiile de mai sus, algoritmul
s-ar putea să fie în impas
În practică primele două condiţii sunt rareori îndeplinite
Se adaugă următoarele strategii:
1 pentru unele noduri copil obţinute la pasul 2 se poate ca mulţimea de
înregistrări să fie vidă, dacă niciuna din înregistrările din setul de
antrenare nu are combinaţia de valori asociată acestui nod. În acest
caz nodul se declară frunză având eticheta egală cu eticheta majoritară
din setul de date asociat.
2 dacă toate înregistrările din Dt au aceleaşi valori de atribute (exceptând
pentru eticheta de clasă), atunci nu se pot obţine noduri copil. Nodul
este declarat frunză cu aceeaşi politică de etichetare ca mai sus
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 24 / 75
Algoritmul lui Hunt: aspecte ce trebuie clarificate
Cum ar trebui partiţionate seturile Dt? algoritmul trebuie să aleagă o
metodă de specificare a condiţiei de test precum şi o măsură care să
spună cât de bună este o partiţionare concretă
Când ar trebui să se oprească procesul de partiţionare? Se poate
continua procesul de divizare până ce se întâlnesc condiţiile de mai
sus, dar pot fi folosite şi alte criterii care permit stoparea creşterii
arborelui, cu efecte pozitive asupra puterii de generalizare a modelului.
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 25 / 75
Algoritmul lui Hunt: condiţii pe nod
Specificarea testului de partiţionare este dependentă de tipul
atributelor:
nominale
ordinale
continue
Se poate pune în discuţie care e numărul de partiţii rezultate:
Partiţie binară
Partiţie n-ară
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 26 / 75
Algoritmul lui Hunt: atribute nominale
Multe valori asociate
Se pot lua în considerare toate valorile, pe rând sau se poate face
partiţionare binară
Figure 10: Partiţia unui atribut nomial după toate valorile
Figure 11: Partiţionare binară unui atribut nominal multivaloare
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 27 / 75
Algoritmul lui Hunt: atribute ordinale
Se poate face partiţionare după fiecare valoare a atributului în parte
Dacă se face partiţionare binară atunci pe baza ordinii, valorile
adiacente trebuie grupate împreună
Figure 12: Partiţionare de atribut ordinal, după toate valorile
Figure 13: Partiţionare binară a unui atribut ordinal multivaloare
Figure 14: Partiţionare binară greşită a unui atribut ordinal multivaloare
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 28 / 75
Algoritmul lui Hunt: atribute continue
Condiţia de test poate fi exprimată ca o comparaţie cu un prag –
A < v sau A ≥ v
Se pot încerca mai multe valori pentru v, dar soluţia e computaţional
intensivă
Alternativă: interogare de forma vi ≤ A < vi+1, pentru i = 1, . . . , k:
discretizare
Discretizarea poate fi statică (fixată de la început) sau dinamică
(împărţire în intervale de dimensiuni egale sau percentile sau prin
clustering)
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 29 / 75
Selectarea unei partiţii bune
Se foloseşte o măsură care cuantifică eficienţa unei partiţionări
Se preferă partiţionări care duc la crearea de noduri cât mai omogene
(a) Par-
tiţionare
neo-
mogenă
(b) Par-
tiţionare
cu
grad de
omogeni-
tate mai
mare
Figure 16: Partiţionare neomogenă vs. “mai omogenă”
Strategia generală: greedy, alege cea mai bună variantă locală
Greedy nu duce neapărat la optimul global
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 30 / 75
Măsurarea impurităţii nodului
Pentru un nod t notăm p(i|t) fracţia (frecvenţa relativă) de
înregistrări din clasa i aferente nodului t
Funcţii care măsoară gradul de impuritate:
Entropie(t) = −
c
i=1
p(i|t) log2 p(i|t) (1)
Gini(t) = 1 −
c
i=1
[p(i|t)]2
(2)
Eroarea de clasificare(t) = 1 − max
i
[p(i|t)] (3)
c este numărul de clase
Pentru ec. (1) se consideră că 0 log2 0 = lim
xց0
x log2(x) = 0
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 31 / 75
Măsurarea impurităţii nodului
Figure 17: Compararea măsurilor de impuritate pentru problemă de clasificare
binară
Minimul este 0, pentru cazul p ∈ {0, 1}
maximul se obţine pentru p = 0.5, deci pentru un nod omogenitatea
(respectiv eterogenitatea) este minimă (maximă)
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 32 / 75
Câştigul de informaţie
Pentru a vedea cât de bine se comportă o funcţie de măsură a
impurităţii se calculează câştigul de informaţie C.I. (eng: information
gain)
C.I.-ul este diferenţa dintre gradul de impuritate a părintelui (înainte
de partiţionare) şi impuritatea copiilor (după partiţionare):
∆info = I(parinte) −
k
j=1
N(vj)
N(parinte)
I(vj) (4)
unde:
I(·) este măsura de impuritate a nodului argument
k este numărul de noduri copil rezultaţi după partiţionare
N(·) este numărul de înregistrări pentru nodul curent
Scopul este de a obţine o partiţionare (un test) care să maximizeze
câştigul de informaţie; echivalent, să ducă la minimizarea mediei
ponderate de impurităţi a copiilor (suma din ec. (4))
I = entropia: ∆ este câştigul de informaţie (information gain).
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 33 / 75
Exemplu: indexul Gini
Formula:
Gini(t) = 1 −
c
j=1
[p(j|t)]2
c este numărul de clase
valoarea maximă se obţine dacă p(1|t) = · · · = p(c|t) şi este 1 − 1
c
valoarea minimă se obţine dacă toate înregistrările din nod fac parte
dintr–o aceeaşi clasă
Clasa 1 0 P(Clasa 1) = 0/6 = 0; P(Clasa 2) = 6/6 = 1
Clasa 2 6 Gini = 1 - P(Clasa 1)2 - P(Clasa 2)2 = 1 - 0 - 1 = 0
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 34 / 75
Exemplu: indexul Gini
Formula:
Gini(t) = 1 −
c
j=1
[p(j|t)]2
c este numărul de clase
valoarea maximă se obţine dacă p(1|t) = · · · = p(c|t) şi este 1 − 1
c
valoarea minimă se obţine dacă toate înregistrările din nod fac parte
dintr–o aceeaşi clasă
Clasa 1 0 P(Clasa 1) = 0/6 = 0; P(Clasa 2) = 6/6 = 1
Clasa 2 6 Gini = 1 - P(Clasa 1)2 - P(Clasa 2)2 = 1 - 0 - 1 = 0
Clasa 1 1 P(Clasa 1) = 1/6; P(Clasa 2) = 5/6
Clasa 2 5 Gini = 1 − (1/6)2 − (5/6)2 = 0.278
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 34 / 75
Exemplu: indexul Gini
Formula:
Gini(t) = 1 −
c
j=1
[p(j|t)]2
c este numărul de clase
valoarea maximă se obţine dacă p(1|t) = · · · = p(c|t) şi este 1 − 1
c
valoarea minimă se obţine dacă toate înregistrările din nod fac parte
dintr–o aceeaşi clasă
Clasa 1 0 P(Clasa 1) = 0/6 = 0; P(Clasa 2) = 6/6 = 1
Clasa 2 6 Gini = 1 - P(Clasa 1)2 - P(Clasa 2)2 = 1 - 0 - 1 = 0
Clasa 1 1 P(Clasa 1) = 1/6; P(Clasa 2) = 5/6
Clasa 2 5 Gini = 1 − (1/6)2 − (5/6)2 = 0.278
Clasa 1 2 P(Clasa 1) = 2/6; P(Clasa 2) = 4/6
Clasa 2 4 Gini = 1 − (2/6)2 − (4/6)2 = 0.444
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 34 / 75
Exemplu: partiţionarea folosind indexul Gini
Folosită în algoritmii CART, SLIQ, SPRINT
Formula indexului Gini:
GINIpartitie =
k
i=1
ni
n
Gini(i)
k e numărul de partiţii, n e numărul de înregistrări din nodul ce se
partiţionează, ni este numărul de înregistrări din fiecare partiţie
Se ignoră Gini(parinte) din ecuaţia (4) deoarece are aceeaşi valoare,
indiferent de cum este el partiţionat
Efectul termenilor din sumă: se preferă partiţii cât mai mari şi cât mai
“pure”
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 35 / 75
Exemplu: partiţionarea unui atribut binar folosind Gini
Pentru atribut binar nodul va avea doi descendenţi
Exemplu: partiţionarea unui nod care are 6 înregistrări din clasa C1 şi
6 din C2
Figure 18: Partiţionarea unui nod cu test pe un atribut binar
N1 N2
C1 5 1
C2 2 4
Gini(N1) = 1 - (5/6)2 - (2/6)2 = 0.194; Gini(N2) = 1 - (1/6)2 -
(4/6)2=0.528
Gini(partitie) = 7/12 · 0.194 + 5/12 · 0.528 = 0.333
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 36 / 75
Exemplu: partiţionarea unui atribut categorial folosind Gini
Pentru fiecare valoare a atributului categorial se determină frecvenţa
înregistrărilor cu acea valoare
Se poate face partiţionare după fiecare valoare sau partiţionări binare
Tipul maşinii
Familie Sport Lux
C1 1 2 1
C2 4 1 1
Gini 0.393
Table 1: Partiţionare după
fiecare valoare a atributului
Tipul maşinii
{Sport, Lux} {Familie}
C1 3 1
C2 2 4
Gini 0.400
Table 2: Partiţionare binară
Tipul maşinii
{Sport} {Lux,Familie}
C1 2 2
C2 1 5
Gini 0.419
Table 3: Partiţionare binară
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 37 / 75
Exemplu: partiţionarea unui atribut continuu
Se poate utiliza un arbore de decizie binar, cu test pe o valoare v:
venit anual ≤ v
Variantă brute force pentru determinarea lui v: se consideră toate
valorile distincte ale atributului continuu
Pentru fiecare valoare v se consideră fiecare din cei N candidaţi
pentru a vedea poziţionarea faţă de v
Pentru v se consideră pe rând fiecare valoare din cele N
Rezultat: complexitatea este O(N2)
Variantă mai eficientă: se sortează cele N valori, efort computaţional
O(N log N); se consideră valorile aflate la jumătate dintre două
numere adiacente;
Se iterează peste valorile sortate, actualizând de fiecare dată matricea
de contorizare
Se alege valoarea lui v pentru valoarea Gini minimă
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 38 / 75
Exemplu: partiţionarea unui atribut continuu
Figure 19: Partiţionarea pentru atribut continuu
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 39 / 75
Raportul câştigului
Engleză: gain ratio
Atât entropia cât şi indexul Gini tind să favorizeze atributele care au
un număr mare de valori distincte
În figura de mai jos: Car type dă un mod mai bun de partiţionare
decât Own car; ID-ul dă chiar o partiţionare cu o singură înregistrare
pe nod copil, deci pare ideal
Figure 20: Posibilităţi de partiţionare
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 40 / 75
Raportul câştigului
Ce e greşit în partiţionarea după ID?
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 41 / 75
Raportul câştigului
Ce e greşit în partiţionarea după ID?
Chiar şi pentru o situaţie mai puţin extremă decât cea pentru ID,
dacă se obţin partiţii cu puţine valori pe fiecare subset, numărul de
înregistrări pe partiţie s–ar putea să fie prea mic pentru a permite
predicţii exacte
Soluţii
1 Se permit doar partiţionări în două submulţimi — algoritmul CART
funcţionează astfel
2 Se modifică criteriul de partiţionare pentru a lua în considerare numărul
de submulţimi care alcătuiesc partiţia
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 41 / 75
Raportul câştigului
Pentru a doua strategie — algoritmul C4.5 foloseşte “gain ratio”
definit ca:
Gain ratio =
∆info
Split info
(5)
unde Split Info este entropia
−
k
j=1
P(vj) log2 P(vj)
cu P(vj) numărul de înregistrări din nodul vj, iar k numărul de
submulţimi care alcătuiesc partiţia
Exemplu: dacă sunt k submulţimi ce alcătuiesc partiţia şi fiecare din
acestea are acelaşi număr de elemente, atunci P(vj) = 1
k , ∀j = 1 . . . k,
entropia este maximă iar raportul din ecuaţia (5) scade.
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 42 / 75
Oprirea construirii arborelui
Se opreşte expandarea unui nod atunci când toate înregistrările din el
aparţin aceleiaşi clase – nu mai ai de ce sa faci discriminare
Sau când toate atributele au aceleaşi valori – nu se mai poate face
discriminare
Terminare mai devreme (va fi discutat)
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 43 / 75
Algoritmul pentru construirea arborelui de decizie
Figure 21: Schiţa algoritmului de construire a arborelui de decizie
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 44 / 75
Exemplu: C4.5
Creator: Ross Quinlan
Extensie a lui ID3
Spre deosebire de ID3:
poate manipula atât valori discrete cât şi continue
poate să manipuleze date de antrenare cu valori lipsă; valorile lipsă nu
sunt considerate pentru calcularea gain si entropie
poate manipula atribute ce au ataşate diverse costuri
Foloseşte information gain
Sortează atributele continue la fiecare nod
Cere ca toate datele să fie încărcate în memoria RAM
Open source, se poate descărca de la adresa:
http://www.rulequest.com/Personal/c4.5r8.tar.gz
Varianta următoare: C5, dar oferită contra cost
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 45 / 75
Exemplu: detectarea roboţilor web
Optimizarea unui site ar trebui să se facă strict pe baza acţiunilor
manifestate de oameni
Parcurgerea site-ului de către web crawlers nu este relevantă pentru
restructurarea site–ului
Intrare: web server logs; vizitele din cadrul unei sesiuni sunt modelate
ca graf
Datele trebuie să fie cumva etichetate înainte de construirea arborelui
de decizie
Figure 22: Arbore de decizie: vizitator uman vs. robot web
Detalii: “Introduction to data mining”, cap 4
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 46 / 75
Aspecte ale construcţiei arborilor de decizie
Construirea arborilor de decizie este o metoda neparametrică pentru
construirea de clasificator = nu cere presupuneri apriori asupra
distribuţiei datelor
Găsirea unui arbore de decizie optim este o problemă prohibitiv
d.p.d.v. computaţional, datorită numărului mare de variante; sunt
implicate euristici pentru reducerea volumului de calcul
Algoritmii de construire sunt de regulă rapizi; clasificarea pe baza lor
este şi mai rapidă
Sunt uşor de interpretat
Acurateţe comparabilă cu a altor tipuri de clasificatori
Relativ rezistenţi în faţa datelor cu zgomot
Atributele redundante (puternic corelate cu alte atribute) nu
afectează acurateţea arborilor obţinuţi
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 47 / 75
Aspecte ale construcţiei arborilor de decizie (cont)
Atributele irelevante pot afecta calitatea arborilor de decizie; aceştia
se pot elimina prin tehnici de selectare a trăsăturilor
Numărul de înregistrări scade pe măsură ce te “scufunzi” în
construirea arborelui = problema fragmentării datelor. La frunze s–ar
putea să fie prea puţine înregistrări care să poată fi folosite în luarea
unor decizii statistic semnificative în ceea ce priveşte etichetarea
Un subarbore s–ar putea să fie replicat de mai multe ori în arborele
final:
Figure 23: Problema replicării subarborelui: acelaşi subarbore poate apărea
la mai multe niveluri
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 48 / 75
Aspecte ale construcţiei arborilor de decizie (cont)
În cele de mai sus pentru fiecare nod se consideră câte un singur
atribut la un moment dat. Ca atare, regiunile de decizie sunt drepte
paralele cu axele de coordonate:
Deciziile se pot lua şi altfel: folosind mai multe atribute concomitent
(e.g. x + y < 1, pentru datele din figura 24(b)) sau cu funcţii
neliniare
(a) Arbore de decizie cu regiuni de de-
cizie paralele cu axele
(b) Set de date care nu poate fi par-
tiţionat folosind un singur atribut
Alegerea măsurii de impuritate nu are un efect deosebit asupra
performanţei arborilor obţinuţi
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 49 / 75
Outline
1 Preliminarii
2 Utilizarea arborilor de decizie
3 Construirea arborilor de decizie
4 Overfiting şi underfitting
5 Evaluarea performanţei unui clasificator
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 50 / 75
Overfitting şi underfitting
Erorile sunt grupate în două categorii: erori de antrenare şi erori de
testare
Erori de antrenare: evaluate pentru setul de antrenare, după
construirea clasificatorului
Erori de testare: rezultat obţinut pe set de testare
Un bun clasificator trebuie să aibă erori mici pe ambele seturi de date
Dacă modelul (clasificatorul) se potriveşte pe datele de antrenare prea
bine, atunci s–ar putea ca pe setul de testare să dea erori mari =
eroare de overfitting
Dacă modelul este insuficient elaborat, atunci va da erori mari atât de
antrenare, cât şi de testare
Dacă s–ar continua antrenarea modelului la perfecţie pe setul de
antrenare, atunci s–ar putea ca unele noduri să reprezinte accidental
date cu zgomot sau outliers (date inerent existente într–un volum
mare);
In decursul antrenării nu se foloseşte în niciun fel setul de
testare!
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 51 / 75
Overfitting şi underfitting
Figure 24: Problemă de overfitting şi underfitting: pentru underfitting, erorile de
antrenare şi de testare sunt mari. Pentru overfitting, erorile de antrenare sunt (din
ce în ce mai) mici, dar erorile de testare sunt (tot mai) mari
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 52 / 75
Cauze pentru overfitting: date cu zgomot
Un arbore de decizie care se potriveşte prea bine setului de antrenare
este senzitiv la datele “zgomot”
Astfel de erori nu pot fi evitate şi stabilesc o rată de eroare minimă pe
care o poate atinge un clasificator
Figure 25: Punct “zgomot” care influenţează crearea regiunii de decizie.
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 53 / 75
Cauze pentru overfitting: date nereprezentative
Dacă suprafaţa de decizie este formată pornind de la puţine date,
există riscul ca datele de test situate în vecinătatea regiunii de decizie
să fie gresit clasificate
Lipsa de date face dificilă predicţia
Figure 26: Construirea unui clasificator plecând de la un set de date
nereprezentativ pentru ceea ce se vrea a fi clasificat. Punctele albastre şi bilele
roşii sunt setul de date de antrenare.
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 54 / 75
Cauze pentru overfitting: compararea multiplă
Posibilitatea de a efectua comparaţii multiple poate duce la overfitting
Exemplu: pentru problema predicţiei evoluţiei pieţei, presupunem că
un analist financiar face alegeri aleatoare, dând cu banul
Probabilitatea de a ghici corect creşterea sau scăderea pieţii este 0.5
Probabilitatea de a ghici corect evoluţia pieţei de minim 8 ori din 10
încercări este:
C8
10 + C9
10 + C10
10
210
= 0.0547
Să presupunem că avem un grup de 50 de investitori care procedează
ca mai sus; alegem pe acel analist care face cele mai multe predicţii
corecte în următoarele 10 zile
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 55 / 75
Cauze pentru overfitting: compararea multiplă
Probabilitatea ca să existe cel puţin un analist care face minim 8
predicţii corecte este
1 − (1 − 0.0547)50
= 0.9399
Chiar dacă un analist are probabilitatea mică de predicţie corectă,
fiind suficient de mulţi, şansa de nimerire “la gramadă” este mare
(Principiul lui Bonferroni)
Dar nu e nicio garanţie că analistul care a realizat cele mai
multe predicţii corecte va fi bun şi în continuare!
Posibilitatea de alegere creează aparenţa posibilităţii găsirii unui
predictor, dar acesta singur de fapt nu are un comportament strălucit
Aceeaşi problemă poate apărea şi pentru arbori de decizie: la fiecare
nod se poate să existe mai multe variante de alegere a criteriului de
partiţionare
Câştigul datorat acestei partiţionări ar trebui să ia în considerare şi
numărul de variante existente, altfel posibilităţile multiple de alegere
pot da aparenţa existenţei unui criteriu bun
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 56 / 75
Estimarea erorii de generalizare a unui model
Eroarea de generalizare (de operare pe seturi de date ce nu au fost
folosite la instruirea modelului) este ceea ce interesează şi se doreşte a
fi cât mai mică
Întrucât setul de test nu este de fapt cunoscut apriori, se poate face
doar o estimare a erorii de generalizare
Eroarea de resubstituire:
se presupune că setul de antrenare este reprezentativ în raport cu setul
de date de test
eroarea de antrenare este folosită ca estimare pentru eroarea de testare
de regulă este o estimare mult prea optimistă a erorii de testare
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 57 / 75
Estimarea erorii de generalizare a unui model
În loc să se utilizeze setul de antrenare pentru estimarea erorii, se
poate folosi un set de validare
Setul de antrenare se partiţionează în două:
Subset folosit pentru antrenare; de exemplu, 2/3 din datele de
antrenare iniţiale pot fi folosite pentru acest subset
Subset folosit pentru estimarea erorii de generalizare = set de validare
= restul datelor
Antrenarea nu se face şi pe subsetul de validare, ci doar pe primul
subset
Modelul care dă cea mai mică eroare pe setul de validare este folosit
mai departe pentru testarea efectivă
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 58 / 75
Includerea complexităţii modelului
Este o opinie larg acceptată faptul că modelele complexe predispun la
overfitting
Principiu: briciul lui Occam (Occam’s razor):
Definiţie (Briciul lui Occam)
Dându–se două modele cu aceeaşi eroare de generalizare, modelul mai
simplu ar trebui preferat (formularea originară: Entia non sunt
multiplicanda praeter necessitatem).
Cea mai simplă explicaţie a unui fenomen ar trebui preferată
Echivalent cu principiul enunţat de A. Einstein: “Totul ar trebui să fie
cât mai simplu cu putinţă, dar nu mai simplu de atât”.
Mod de încorporare a complexităţii modelului: estimarea pesimistă
a erorii şi principiul descrierii de lungime minimă
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 59 / 75
Estimarea pesimistă a erorii
Fie n(t) numărul de inregistrări din setul de antrenare pentru frunza t
Notăm e(t), Ω(t) numărul de înregistrări gresit clasificate de frunza t,
respectiv termenul de penalizare pentru frunza t
Estimarea pesimistă a erorii pentru arborele T este:
eg (T) =
ti frunză
e(ti ) + Ω(ti )
ti frunză
n(ti )
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 60 / 75
Estimarea pesimistă: exemplu
Figure 27: Arbore binar de decizie pentru o problemă de dihotomie. Clasificarea
în nodurile frunză se face pe principiul majorităţii.
Pentru arborele de mai sus considerăm că în setul de antrenare sunt 6
înregistrări clasificate eronat
Dacă fixăm Ω(ti ) = 0.5:
eg (T) =
6 + 4 · 0.5
24
= 0.3333
Interpretarea valorii “0.5” pentru Ω: “Introduction to Data Mining”,
pag 182.
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 61 / 75
Principiul descrierii de lungime minimă
Eng: Minimum description length (MDL)
Ideea de bază: orice regularitate într–un set de date poate fi utilizată
pentru a comprima datele, i.e. pentru a le descrie folosind mai puţine
simboluri decât ar fi folosite pentru reprezentarea brută a datelor.
Este o altă manifestare a briciului lui Occam
Un set de date poate fi reprezentat folosind simboluri dintr–un alfabet
convenabil ales
Costul transmiterii datelor este calculat ca:
Cost(model, date) = Cost(model) + Cost(date|model) (6)
unde ultimul termen din sumă reprezintă costul transmiterii
suplimentare a datelor greşit clasificate de către model
Principiul MDL spune că ar trebui preferate modelele pentru care
costul dat de ec. (6) este minim
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 62 / 75
Prevenirea overfitting–ului în arborii de decizie: prepruning
Retezarea apriori (prepruning, early stopping rule)
Opreşte algoritmul înainte de a construi complet arborele
Condiţiile tipice de oprire sunt:
dacă toate înregistrările din nodul curent sunt din aceeaşi clasă
dacă toate atributele au aceleaşi valori
Condiţii de prepruning pentru oprirea partiţionării unui nod:
dacă numărul de înregistrări pe nod scade sub o anumită fracţie
dacă expandarea nodului nu îmbunătăţeşte indexul Gini sau câştigul
informaţional
dacă distribuţia claselor este independentă de atributele existente
Există pericolul impunerii unor condiţii prea dure → underfitting
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 63 / 75
Prevenirea overfitting–ului în arborii de decizie:
postprunning
Retezarea ramurilor din arbore se face la sfârşit
Strategie: se creează complet arborele de decizie
Se retează noduri pornind de la bază spre vârf
Daca arborele obţinut generalizează mai bine, arborele retezat se
înlocuieşte cu o frunză;clasa decisă de frunză se determină prin
majoritate
Se poate utiliza MDL pentru postpruning
Postpruning tinde să dea rezultate mai bune decât prepruning,
evitând terminarea prematură a procesului de creştere a arborelui
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 64 / 75
Postprunning: exemplu
Class = Yes 20
Class = No 10
Eroare = 10/30
Table 4: Clasificarea folosind nodul
neterminal
Figure 28: Obţinerea de noduri copil pe
baza valorilor atributului A
Eroare pe setul de antrenare, înainte de partiţionare: 10/30
Eroarea pesimistă, înainte de partiţionare: (10 + 0.5)/30 = 10.5/30
Eroare pe setul de antrenare, după partiţionare: 9/30
Eroare pesimistă, după partiţionare: (9 + 4×0.5)/30 = 11/30
Concluzia: se face retezare
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 65 / 75
Outline
1 Preliminarii
2 Utilizarea arborilor de decizie
3 Construirea arborilor de decizie
4 Overfiting şi underfitting
5 Evaluarea performanţei unui clasificator
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 66 / 75
Evaluarea performanţei unui clasificator: metrici
Se bazează pe numărarea înregistrărilor din setul de test care sunt
clasificate corect sau incorect
Numerele sunt trecute într–o matrice de confuzie:
Clasa prezisă
Clasa = 1 Clasa = 0
Clasa Clasa = 1 f11 f01
(true positive) (false negative)
reală Clasa = 0 f10 f00
(false positive) (true negative)
fij este numărul de înregistrări din clasa i prezise ca fiind din clasa j
numărul total de predicţii corecte este f11 + f00 = true positive +
true negative
numărul total de predicţii incorecte este f01 + f10
matricea de confuzie poate fi şi pentru mai mult de două clase
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 67 / 75
Evaluarea performanţei unui clasificator: metrici
Plecând de la matricea de confuzie se pot defini metrici de
performanţă:
Acurateţea:
Acuratetea =
Numarul de predictii corecte
Numarul total de predictii
=
f11 + f00
f11 + f10 + f01 + f00
Rata de eroare = 1 - acurateţea:
Rata de eroare =
Numarul de predictii incorecte
Numarul total de predictii
=
=
f10 + f01
f11 + f10 + f01 + f00
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 68 / 75
Evaluarea performanţei unui clasificator: metrici
Limitări ale acurateţei:
Considerăm o problemă de clasificare binară (dihotomie): exemple din
clasa 0 = 9990, exemple din clasa 1 = 10
Dacă modelul prezice totul ca fiind de clasă 0, atunci acurateţea este
9990/10000 = 99.9%
Acurateţea este în acest caz înşelătoare, deoarece modelul nu clasifică
nimic ca fiind de clasă 1 (nu ştie deloc clasa 1)
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 69 / 75
Evaluarea performanţei unui clasificator: metrici
Pentru matricea de confuzie se poate considera matricea de costuri,
care dă costul erorii de clasificare C(i|j):
C(i|j): costul clasificării unui obiect ca fiind de clasă i când el este de
fapt de clasă j
Clasa prezisă
Clasa = 1 Clasa = 0
Clasa Clasa = 1 C(1|1) C(0|1)
reală Clasa = 0 C(1|0) C(0|0)
Costul unei clasificări în care se foloseşte matrice de costuri:
Cost = f11C(1|1) + f01C(0|1) + f10C(1|0) + f00C(0|0)
Cu cât costul e mai mic, cu atât clasificarea e mai bună
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 70 / 75
Evaluarea performanţei unui clasificator: metrici
Clasa prezisă
Clasa = 1 Clasa = 0
Clasa Clasa = 1 -1 100
reală Clasa = 0 1 0
Clasa prezisă
Clasa = 1 Clasa = 0
Clasa Clasa = 1 150 40
reală Clasa = 0 60 250
Acurateţea = 80%
Costul = 3910
Clasa prezisă
Clasa = 1 Clasa = 0
Clasa Clasa = 1 250 45
reală Clasa = 0 5 200
Acurateţea = 90%
Costul = 4255
Primul clasificator este mai bun relativ la matricea de costuri dată, chiar
dacă acurateţea este mai mare pentru al doilea clasificator
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 71 / 75
Evaluarea performanţei unui clasificator: metode de
evaluare
Reprezintă metode folosite pentru compararea modelelor
Metoda holdout: setul dat iniţial se divide în set de antrenare şi set
de testare (e.g. 2/3 + 1/3); se face antrenare doar pe setul de
antrenare şi testare doar pe setul de testare
Metoda eşantionării aleatoare: se repetă metoda holdout de câteva ori
pe partiţionări aleatoare ale setului iniţial; se face media procentelor
de clasificare corecte obţinute pe fiecare set de testare în parte
K-fold cross validation: setul iniţial se împarte în k submulţimi
disjuncte de dimensiuni (cât mai) egale; pe rând, fiecare din cele k
submulţimi este folosită drept set de test şi restul alcătuiesc setul de
antrenare; evaluarea finală este media celor k evaluări
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 72 / 75
Evaluarea performanţei unui clasificator: metode de
evaluare
Leave-one-out: dacă sunt date puţine, atunci se poate lua k = N în
k-fold cross validation
Bootstrap:
se face extragerea datelor din setul iniţial, dar cu întoarcerea datelor
extrase în setul iniţial
e posibil ca o înregistrare să fie astfel folosită de mai multe ori
numărul de extrageri efectuate este chiar N
numărul de date distincte rezultate în urma celor N extrageri:
1 − (1 − 1/N)N N→∞
−→ 1 − e−1
≈ 0.632
modelul construit pe baza setului de bootstrap (N înregistrări,
aproximativ 63.2% unice) se face antrenarea; datele ce nu sunt incluse
în eşantionul de bootstrap sunt date de test
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 73 / 75
Evaluarea performanţei unui clasificator: metode de
evaluare
Bootstrap (cont):
modelul rezultat pe setul de antrenare este evaluat pe setul de testare,
rezultând o rată de acurateţe εt
se repetă procesul de mai sus de b ori
acurateţea totală cuantificată prin metoda .632 bootstrap:
accboot =
1
b
b
i=1
(0.632 · εi + 0.368 · accs)
accs este acurateţea clasificatorului măsurată pe setul de antrenare
Metodă îmbunătăţită: .632+ bootstrap, dezvoltată în “Improvements
on Cross-Validation: The .632+ Bootstrap Method”, Bradley Efron,
Robert Tibshirani, Journal of the American Statistical Association,
Vol. 92, No. 438. (June 1997), pp. 548-560 — metodă cu
variabilitate mică şi abatere moderată
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 74 / 75
Evaluarea performanţei unui clasificator: compararea
clasificatorilor
Se bazează pe teste statistice
Detalii: “Introduction to Data Mining”, sec. 4.6
lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 75 / 75

Más contenido relacionado

Destacado

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destacado (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Curs 4 Data Mining

  • 1. Introducere în Data Mining Curs 4 - Clasificare: Concepte de bază, arbori de decizie, evaluarea modelelor Lucian Sasu, Ph.D. Universitatea Transilvania din Braşov, Facultatea de Matematică şi Informatică April 7, 2014 lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 1 / 75
  • 2. Outline 1 Preliminarii 2 Utilizarea arborilor de decizie 3 Construirea arborilor de decizie 4 Overfiting şi underfitting 5 Evaluarea performanţei unui clasificator lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 2 / 75
  • 3. Clasificare Informal: asignarea de obiecte unei anumite categorii dintr–o mulţime fixată de categorii Exemple: detectarea spam–ului (categorii: spam/mail legitim), clasificarea celulelor (canceroase/sănătoase), clasificarea galaxiilor pe baza formelor lor (spiralate, eliptice), clasificarea tranzacţiilor de pe card (frauduloase/legale), clasificarea automată a ştirilor (domeniu financiar/ sportiv/vreme etc.) Figure 1: Procesul de clasificare: pentru o intrare x se determină o ieşire asociată y lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 3 / 75
  • 4. Procesul de construire a unui clasificator lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 4 / 75
  • 5. Set de antrenare pentru un clasificator Setul de antrenare: perechi de forma (x, y), unde y este o etichetă (clasă, categorie) dintr-o mulţime discretă şi finită Diferenţă faţă de regresie, unde ieşirea este dintr-o mulţime continuă Nume Temperatura Corp Naşte Creatură Creatură Picioare Hibernează Clasă sângelui acoperit cu acvatică aeriană om cald păr da nu nu da nu mamifer piton rece solzi nu nu nu nu da reptilă somon rece solzi nu nu nu nu nu peşte balenă cald păr da da nu nu nu mamifer broască rece nimic nu semi nu da da amfibian dragon rece solzi nu nu nu da nu reptilă de Comodo porumbel cald pene nu nu da da nu pasăre pisică cald blană da nu nu da nu mamifer leopard cald blană da nu nu da nu mamifer pinguin cald pene nu semi nu da nu pasăre arici cald ţepi da nu nu da da mamifer ţipar rece solzi nu da nu nu nu peşte salamandră rece nimic nu semi nu da da amfibian liliac cald păr da nu da da da mamifer lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 5 / 75
  • 6. Definiţie, scopuri Definiţie (Clasificare) Clasificarea este un proces prin care se construieşte (învaţă, induce) o funcţie f care asociază fiecărui set de atribute x o etichetă de clase y dintr-o mulţime predefinită. Funcţia f se mai numeşte şi clasificator sau model de clasificare. Utilitatea unui clasificator: modelare descriptivă şi modelare predictivă Modelare descriptivă: un clasificator poate servi ca o modalitate explicativă sau de sumarizare, ce permite diferenţierea între clase; pentru tabelul de mai sus, mecanismul poate fi util biologilor. Modelarea predictivă: un clasificator poate fi folosit pentru a prezice clasa unui obiect: Nume Temperatura Corp Naşte Creatură Creatură Picioare Hibernează Clasă sângelui acoperit cu acvatică aeriană monstru gila rece solzi nu nu nu da da ? lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 6 / 75
  • 7. Modalităţi de construire a clasificatorilor Metode bazate pe arbori de decizie Metode bazate pe reguli Raţionare bazată pe memorie Reţele neuronale Reţele Bayesiene şi Naïve Bayes Support Vector Machines lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 7 / 75
  • 8. Clasificatori Tipuri de date preferate pentru clasificare: tehnicile de clasificare sunt adecvate pentru seturi de date binare sau nominale clasificatorii sunt mai puţin utili pentru categorii ordinale deoarece ei nu iau în considerare relaţiile de ordine existente între categorii (cu excepţia reţelelor) nu sunt utilizate în clasificare nici relaţiile de forma “este un”, e.g. “un om este un primat” (relaţii ierarhice) Seturi de date folosite în construirea clasificatorilor: set de antrenare: utilizat pentru construirea clasificatorului set de testare: utilizat pentru a măsura performanţa clasificatorului uneori şi set de validare: folosit pentru a alege un clasificator dintr-o mulţime de modele candidat lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 8 / 75
  • 9. Outline 1 Preliminarii 2 Utilizarea arborilor de decizie 3 Construirea arborilor de decizie 4 Overfiting şi underfitting 5 Evaluarea performanţei unui clasificator lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 9 / 75
  • 10. Arbori de decizie: componenţă Nod rădăcină — nod care nu are arce ce intră în el şi zero sau mai multe arce care ies Nod intern — are exact un singur nod care intră in el şi două sau mai multe arce care ies Frunză sau nod terminal — exact un singur nod intră, niciun arc care iese În nodurile neterminale se află predicate; rezultatul aplicării predicatului pe valoarea concretă a unui atribut determină arcul pe care se merge mai departe. Figure 3: Arbore de decizie lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 10 / 75
  • 11. Arbori de decizie: exemplu Figure 4: Exemplu de arbore de decizie lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 11 / 75
  • 12. Arbori de decizie: exemplu Figure 5: Se poate să se obţină mai mulţi arbori de decizie pornind de la un acelaşi set de date. lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 12 / 75
  • 13. Arbori de decizie: utilizare lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 13 / 75
  • 14. Arbori de decizie: utilizare Figure 7: Utilizare: se porneşte de la nodul rădăcină lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 14 / 75
  • 15. Arbori de decizie: utilizare Figure 8: Se foloseste valoarea efectivă a atributului “Refund” prezent în rădăcină lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 15 / 75
  • 16. Arbori de decizie: utilizare lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 16 / 75
  • 17. Arbori de decizie: utilizare lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 17 / 75
  • 18. Arbori de decizie: utilizare lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 18 / 75
  • 19. Arbori de decizie: utilizare lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 19 / 75
  • 20. Outline 1 Preliminarii 2 Utilizarea arborilor de decizie 3 Construirea arborilor de decizie 4 Overfiting şi underfitting 5 Evaluarea performanţei unui clasificator lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 20 / 75
  • 21. Arbori de decizie: algoritmi de construcţie Numărul de arbori care poate fi creat pentru un set de date este exponenţial în numărul de atribute Determinarea arborelui optim este computaţional infezabilă Dar: se pot determina arbori suboptimali suficienţi de buni Algoritmi: Algoritmul lui Hunt – unul din primii dezvoltaţi CART ID3, C4.5 SLIQ, SPRINT lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 21 / 75
  • 22. Structura generală a algoritmului lui Hunt Fie Dt setul de date din mulţimea de antrenare ce corespund unui nod t; fie y = {y1, y2, . . . , yc} toate etichetele de clase. Procedura generală este: 1 Dacă toate înregistrările din Dt au aceeaşi clasă yt asociată, atunci t este o frunză etichetată yt 2 Dacă Dt conţine înregistrări care aparţin mai multor clase, atunci se selectează o condiţie de test pe un atribut pentru a partiţiona înregistrările în subseturi mai mici. Se creează câte un nod copil pentru fiecare rezultat al testului şi înregistrările din Dt sunt distribuite acestor noduri copil. 3 Algoritmul se aplică recursiv fiecărui nod copil obţinut la punctul anterior. lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 22 / 75
  • 23. Exemplu de aplicare a algoritmului lui Hunt Figure 9: Algoritmul lui Hunt pentru construirea arborelui de decizie lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 23 / 75
  • 24. Algoritmul lui Hunt: probleme Dacă fiecare combinaţie de valori de atribute este prezentă în setul de date, algoritmul funcţionează Dacă fiecare combinaţie de valori are o singură etichetă de clasă ataşată, atunci algoritmul funcţionează Pentru situaţii care nu concordă cu condiţiile de mai sus, algoritmul s-ar putea să fie în impas În practică primele două condiţii sunt rareori îndeplinite Se adaugă următoarele strategii: 1 pentru unele noduri copil obţinute la pasul 2 se poate ca mulţimea de înregistrări să fie vidă, dacă niciuna din înregistrările din setul de antrenare nu are combinaţia de valori asociată acestui nod. În acest caz nodul se declară frunză având eticheta egală cu eticheta majoritară din setul de date asociat. 2 dacă toate înregistrările din Dt au aceleaşi valori de atribute (exceptând pentru eticheta de clasă), atunci nu se pot obţine noduri copil. Nodul este declarat frunză cu aceeaşi politică de etichetare ca mai sus lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 24 / 75
  • 25. Algoritmul lui Hunt: aspecte ce trebuie clarificate Cum ar trebui partiţionate seturile Dt? algoritmul trebuie să aleagă o metodă de specificare a condiţiei de test precum şi o măsură care să spună cât de bună este o partiţionare concretă Când ar trebui să se oprească procesul de partiţionare? Se poate continua procesul de divizare până ce se întâlnesc condiţiile de mai sus, dar pot fi folosite şi alte criterii care permit stoparea creşterii arborelui, cu efecte pozitive asupra puterii de generalizare a modelului. lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 25 / 75
  • 26. Algoritmul lui Hunt: condiţii pe nod Specificarea testului de partiţionare este dependentă de tipul atributelor: nominale ordinale continue Se poate pune în discuţie care e numărul de partiţii rezultate: Partiţie binară Partiţie n-ară lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 26 / 75
  • 27. Algoritmul lui Hunt: atribute nominale Multe valori asociate Se pot lua în considerare toate valorile, pe rând sau se poate face partiţionare binară Figure 10: Partiţia unui atribut nomial după toate valorile Figure 11: Partiţionare binară unui atribut nominal multivaloare lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 27 / 75
  • 28. Algoritmul lui Hunt: atribute ordinale Se poate face partiţionare după fiecare valoare a atributului în parte Dacă se face partiţionare binară atunci pe baza ordinii, valorile adiacente trebuie grupate împreună Figure 12: Partiţionare de atribut ordinal, după toate valorile Figure 13: Partiţionare binară a unui atribut ordinal multivaloare Figure 14: Partiţionare binară greşită a unui atribut ordinal multivaloare lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 28 / 75
  • 29. Algoritmul lui Hunt: atribute continue Condiţia de test poate fi exprimată ca o comparaţie cu un prag – A < v sau A ≥ v Se pot încerca mai multe valori pentru v, dar soluţia e computaţional intensivă Alternativă: interogare de forma vi ≤ A < vi+1, pentru i = 1, . . . , k: discretizare Discretizarea poate fi statică (fixată de la început) sau dinamică (împărţire în intervale de dimensiuni egale sau percentile sau prin clustering) lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 29 / 75
  • 30. Selectarea unei partiţii bune Se foloseşte o măsură care cuantifică eficienţa unei partiţionări Se preferă partiţionări care duc la crearea de noduri cât mai omogene (a) Par- tiţionare neo- mogenă (b) Par- tiţionare cu grad de omogeni- tate mai mare Figure 16: Partiţionare neomogenă vs. “mai omogenă” Strategia generală: greedy, alege cea mai bună variantă locală Greedy nu duce neapărat la optimul global lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 30 / 75
  • 31. Măsurarea impurităţii nodului Pentru un nod t notăm p(i|t) fracţia (frecvenţa relativă) de înregistrări din clasa i aferente nodului t Funcţii care măsoară gradul de impuritate: Entropie(t) = − c i=1 p(i|t) log2 p(i|t) (1) Gini(t) = 1 − c i=1 [p(i|t)]2 (2) Eroarea de clasificare(t) = 1 − max i [p(i|t)] (3) c este numărul de clase Pentru ec. (1) se consideră că 0 log2 0 = lim xց0 x log2(x) = 0 lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 31 / 75
  • 32. Măsurarea impurităţii nodului Figure 17: Compararea măsurilor de impuritate pentru problemă de clasificare binară Minimul este 0, pentru cazul p ∈ {0, 1} maximul se obţine pentru p = 0.5, deci pentru un nod omogenitatea (respectiv eterogenitatea) este minimă (maximă) lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 32 / 75
  • 33. Câştigul de informaţie Pentru a vedea cât de bine se comportă o funcţie de măsură a impurităţii se calculează câştigul de informaţie C.I. (eng: information gain) C.I.-ul este diferenţa dintre gradul de impuritate a părintelui (înainte de partiţionare) şi impuritatea copiilor (după partiţionare): ∆info = I(parinte) − k j=1 N(vj) N(parinte) I(vj) (4) unde: I(·) este măsura de impuritate a nodului argument k este numărul de noduri copil rezultaţi după partiţionare N(·) este numărul de înregistrări pentru nodul curent Scopul este de a obţine o partiţionare (un test) care să maximizeze câştigul de informaţie; echivalent, să ducă la minimizarea mediei ponderate de impurităţi a copiilor (suma din ec. (4)) I = entropia: ∆ este câştigul de informaţie (information gain). lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 33 / 75
  • 34. Exemplu: indexul Gini Formula: Gini(t) = 1 − c j=1 [p(j|t)]2 c este numărul de clase valoarea maximă se obţine dacă p(1|t) = · · · = p(c|t) şi este 1 − 1 c valoarea minimă se obţine dacă toate înregistrările din nod fac parte dintr–o aceeaşi clasă Clasa 1 0 P(Clasa 1) = 0/6 = 0; P(Clasa 2) = 6/6 = 1 Clasa 2 6 Gini = 1 - P(Clasa 1)2 - P(Clasa 2)2 = 1 - 0 - 1 = 0 lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 34 / 75
  • 35. Exemplu: indexul Gini Formula: Gini(t) = 1 − c j=1 [p(j|t)]2 c este numărul de clase valoarea maximă se obţine dacă p(1|t) = · · · = p(c|t) şi este 1 − 1 c valoarea minimă se obţine dacă toate înregistrările din nod fac parte dintr–o aceeaşi clasă Clasa 1 0 P(Clasa 1) = 0/6 = 0; P(Clasa 2) = 6/6 = 1 Clasa 2 6 Gini = 1 - P(Clasa 1)2 - P(Clasa 2)2 = 1 - 0 - 1 = 0 Clasa 1 1 P(Clasa 1) = 1/6; P(Clasa 2) = 5/6 Clasa 2 5 Gini = 1 − (1/6)2 − (5/6)2 = 0.278 lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 34 / 75
  • 36. Exemplu: indexul Gini Formula: Gini(t) = 1 − c j=1 [p(j|t)]2 c este numărul de clase valoarea maximă se obţine dacă p(1|t) = · · · = p(c|t) şi este 1 − 1 c valoarea minimă se obţine dacă toate înregistrările din nod fac parte dintr–o aceeaşi clasă Clasa 1 0 P(Clasa 1) = 0/6 = 0; P(Clasa 2) = 6/6 = 1 Clasa 2 6 Gini = 1 - P(Clasa 1)2 - P(Clasa 2)2 = 1 - 0 - 1 = 0 Clasa 1 1 P(Clasa 1) = 1/6; P(Clasa 2) = 5/6 Clasa 2 5 Gini = 1 − (1/6)2 − (5/6)2 = 0.278 Clasa 1 2 P(Clasa 1) = 2/6; P(Clasa 2) = 4/6 Clasa 2 4 Gini = 1 − (2/6)2 − (4/6)2 = 0.444 lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 34 / 75
  • 37. Exemplu: partiţionarea folosind indexul Gini Folosită în algoritmii CART, SLIQ, SPRINT Formula indexului Gini: GINIpartitie = k i=1 ni n Gini(i) k e numărul de partiţii, n e numărul de înregistrări din nodul ce se partiţionează, ni este numărul de înregistrări din fiecare partiţie Se ignoră Gini(parinte) din ecuaţia (4) deoarece are aceeaşi valoare, indiferent de cum este el partiţionat Efectul termenilor din sumă: se preferă partiţii cât mai mari şi cât mai “pure” lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 35 / 75
  • 38. Exemplu: partiţionarea unui atribut binar folosind Gini Pentru atribut binar nodul va avea doi descendenţi Exemplu: partiţionarea unui nod care are 6 înregistrări din clasa C1 şi 6 din C2 Figure 18: Partiţionarea unui nod cu test pe un atribut binar N1 N2 C1 5 1 C2 2 4 Gini(N1) = 1 - (5/6)2 - (2/6)2 = 0.194; Gini(N2) = 1 - (1/6)2 - (4/6)2=0.528 Gini(partitie) = 7/12 · 0.194 + 5/12 · 0.528 = 0.333 lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 36 / 75
  • 39. Exemplu: partiţionarea unui atribut categorial folosind Gini Pentru fiecare valoare a atributului categorial se determină frecvenţa înregistrărilor cu acea valoare Se poate face partiţionare după fiecare valoare sau partiţionări binare Tipul maşinii Familie Sport Lux C1 1 2 1 C2 4 1 1 Gini 0.393 Table 1: Partiţionare după fiecare valoare a atributului Tipul maşinii {Sport, Lux} {Familie} C1 3 1 C2 2 4 Gini 0.400 Table 2: Partiţionare binară Tipul maşinii {Sport} {Lux,Familie} C1 2 2 C2 1 5 Gini 0.419 Table 3: Partiţionare binară lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 37 / 75
  • 40. Exemplu: partiţionarea unui atribut continuu Se poate utiliza un arbore de decizie binar, cu test pe o valoare v: venit anual ≤ v Variantă brute force pentru determinarea lui v: se consideră toate valorile distincte ale atributului continuu Pentru fiecare valoare v se consideră fiecare din cei N candidaţi pentru a vedea poziţionarea faţă de v Pentru v se consideră pe rând fiecare valoare din cele N Rezultat: complexitatea este O(N2) Variantă mai eficientă: se sortează cele N valori, efort computaţional O(N log N); se consideră valorile aflate la jumătate dintre două numere adiacente; Se iterează peste valorile sortate, actualizând de fiecare dată matricea de contorizare Se alege valoarea lui v pentru valoarea Gini minimă lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 38 / 75
  • 41. Exemplu: partiţionarea unui atribut continuu Figure 19: Partiţionarea pentru atribut continuu lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 39 / 75
  • 42. Raportul câştigului Engleză: gain ratio Atât entropia cât şi indexul Gini tind să favorizeze atributele care au un număr mare de valori distincte În figura de mai jos: Car type dă un mod mai bun de partiţionare decât Own car; ID-ul dă chiar o partiţionare cu o singură înregistrare pe nod copil, deci pare ideal Figure 20: Posibilităţi de partiţionare lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 40 / 75
  • 43. Raportul câştigului Ce e greşit în partiţionarea după ID? lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 41 / 75
  • 44. Raportul câştigului Ce e greşit în partiţionarea după ID? Chiar şi pentru o situaţie mai puţin extremă decât cea pentru ID, dacă se obţin partiţii cu puţine valori pe fiecare subset, numărul de înregistrări pe partiţie s–ar putea să fie prea mic pentru a permite predicţii exacte Soluţii 1 Se permit doar partiţionări în două submulţimi — algoritmul CART funcţionează astfel 2 Se modifică criteriul de partiţionare pentru a lua în considerare numărul de submulţimi care alcătuiesc partiţia lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 41 / 75
  • 45. Raportul câştigului Pentru a doua strategie — algoritmul C4.5 foloseşte “gain ratio” definit ca: Gain ratio = ∆info Split info (5) unde Split Info este entropia − k j=1 P(vj) log2 P(vj) cu P(vj) numărul de înregistrări din nodul vj, iar k numărul de submulţimi care alcătuiesc partiţia Exemplu: dacă sunt k submulţimi ce alcătuiesc partiţia şi fiecare din acestea are acelaşi număr de elemente, atunci P(vj) = 1 k , ∀j = 1 . . . k, entropia este maximă iar raportul din ecuaţia (5) scade. lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 42 / 75
  • 46. Oprirea construirii arborelui Se opreşte expandarea unui nod atunci când toate înregistrările din el aparţin aceleiaşi clase – nu mai ai de ce sa faci discriminare Sau când toate atributele au aceleaşi valori – nu se mai poate face discriminare Terminare mai devreme (va fi discutat) lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 43 / 75
  • 47. Algoritmul pentru construirea arborelui de decizie Figure 21: Schiţa algoritmului de construire a arborelui de decizie lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 44 / 75
  • 48. Exemplu: C4.5 Creator: Ross Quinlan Extensie a lui ID3 Spre deosebire de ID3: poate manipula atât valori discrete cât şi continue poate să manipuleze date de antrenare cu valori lipsă; valorile lipsă nu sunt considerate pentru calcularea gain si entropie poate manipula atribute ce au ataşate diverse costuri Foloseşte information gain Sortează atributele continue la fiecare nod Cere ca toate datele să fie încărcate în memoria RAM Open source, se poate descărca de la adresa: http://www.rulequest.com/Personal/c4.5r8.tar.gz Varianta următoare: C5, dar oferită contra cost lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 45 / 75
  • 49. Exemplu: detectarea roboţilor web Optimizarea unui site ar trebui să se facă strict pe baza acţiunilor manifestate de oameni Parcurgerea site-ului de către web crawlers nu este relevantă pentru restructurarea site–ului Intrare: web server logs; vizitele din cadrul unei sesiuni sunt modelate ca graf Datele trebuie să fie cumva etichetate înainte de construirea arborelui de decizie Figure 22: Arbore de decizie: vizitator uman vs. robot web Detalii: “Introduction to data mining”, cap 4 lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 46 / 75
  • 50. Aspecte ale construcţiei arborilor de decizie Construirea arborilor de decizie este o metoda neparametrică pentru construirea de clasificator = nu cere presupuneri apriori asupra distribuţiei datelor Găsirea unui arbore de decizie optim este o problemă prohibitiv d.p.d.v. computaţional, datorită numărului mare de variante; sunt implicate euristici pentru reducerea volumului de calcul Algoritmii de construire sunt de regulă rapizi; clasificarea pe baza lor este şi mai rapidă Sunt uşor de interpretat Acurateţe comparabilă cu a altor tipuri de clasificatori Relativ rezistenţi în faţa datelor cu zgomot Atributele redundante (puternic corelate cu alte atribute) nu afectează acurateţea arborilor obţinuţi lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 47 / 75
  • 51. Aspecte ale construcţiei arborilor de decizie (cont) Atributele irelevante pot afecta calitatea arborilor de decizie; aceştia se pot elimina prin tehnici de selectare a trăsăturilor Numărul de înregistrări scade pe măsură ce te “scufunzi” în construirea arborelui = problema fragmentării datelor. La frunze s–ar putea să fie prea puţine înregistrări care să poată fi folosite în luarea unor decizii statistic semnificative în ceea ce priveşte etichetarea Un subarbore s–ar putea să fie replicat de mai multe ori în arborele final: Figure 23: Problema replicării subarborelui: acelaşi subarbore poate apărea la mai multe niveluri lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 48 / 75
  • 52. Aspecte ale construcţiei arborilor de decizie (cont) În cele de mai sus pentru fiecare nod se consideră câte un singur atribut la un moment dat. Ca atare, regiunile de decizie sunt drepte paralele cu axele de coordonate: Deciziile se pot lua şi altfel: folosind mai multe atribute concomitent (e.g. x + y < 1, pentru datele din figura 24(b)) sau cu funcţii neliniare (a) Arbore de decizie cu regiuni de de- cizie paralele cu axele (b) Set de date care nu poate fi par- tiţionat folosind un singur atribut Alegerea măsurii de impuritate nu are un efect deosebit asupra performanţei arborilor obţinuţi lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 49 / 75
  • 53. Outline 1 Preliminarii 2 Utilizarea arborilor de decizie 3 Construirea arborilor de decizie 4 Overfiting şi underfitting 5 Evaluarea performanţei unui clasificator lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 50 / 75
  • 54. Overfitting şi underfitting Erorile sunt grupate în două categorii: erori de antrenare şi erori de testare Erori de antrenare: evaluate pentru setul de antrenare, după construirea clasificatorului Erori de testare: rezultat obţinut pe set de testare Un bun clasificator trebuie să aibă erori mici pe ambele seturi de date Dacă modelul (clasificatorul) se potriveşte pe datele de antrenare prea bine, atunci s–ar putea ca pe setul de testare să dea erori mari = eroare de overfitting Dacă modelul este insuficient elaborat, atunci va da erori mari atât de antrenare, cât şi de testare Dacă s–ar continua antrenarea modelului la perfecţie pe setul de antrenare, atunci s–ar putea ca unele noduri să reprezinte accidental date cu zgomot sau outliers (date inerent existente într–un volum mare); In decursul antrenării nu se foloseşte în niciun fel setul de testare! lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 51 / 75
  • 55. Overfitting şi underfitting Figure 24: Problemă de overfitting şi underfitting: pentru underfitting, erorile de antrenare şi de testare sunt mari. Pentru overfitting, erorile de antrenare sunt (din ce în ce mai) mici, dar erorile de testare sunt (tot mai) mari lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 52 / 75
  • 56. Cauze pentru overfitting: date cu zgomot Un arbore de decizie care se potriveşte prea bine setului de antrenare este senzitiv la datele “zgomot” Astfel de erori nu pot fi evitate şi stabilesc o rată de eroare minimă pe care o poate atinge un clasificator Figure 25: Punct “zgomot” care influenţează crearea regiunii de decizie. lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 53 / 75
  • 57. Cauze pentru overfitting: date nereprezentative Dacă suprafaţa de decizie este formată pornind de la puţine date, există riscul ca datele de test situate în vecinătatea regiunii de decizie să fie gresit clasificate Lipsa de date face dificilă predicţia Figure 26: Construirea unui clasificator plecând de la un set de date nereprezentativ pentru ceea ce se vrea a fi clasificat. Punctele albastre şi bilele roşii sunt setul de date de antrenare. lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 54 / 75
  • 58. Cauze pentru overfitting: compararea multiplă Posibilitatea de a efectua comparaţii multiple poate duce la overfitting Exemplu: pentru problema predicţiei evoluţiei pieţei, presupunem că un analist financiar face alegeri aleatoare, dând cu banul Probabilitatea de a ghici corect creşterea sau scăderea pieţii este 0.5 Probabilitatea de a ghici corect evoluţia pieţei de minim 8 ori din 10 încercări este: C8 10 + C9 10 + C10 10 210 = 0.0547 Să presupunem că avem un grup de 50 de investitori care procedează ca mai sus; alegem pe acel analist care face cele mai multe predicţii corecte în următoarele 10 zile lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 55 / 75
  • 59. Cauze pentru overfitting: compararea multiplă Probabilitatea ca să existe cel puţin un analist care face minim 8 predicţii corecte este 1 − (1 − 0.0547)50 = 0.9399 Chiar dacă un analist are probabilitatea mică de predicţie corectă, fiind suficient de mulţi, şansa de nimerire “la gramadă” este mare (Principiul lui Bonferroni) Dar nu e nicio garanţie că analistul care a realizat cele mai multe predicţii corecte va fi bun şi în continuare! Posibilitatea de alegere creează aparenţa posibilităţii găsirii unui predictor, dar acesta singur de fapt nu are un comportament strălucit Aceeaşi problemă poate apărea şi pentru arbori de decizie: la fiecare nod se poate să existe mai multe variante de alegere a criteriului de partiţionare Câştigul datorat acestei partiţionări ar trebui să ia în considerare şi numărul de variante existente, altfel posibilităţile multiple de alegere pot da aparenţa existenţei unui criteriu bun lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 56 / 75
  • 60. Estimarea erorii de generalizare a unui model Eroarea de generalizare (de operare pe seturi de date ce nu au fost folosite la instruirea modelului) este ceea ce interesează şi se doreşte a fi cât mai mică Întrucât setul de test nu este de fapt cunoscut apriori, se poate face doar o estimare a erorii de generalizare Eroarea de resubstituire: se presupune că setul de antrenare este reprezentativ în raport cu setul de date de test eroarea de antrenare este folosită ca estimare pentru eroarea de testare de regulă este o estimare mult prea optimistă a erorii de testare lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 57 / 75
  • 61. Estimarea erorii de generalizare a unui model În loc să se utilizeze setul de antrenare pentru estimarea erorii, se poate folosi un set de validare Setul de antrenare se partiţionează în două: Subset folosit pentru antrenare; de exemplu, 2/3 din datele de antrenare iniţiale pot fi folosite pentru acest subset Subset folosit pentru estimarea erorii de generalizare = set de validare = restul datelor Antrenarea nu se face şi pe subsetul de validare, ci doar pe primul subset Modelul care dă cea mai mică eroare pe setul de validare este folosit mai departe pentru testarea efectivă lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 58 / 75
  • 62. Includerea complexităţii modelului Este o opinie larg acceptată faptul că modelele complexe predispun la overfitting Principiu: briciul lui Occam (Occam’s razor): Definiţie (Briciul lui Occam) Dându–se două modele cu aceeaşi eroare de generalizare, modelul mai simplu ar trebui preferat (formularea originară: Entia non sunt multiplicanda praeter necessitatem). Cea mai simplă explicaţie a unui fenomen ar trebui preferată Echivalent cu principiul enunţat de A. Einstein: “Totul ar trebui să fie cât mai simplu cu putinţă, dar nu mai simplu de atât”. Mod de încorporare a complexităţii modelului: estimarea pesimistă a erorii şi principiul descrierii de lungime minimă lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 59 / 75
  • 63. Estimarea pesimistă a erorii Fie n(t) numărul de inregistrări din setul de antrenare pentru frunza t Notăm e(t), Ω(t) numărul de înregistrări gresit clasificate de frunza t, respectiv termenul de penalizare pentru frunza t Estimarea pesimistă a erorii pentru arborele T este: eg (T) = ti frunză e(ti ) + Ω(ti ) ti frunză n(ti ) lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 60 / 75
  • 64. Estimarea pesimistă: exemplu Figure 27: Arbore binar de decizie pentru o problemă de dihotomie. Clasificarea în nodurile frunză se face pe principiul majorităţii. Pentru arborele de mai sus considerăm că în setul de antrenare sunt 6 înregistrări clasificate eronat Dacă fixăm Ω(ti ) = 0.5: eg (T) = 6 + 4 · 0.5 24 = 0.3333 Interpretarea valorii “0.5” pentru Ω: “Introduction to Data Mining”, pag 182. lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 61 / 75
  • 65. Principiul descrierii de lungime minimă Eng: Minimum description length (MDL) Ideea de bază: orice regularitate într–un set de date poate fi utilizată pentru a comprima datele, i.e. pentru a le descrie folosind mai puţine simboluri decât ar fi folosite pentru reprezentarea brută a datelor. Este o altă manifestare a briciului lui Occam Un set de date poate fi reprezentat folosind simboluri dintr–un alfabet convenabil ales Costul transmiterii datelor este calculat ca: Cost(model, date) = Cost(model) + Cost(date|model) (6) unde ultimul termen din sumă reprezintă costul transmiterii suplimentare a datelor greşit clasificate de către model Principiul MDL spune că ar trebui preferate modelele pentru care costul dat de ec. (6) este minim lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 62 / 75
  • 66. Prevenirea overfitting–ului în arborii de decizie: prepruning Retezarea apriori (prepruning, early stopping rule) Opreşte algoritmul înainte de a construi complet arborele Condiţiile tipice de oprire sunt: dacă toate înregistrările din nodul curent sunt din aceeaşi clasă dacă toate atributele au aceleaşi valori Condiţii de prepruning pentru oprirea partiţionării unui nod: dacă numărul de înregistrări pe nod scade sub o anumită fracţie dacă expandarea nodului nu îmbunătăţeşte indexul Gini sau câştigul informaţional dacă distribuţia claselor este independentă de atributele existente Există pericolul impunerii unor condiţii prea dure → underfitting lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 63 / 75
  • 67. Prevenirea overfitting–ului în arborii de decizie: postprunning Retezarea ramurilor din arbore se face la sfârşit Strategie: se creează complet arborele de decizie Se retează noduri pornind de la bază spre vârf Daca arborele obţinut generalizează mai bine, arborele retezat se înlocuieşte cu o frunză;clasa decisă de frunză se determină prin majoritate Se poate utiliza MDL pentru postpruning Postpruning tinde să dea rezultate mai bune decât prepruning, evitând terminarea prematură a procesului de creştere a arborelui lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 64 / 75
  • 68. Postprunning: exemplu Class = Yes 20 Class = No 10 Eroare = 10/30 Table 4: Clasificarea folosind nodul neterminal Figure 28: Obţinerea de noduri copil pe baza valorilor atributului A Eroare pe setul de antrenare, înainte de partiţionare: 10/30 Eroarea pesimistă, înainte de partiţionare: (10 + 0.5)/30 = 10.5/30 Eroare pe setul de antrenare, după partiţionare: 9/30 Eroare pesimistă, după partiţionare: (9 + 4×0.5)/30 = 11/30 Concluzia: se face retezare lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 65 / 75
  • 69. Outline 1 Preliminarii 2 Utilizarea arborilor de decizie 3 Construirea arborilor de decizie 4 Overfiting şi underfitting 5 Evaluarea performanţei unui clasificator lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 66 / 75
  • 70. Evaluarea performanţei unui clasificator: metrici Se bazează pe numărarea înregistrărilor din setul de test care sunt clasificate corect sau incorect Numerele sunt trecute într–o matrice de confuzie: Clasa prezisă Clasa = 1 Clasa = 0 Clasa Clasa = 1 f11 f01 (true positive) (false negative) reală Clasa = 0 f10 f00 (false positive) (true negative) fij este numărul de înregistrări din clasa i prezise ca fiind din clasa j numărul total de predicţii corecte este f11 + f00 = true positive + true negative numărul total de predicţii incorecte este f01 + f10 matricea de confuzie poate fi şi pentru mai mult de două clase lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 67 / 75
  • 71. Evaluarea performanţei unui clasificator: metrici Plecând de la matricea de confuzie se pot defini metrici de performanţă: Acurateţea: Acuratetea = Numarul de predictii corecte Numarul total de predictii = f11 + f00 f11 + f10 + f01 + f00 Rata de eroare = 1 - acurateţea: Rata de eroare = Numarul de predictii incorecte Numarul total de predictii = = f10 + f01 f11 + f10 + f01 + f00 lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 68 / 75
  • 72. Evaluarea performanţei unui clasificator: metrici Limitări ale acurateţei: Considerăm o problemă de clasificare binară (dihotomie): exemple din clasa 0 = 9990, exemple din clasa 1 = 10 Dacă modelul prezice totul ca fiind de clasă 0, atunci acurateţea este 9990/10000 = 99.9% Acurateţea este în acest caz înşelătoare, deoarece modelul nu clasifică nimic ca fiind de clasă 1 (nu ştie deloc clasa 1) lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 69 / 75
  • 73. Evaluarea performanţei unui clasificator: metrici Pentru matricea de confuzie se poate considera matricea de costuri, care dă costul erorii de clasificare C(i|j): C(i|j): costul clasificării unui obiect ca fiind de clasă i când el este de fapt de clasă j Clasa prezisă Clasa = 1 Clasa = 0 Clasa Clasa = 1 C(1|1) C(0|1) reală Clasa = 0 C(1|0) C(0|0) Costul unei clasificări în care se foloseşte matrice de costuri: Cost = f11C(1|1) + f01C(0|1) + f10C(1|0) + f00C(0|0) Cu cât costul e mai mic, cu atât clasificarea e mai bună lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 70 / 75
  • 74. Evaluarea performanţei unui clasificator: metrici Clasa prezisă Clasa = 1 Clasa = 0 Clasa Clasa = 1 -1 100 reală Clasa = 0 1 0 Clasa prezisă Clasa = 1 Clasa = 0 Clasa Clasa = 1 150 40 reală Clasa = 0 60 250 Acurateţea = 80% Costul = 3910 Clasa prezisă Clasa = 1 Clasa = 0 Clasa Clasa = 1 250 45 reală Clasa = 0 5 200 Acurateţea = 90% Costul = 4255 Primul clasificator este mai bun relativ la matricea de costuri dată, chiar dacă acurateţea este mai mare pentru al doilea clasificator lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 71 / 75
  • 75. Evaluarea performanţei unui clasificator: metode de evaluare Reprezintă metode folosite pentru compararea modelelor Metoda holdout: setul dat iniţial se divide în set de antrenare şi set de testare (e.g. 2/3 + 1/3); se face antrenare doar pe setul de antrenare şi testare doar pe setul de testare Metoda eşantionării aleatoare: se repetă metoda holdout de câteva ori pe partiţionări aleatoare ale setului iniţial; se face media procentelor de clasificare corecte obţinute pe fiecare set de testare în parte K-fold cross validation: setul iniţial se împarte în k submulţimi disjuncte de dimensiuni (cât mai) egale; pe rând, fiecare din cele k submulţimi este folosită drept set de test şi restul alcătuiesc setul de antrenare; evaluarea finală este media celor k evaluări lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 72 / 75
  • 76. Evaluarea performanţei unui clasificator: metode de evaluare Leave-one-out: dacă sunt date puţine, atunci se poate lua k = N în k-fold cross validation Bootstrap: se face extragerea datelor din setul iniţial, dar cu întoarcerea datelor extrase în setul iniţial e posibil ca o înregistrare să fie astfel folosită de mai multe ori numărul de extrageri efectuate este chiar N numărul de date distincte rezultate în urma celor N extrageri: 1 − (1 − 1/N)N N→∞ −→ 1 − e−1 ≈ 0.632 modelul construit pe baza setului de bootstrap (N înregistrări, aproximativ 63.2% unice) se face antrenarea; datele ce nu sunt incluse în eşantionul de bootstrap sunt date de test lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 73 / 75
  • 77. Evaluarea performanţei unui clasificator: metode de evaluare Bootstrap (cont): modelul rezultat pe setul de antrenare este evaluat pe setul de testare, rezultând o rată de acurateţe εt se repetă procesul de mai sus de b ori acurateţea totală cuantificată prin metoda .632 bootstrap: accboot = 1 b b i=1 (0.632 · εi + 0.368 · accs) accs este acurateţea clasificatorului măsurată pe setul de antrenare Metodă îmbunătăţită: .632+ bootstrap, dezvoltată în “Improvements on Cross-Validation: The .632+ Bootstrap Method”, Bradley Efron, Robert Tibshirani, Journal of the American Statistical Association, Vol. 92, No. 438. (June 1997), pp. 548-560 — metodă cu variabilitate mică şi abatere moderată lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 74 / 75
  • 78. Evaluarea performanţei unui clasificator: compararea clasificatorilor Se bazează pe teste statistice Detalii: “Introduction to Data Mining”, sec. 4.6 lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 75 / 75