Curs 4 Data Mining

2,340 views

Published on

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,340
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
90
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Curs 4 Data Mining

  1. 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. 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. 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. 4. Procesul de construire a unui clasificator lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 4 / 75
  5. 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. 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. 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. 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. 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. 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. 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. 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. 13. Arbori de decizie: utilizare lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 13 / 75
  14. 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. 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. 16. Arbori de decizie: utilizare lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 16 / 75
  17. 17. Arbori de decizie: utilizare lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 17 / 75
  18. 18. Arbori de decizie: utilizare lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 18 / 75
  19. 19. Arbori de decizie: utilizare lucian.sasu@ieee.org (UNITBV) Curs 4 April 7, 2014 19 / 75
  20. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×