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