Sunteți pe pagina 1din 23

Învățarea automată

(Machine Learning)
Curs 5
Obiective
• Prezentarea strategiilor euristice utilizate de metodele de învățare
automată pentru extragerea de reguli în abordarea problemei
partiționării datelor în segmente interesante.
• Prezentarea caracteristicilor principale ale câtorva implementări ale
metodelor de învățare ce extrag reguli de clasificare, incluzând ZeroR,
OneR și RIPPER.
• Exemplificarea utilizării partiționării recursive a datelor folosind reguli
în rezolvarea unor probleme de clasificare din lumea reală:
identificarea ciupercilor otrăvitoare.
Reguli de clasificare
• Reprezintă cunoștințele sub forma propozițiilor if-then-else care atribuie o
clasă unui exemplu neetichetat.
• Sunt specificate sub forma:
• antecedent - anumite combinații de valori ale atributelor
• consecvent - specifică valoarea clasei ce trebuie asignate dacă sunt îndeplinite condițiile
regulii
• Se descurcă bine la identificarea evenimentelor rare, chiar dacă acestea
apar doar la o interacțiune foarte specifică între atribute.
• Oferă unele avantaje deosebite față de arborii de decizie, pentru anumite
probleme:
• Spre deosebire de arbori, care pot fi aplicați de sus în jos (top-to-bottom), regulile
sunt fapte de sine stătătoare.
• Rezultatul unui model bazat pe reguli este adesea mult mai econom, direct
și mai ușor de înțeles decât un arbore de decizie construit pe același date.
Utilizarea regulilor de clasificare
• În general, în problemele unde atributele sunt în principal sau în
întregime nominale:
• Identificarea condițiilor care conduc la căderi hardware ale dispozitivelor
mecanice.
• Descrierea caracteristicilor definitorii ale unor grupurilor de oameni pentru
segmentarea clienților.
• Descoperirea condițiilor care preced căderi sau creșteri ale prețurilor
acțiunilor pe piața bursieră.
• Etc.
Separate and conquer
• Reprezintă o euristică utilizată de algoritmii de învățare a regulilor de
clasificare:
• Procesul implică identificarea unei reguli care acoperă un subset de exemple
din setul de date de antrenare și apoi separă această partiție de datele
rămase.
• Pe măsură ce sunt adăugate reguli, sunt separate subseturi suplimentare până
când întregul set de date a fost acoperit și nu mai rămân alte exemple.
• Există o diferență subtilă între divide and conquer și separate and
conquer:
• fiecare nod de decizie din arbore este afectat de istoricul deciziilor anterioare
• odată ce algoritmul separă un set de exemple, următorul set ar putea să
utilizeze o mulțime diferită de atribute, într-o ordine total diferită
Exemplu de generare a regulilor de clasificare
(1)
• Trebuie să generăm reguli
pentru a identifica dacă un
animal este sau nu mamifer,
având la dispoziție următorul set
de date.
• Un model care învață reguli
începe prin utilizarea atributelor
disponibile pentru a găsi
grupurile omogene.
Exemplu de generare a regulilor de clasificare
(2)
• Utilizând un atribut care
specifică dacă animalul se
deplasează pe sol, prin aer sau
prin apă, prima regulă ar putea
sugera că orice animal care
merge pe sol ar fi mamifer:
Exemplu de generare a regulilor de clasificare
(3)
• Deoarece broaștele nu sunt
mamifere, regula trebuie să fie
puțin mai specifică:
• mamiferele merg pe pământ și
au o coadă
Exemplu de generare a regulilor de clasificare
(4)
• Un posibil atribut care să
deosebească liliacul de celelalte
animale rămase va fi prezența
blănii.
• Utilizând o regulă în jurul acestui
atribut, au fost identificate
corect toate animalele din setul
de date de antrenare și procesul
se poate opri.
Algoritmul One Rule (1R)
• Clasificatorul ZeroR (0R)
• pentru fiecare exemplu neetichetat, indiferent de valorile atributelor sale,
prognozează ce mai bine reprezentată clasă
• Clasificatorul OneR (1R)
• îmbunătățește ZeroR prin selectarea unei singure reguli, pentru un singur
atribut:
• pentru fiecare atribut, împarte datele în grupuri pe baza valorilor similare ale atributului
• pentru fiecare segment, algoritmul prognozează clasa majoritară
• este calculată rata erorilor pentru regulile pe baza fiecărui atribut și regula cu cele mai
puține erori este aleasă ca singură regulă utilizată.
Avantaje și dezavantaje OneR
• Avantaje • Dezavantaje
• Generează o singură regulă, • Utilizează un singur atribut.
empirică, ușor de înțeles. • Pentru anumite categorii de
• Adesea, pentru anumite categorii probleme pare foarte simplist.
de probleme, funcționează
surprinzător de bine, mai bine
decât ne putem aștepta:
• acuratețea acestui algoritm se poate
apropia destul de mult de cea a unor
algoritmi sofisticați
• Poate servi drept reper pentru
algoritmii mult mai complecși. Ref: Robert C. Holte, Very Simplistic Classification Rules
Perform Well in Most Commonly Used Datasets (in
Machime Learning, Vol. 11, pp.63-91), 1993
Exemplu de utilizare a algoritmului OneR
Algoritmul RIPPER (1)
• Algoritmii de învățare de reguli de la începuturi erau afectați de câteva
probleme:
• erau foarte lenți, deci foarte ineficienți pentru multe probleme din domeniul Big
Data
• erau predispuși la inexactități pe datele afectate de zgomot
• 1994 – apare algoritmul IREP (Incremental Reduced Error Pruning)
• utilizează o combinație de metode pre- și post – pruning care generează reguli foarte
complexe și apoi le taie înainte de a separa instanțele din întreg setul de date.
• 1995 – a fost introdus algoritmul RIPPER (Repeated Incremental Pruning to
Produce Error Reduction)
• îmbunătățește IREP prin generarea de reguli care ating sau chiar depășesc
performanțele arborilor de decizie
• regulile pot fi mult mai complexe decât cele ale lui 1R, cu mai mulți antecedenți
(poate lua în considerare mai multe atribute)
Ref. William W. Cohen , Fast Effective Rule Induction (in
Proceedings of 12th International Conference of Machine
Learining, pp. 115-123)
Algoritmul RIPPER (2)
• Poate fi înțeles, în termeni generali, ca un proces în trei pași:
1. Creștere (Grow)
• utilizează tehnici separate-and-conquer pentru a adăuga în mod greedy condiții la o
regulă până când clasifică perfect un subset de date sau rămâne fără atribute.
• asemănător arborilor de decizie, criteriul bazat pe câștigul informațional este utilizat
pentru a identifica următorul atribut pentru împărțire.
2. Tăiere (Prune)
• Atunci când specificitatea unei reguli nu mai conduce la reducerea entropiei, regula este
tăiată (anumite condiții sunt îndepărtate).
3. Optimizare (Optimize)
• Pașii 1 și 2 se repetă până la îndeplinirea unui criteriu de oprire, punct la care întregul
set de reguli este optimizat folosind o varietate de euristici.
Avantaje și dezavantaje RIPPER
• Avantaje: • Dezavantaje
• Generează reguli ușor de citit și de • Pot rezulta reguli care par să
înțeles de oameni. ignore bunul simț sau cunoștințele
• Este eficient pe seturi de date mari experților.
și afectate de zgomot. • Nu sunt ideale pentru lucrul cu
• Produce, în general, un model mai date numerice.
simplu decât un arbore de decizie • Pot să nu funcționeze prea bine pe
similar. modele mai complexe.
Extragerea de reguli din arborii de decizie
• Regulile de clasificare pot fi
obținute și direct din arborii de
decizie.
• Începând de la un nod terminal
(frunză) și mergând pe ramuri înapoi
către rădăcină se vor obține o serie
de reguli. Acestea pot fi combinate
într-o singură regulă.
• Dezavantaj
• Regulile sunt adesea prea complexe,
în comparație cu cele învățate cu
ajutorul algoritmilor de învățare de
reguli
• Avantaj:
• Uneori, generarea regulilor din arbore
este mult mai eficientă computațional
Exemplu – identificarea ciupercilor otrăvitoare
folosind algoritmii de învățare a regulilor (1)
• Pasul 1 – Colectarea datelor
• vor fi utilizate datele din setul Mushroms, donat către UCI Machine Learning
Repository de Jeff Schlimmer, de la Universitatea Carnegie Mellon.
• datele neprelucrate sunt disponibile la adresa:
http://archive.ics.uci.edu/ml/datasets/Mushroom
• setul de date include 8124 exemple de ciuperci din 23 de specii de ciuperci
listate în Audubon Society Field Guide to North Amercian Mushrooms (1981)
• fiecare specie de ciuperci este identificată ca fiind: ”definetily eadible”, ” definetily
poisonous” și ” likely poisonous, and not recommended to be eaten”
• pentru simplitate, ultima categorie va fi contopită cu cea de-a doua astfel încât să existe
doar două clase: otrăvitoare și comestibile (ne-otrăvitoare)
• sunt furnizate 22 de atribute, incluzând caracteristici cum ar fi: forma pălăriei,
culoarea pălăriei, mirosul , dimensiunea lamelelor și culoarea, forma
piciorului și habitatul etc.
Exemplu – identificarea ciupercilor otrăvitoare
folosind algoritmii de învățare a regulilor (2)
• Pasul 2 – Explorarea și pregătirea datelor
• importul datelor din fișierul sursă
> mushrooms <- read.csv(“mushrooms.csv”, stringAsFactors=TRUE)
> str(mushrooms)
• eliminarea unui atributelor nu furnizează informații utile
> mushrooms$veil_type <- NULL
• analiza distribuției valorilor claselor
> table(mushrooms$type)
edible poisonous
4208 3916
Exemplu – identificarea ciupercilor otrăvitoare
folosind algoritmii de învățare a regulilor (3)
• Pasul 3 – Antrenarea unui • Afișarea regulilor
model > mushroom_1R
• se va utiliza implementarea 1R
din pachetul RWeka, funcția odor:
OneR() almond -> edible
• instalarea pachetului RWeka anise -> edible
(necesită Java) creosote -> poisonous
install.packages(”RWeka”) fishy -> poisonous
foul -> poisonous
• încărcarea pachetului musty -> poisonous
library(RWeka)
none -> edible
pungent -> poisonous
• antrenarea modelului
spicy -> poisonous
> mushroom_1R <- OneR(type ~
., data = mushrooms) (8004/8124 instances correct)
Exemplu – identificarea ciupercilor otrăvitoare
folosind algoritmii de învățare a regulilor (4)
• Pasul 4 – Evaluarea performanțelor modelului
> summary(mushroom_1R)
=== Summary ===

Correctly Classified Instances 8004 98.5229 %


Incorrectly Classified Instances 120 1.4771 %
...
=== Confusion Matrix ===

a b <-- classified as
4208 0 | a = edible
120 3796 | b = poisonous
Exemplu – identificarea ciupercilor otrăvitoare
folosind algoritmii de învățare a regulilor (5)
• Pasul 5 – Îmbunătățirea performanțelor
• pentru o clasificare mai sofisticată, va fi utilizată funcția JRip(), inclusă în
pachetul RWeka , o implementare în Java a algortimului RIPPER.
> mushroom_JRip <- JRip(type ~ ., data = mushrooms)

• pentru a examina regulile, scriem numele clasificatorului:


> mushroom_JRip
Exemplu – identificarea ciupercilor otrăvitoare
folosind algoritmii de învățare a regulilor (6)
(odor = foul) => type=poisonous (2160.0/0.0)
(gill_size = narrow) and (gill_color = buff) =>
type=poisonous (1152.0/0.0)
(gill_size = narrow) and (odor = pungent) =>
type=poisonous (256.0/0.0)
(odor = creosote) => type=poisonous (192.0/0.0)
(spore_print_color = green) => type=poisonous (72.0/0.0)
(stalk_surface_below_ring = scaly) and
(stalk_surface_above_ring = silky) => type=poisonous (68.0/0.0)
(habitat = leaves) and (cap_color = white) => type=poisonous (8.0/0.0)
(stalk_color_above_ring = yellow) => type=poisonous (8.0/0.0)
=> type=edible (4208.0/0.0)
Bibliografie
• Tom Mitchell, Machine Learning, McGraw-Hill, 1997
• Max Kuhn, Kjell Johnson, Applied Predictive Modeling, Springer, 2013
• Brett Lantz, Machine Learning with R, Packt Publishing, 2013
• Pawel Cichocz, Data Mining Algorithms Explained Using R, Wiley,
2015
• Michaels Berthold, David J. Hands(Eds.), Intelligent Data Analysis,
Springer, 2003
• ***, Manual R, https://cran.r-project.org/doc/manuals/r-
release/Rintro.html

S-ar putea să vă placă și