Sunteți pe pagina 1din 447

Curs 1:

Introducere în Data Mining

Data Mining - Curs 1 (2017) 1


Preliminarii
Cum aţi traduce Data Mining?

1. Analiza datelor

2. Explorarea datelor

3. Exploatarea datelor

4. Extragerea de cunoştinţe din date

5. Mineritul datelor

Data Mining - Curs 1 (2017) 2


Preliminarii
• De ce Data Mining? – o scurtă motivaţie

• Ce este Data Mining? – concepte de bază

• Ce nu este Data Mining? – tematici corelate

• Categorii de date

• Principalele tipuri de prelucrări

• Organizarea cursului şi criterii de evaluare

Data Mining - Curs 1 (2017) 3


De ce Data Mining?
La ora actuală se colectează şi devine accesibil un volum foarte mare
de date de diferite tipuri şi provenind din diferite surse:
 tranzacţii comerciale (ex: hipermarket-uri)
 tranzacţii financiare (ex: bancomate)
 utilizarea unor resurse web (ex: comerţ electronic, alte servicii
web)
 interacţiuni sociale(ex: reţele sociale)
 date satelitare (ex: date privind Pământul şi atmosfera and
atmosphere colectate folosind senzori plasaţi pe sateliţi)
 date genomice (ex: date referitoare la nivelul de exprimare a
genelor colectate folosind dispozitive de tip microarrays)
 date medicale(ex: înregistrări medicale în format electronic)
 documente în format electronic (ex: documente scanate – în
biblioteci, arhive electronice etc.)

Data Mining - Curs 1 (2017) 4
De ce Data Mining?
• Toate aceste date încorporează o mulţime de cunoştinţe care ar
trebui extrase în diferite scopuri:

• Pentru a se genera recomandări (ex: pentru a ghida


activitatea de marketing, pentru a sugera produse clienţilor)
• Detectarea comportamentului anormal (ex: acces fraudulos la
un cont bancar)
• Predicţie (ex: în meteorologie, evoluţia pieţei/ preţurilor)
• Identificarea de tipare (ex: identificarea rolului unei gene)
• Asistarea deciziei medicale (ex: furnizarea unor sugestii
privind diagnosticul potenţial)

Data Mining - Curs 1 (2017) 5


De ce Data Mining?
Exemplu 1: Date referitoare la fertilizarea in vitro
[Witten, Frank, Hall – Data Mining. Practical Machine Learning Tools and Techniques -
http://www.cs.waikato.ac.nz/ml/weka/book.html]

Se porneşte de la: embrioni descrişi prin 60 de caracteristici


Problema: selectarea acelor embrioni care au şanse de supravieţuire
Date: înregistrări istorice cu caracteristici ale embrionilor şi informaţii privind
viabilitatea lor (fertilizare cu succes sau fără succes)

Exemplu 2: Procesarea aplicaţiilor pentru împrumut


Se porneşte de la: chestionar cu informaţii financiare şi personale (ex: vârsta,
date privind locul de muncă, starea de sănătate, starea financiară etc)
Problema: decizia dacă se acordă împrumutul sau nu
Date: înregistrări istorice conţinând informaţii personale şi financiare precum
şi privind rambursarea acestuia (dacă a fost rambursat la timp sau au existat
probleme)

Data Mining - Curs 1 (2017) 6


De ce Data Mining?
Exemplu 3: Predicţia încărcării unei reţele de distribuţie a energiei
electrice (estimarea cererii viitoare de putere electrică – util pentru
companiile distribuitoare)

Se cunoaşte: un model de încarcare a reţelei în cazul unor condiţii climatice


normale
Problema: predicţia încărcării minime/ maxime la anumite momente (de
exemplu din oră în oră)
Date: înregistrări istorice privind condiţiile meteo (temperatura, umiditatea,
viteza vântului, gradul de acoperire a cerului) şi gradul de încărcare a reţelei

Exemplu 4: Analiza coşului de cumpărături


Date: bază de date cu tranzacţii (o tranzacţie conţine informaţii despre
produsele cumpărate de către fiecare client)
Problema: identificarea grupurilor de produse care apar frecvent împreună
în aceeaşi tranzacţie (ex: pâine şi lapte)

Data Mining - Curs 1 (2017) 7


De ce Data Mining?
Exemplu 5: Detectarea anomaliilor
Date: date privind tranzacţii financiare
Problema: identificarea unei schimbări în comportamentul utilizatorilor

Exemplu 6: Identificarea profilelor utilizator


Date: fişiere cu date de conectare la un server web (log files)
Problema: identificarea unor profile de utilizatori (grupuri de utilizatori
caracterizaţi prin comportament similar)

127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0"


200 2326

Data Mining - Curs 1 (2017) 8


Ce este Data Mining?
Există diferite definiţii:

Data mining = “colectarea, curăţirea, procesarea, analiza datelor şi


extragerea de informaţii sau cunoştinţe utile din ele” [C.Aggarwal –
Data Mining. The Textbook, 2015]

• Colectare: există diferite surse de date (senzori, documente scrise,


servere web, dispozitive de tip microarray etc)
• Curătire: eliminarea zgomotului (a inconsistenţelor sau a datelor eronate)
şi tratarea valorilor absente
• Procesare: transformarea datelor într-un format standardizat
• Analiza: identificarea tiparelor, a regularităţilor, a asocierilor sau a
relaţiilor existente în date
• Extragere cunoştinţe: formularea unor reguli concise şi aplicabile (care ar
putea fi folosite de către utilizatori)

Data Mining - Curs 1 (2017) 9


Ce este Data Mining?
Există diferite definiţii:
Data mining = “extragerea din date a cunoştinţtelor implicite, anterior
necunoscute şi potenţial utile” [http://www.cs.waikato.ac.nz/ml/weka/book.html] sau
“explorarea şi analiza, prin mijloace automate sau semi-automate, a unei
cantităţi mari de date cu scopul de a identifica tipare utile/ relevante” [Tan,
Steinbach, Kumar – Introduction to Data Mining, 2004]

Uneori acest
proces este
denumit
descoperirea Extragerea
cunoştinţelor cunoştintelor
Analiza
iar termenul
data mining
Procesare
referă doar o (transformare)
etapă a Curăţire (pre-
acestui procesare)
colectare
proces
Data Mining - Curs 1 (2017) 10
Ce nu este Data Mining?
Exemplu: se consideră o bază de date ce conţine informaţii despre
clienţii unei bănci:

• Căutarea tuturor clienţilor ce locuiesc într-un oraş specificat nu


este o prelucrare specifică pentru data mining
• Determinarea numărului de clienţi care au în cont o sumă mai mică
sau mai mare decât o valoare specificată nu este o prelucrare
specifică pentru data mining
… astfel de probleme se rezolvă prin interogări simple ale bazei de
date
Pe de altă parte:
• Identificarea clienţilor cărora li se poate acorda un împrumut
• Identificarea operaţiunilor anormale într-un cont
… sunt probleme care necesită expertiză umană şi/sau instrumente
de data mining
Data Mining - Curs 1 (2017) 11
Domenii înrudite
Data mining este un domeniu înrudit cu: Altă definiţie
Data mining =
 Statistica – unele tehnici din data mining au rădăcini şi se Aplicarea metodelor
bazează pe metode statistice de învăţare automată
 Invăţare automată = extragerea de modele din date pentru extragerea de
printr-un proces de învăţare – cele mai multe modele din cunoştinţe din date
data mining se bazează pe metode de învăţare
 Baze de date – cele mai multe date sunt stocate în
baze de date
 Alte domenii:
 Vizualizare: instrumente pentru vizualizarea datelor
 Optimizare: multe procese de extragere a modelelor
din date se bazează pe optimizarea unor criterii
 Algebră liniară: datele sunt frecvent organizate în
matrici, a.i. sunt frecvent folosite prelucrări asupra
matricilor
Alţi termeni corelaţi: data science, big data
Data Mining - Curs 1 (2017) 12
Categorii de date
Date structurate = set of înregistrări/instanţe/articole conţinând un număr fix de
câmpuri/ atribute/caracteristici

Obs:
• Fiecare instanţă corespunde unui obiect/entitate de analizat (ex: client,
pacient, tranzacţie, zi etc.)
• Fiecare atribut corespunde unei caracteristici măsurabile a obiectului (ex:
vârsta, greutate, venit, temperatură etc.)
Exemple: http://www.tankonyvtar.hu/en/tartal
• Tablouri bi-dimensionale (i.e. Matrice de date) om/tamop425/0032_terinformatika/
ch04s04.html
o Baze de date relaţionale
o Foi de calcul
• Tablouri multi-dimensionale
o Imagini multi-spectrale

Data Mining - Curs 1 (2017) 13


Categorii de date
Date structurate = set of înregistrări/instanţe/articole conţinând un număr fix de
câmpuri/ atribute/caracteristici

Exemplu: Car Evaluation Database [http://archive.ics.uci.edu/ml/datasets.html]


1728 instanţe 6 atribute
Scop: clasificarea unei maşini în una din patru categorii: inacceptabilă,
acceptabilă, bună, foarte bună
Atribute
Instanţa Preţ Preţ între- Nr uşi Capacita- Dim. Siguranţa Clasa
cumpărare ţinere te bagaj

1 Very high Very high 2 2 small low inaccept.


2 Very high high 4 4 big medium inaccept.
3 Very high medium 5more 4 big medium accept
4 low low 5more 4 big medium bună

Data Mining - Curs 1 (2017) 14


Categorii de date
Date semi - structurate = date care nu au o structură standard (i.e. Nu toate
instanţele au aceleaşi atributre); există totuşi unele elemente (e.g. tags) care ajută la
identificarea unei structuri în date
Exemplu: fişier XML al unui CV [http://www.eife-l.org]
Scop: prelucrarea automată a CV-urilot cu scopul identificării expertizei (sarcină tipică pentru
departamentele HR)
….
<Address type="Residence">
<oa:AddressLine sequence="1">myaddress</oa:AddressLine>
<oa:CityName>mycity</oa:CityName>
<CountryCode>FR</CountryCode>
<oa:PostalCode>29630</oa:PostalCode>
<UserArea> <europass:CountryLabel
xml:lang="fr">France</europass:CountryLabel>
</UserArea>
</Address>
...
Obs: datele semi-structurate sunt de regulă transformate în date structurate înainte
de a aplica tehnici de data mining
Data Mining - Curs 1 (2017) 15
Categorii of data
Date nestructurate = nu sunt organizate într-o manieră predefinită (nu există un
model al datelor) – sunt de obicei texte în format liber şi scopul urmărit este
extragerea de informaţii din text.

Exemplu: documente text

Prelucrări:
 sumarizarea documentelor (extragere cuvinte cheie, idei principale)
 Identificarea entităţilor cu nume (ex: nume de persoane, nume de instituţii,
locuri geografice etc)
Dificultăţi:
 Datele pot fi ambigue (ex: Numele unei persoane poate apare în diferite
variante: Ioan Popescu, I. Popescu, Popescu Ioan)
 Prelucrarea datelor de tip text necesită metode specifice prelucrării limbajului
natural (ex: etichetarea părţilor de vorbire –substantive, verbe, adjective …)

Data Mining - Curs 1 (2017) 16


Tipuri de prelucrări
Prelucrări predictive

Scop: predicţia unor valori necunoscute sau viitoare ale unor atribute
pe baza valorilor celorlalte atribute

Variante:
• Clasificare = identificarea clasei (categoriei) căreia ar trebui să îi
aparţină o anumită instanţă (pe baza valorilor atributelor ei)
Exemple: datele referitoare la fertilizarea in vitro, la evaluarea
cererilor de împrumut bancar

• Regresie = estimarea valorii unui atribut pe baza valorilor altor


atribute
Exemplu: predicţia încărcării reţelei de distribuţie a energiei
electrice
Data Mining - Curs 1 (2017) 17
Tipuri de prelucrări
Prelucrări descriptive
Scop: identificarea unor tipare interpretabile care permit descrierea
sau explicarea datelor
Variante:
• Clustering (grupare) = identificarea unor grupuri naturale în date
Exemplu: identificarea profilelor utilizator

• Asociere = descoperirea unor regul de asociere între atribute


Exemplu: analiza coşului de cumpărături

• Excepţii sau anomalii = identificarea entităţilor (instanţe) care par


anormale într-un anumit sens (de obicei semnificativ diferite de
celelalte)
Exemplu: detecţia activităţii frauduloase
Data Mining - Curs 1 (2017) 18
Clasificare
Ce se cunoaşte?
• O colecţie de instanţe (înregistrări) pentru care se cunoaşte clasa căreia
îi aparţtin (set de antrenare)
• Fiecare dintre instanţe conţine un set de atribute, iar unul dintre aceste
atribute este eticheta clasei

Ce se doreşte?
• un model care captează legătura dintre atributul clasă şi celelalte
atribute (modelul este extras pornind de la setul de antrenare printr-un
proces numit învăţare supervizată)

Care este scopul final?


• Să se folosească modelul extras din date pentru a identifica clasa căreia
îi aparţine o instanţă nouă (care nu face parte din setul de antrenare)

Observaţie: un model util trebuie să fie caracterizat printr-o bună acurateţe;


acurateţea modelului poate fi estimată utilizând date pentru care se cunoaşte
clasa căreia îi aparţin dar care nu au fost utilizate în extragerea modelului (set
de validare)

Data Mining - Curs 1 (2017) 19


Clasificare
Exemplu:

• Diagnoza medicală = asociază unei înregistrări medical o clasă


(prezenţa sau absenţa unei boli)

Exemplu subset dintr-un set de date (breast-cancer-wisconsin - format arff–


vezi Lab 1)
@relation wisconsin-breast-cancer
@attribute Clump_Thickness integer [1,10]
@attribute Cell_Size_Uniformity integer [1,10]
@attribute Cell_Shape_Uniformity integer [1,10]
@attribute Marginal_Adhesion integer [1,10]
@attribute Single_Epi_Cell_Size integer [1,10]
@attribute Bare_Nuclei integer [1,10]
@attribute Bland_Chromatin integer [1,10]
@attribute Normal_Nucleoli integer [1,10]
@attribute Mitoses integer [1,10]
@attribute Class { benign, malignant}@data
5,1,1,1,2,1,3,1,1,benign
5,4,4,5,7,10,3,2,1,benign
3,1,1,1,2,2,3,1,1,benign
8,10,10,8,7,10,9,7,1,malignant
1,1,1,1,2,10,3,1,1,benign

Data Mining - Curs 1 (2017) 20


Clasificare
Exemplu:

• Filtru anti-spam = identificarea clasei (ilegitim=spam/legitim=ham)


unui mesaj (e-mail sau SMS)

Exemplu subset date (SMS spam collection dataset from UCI Machine
Learning Repository)

ham What you doing?how are you?


ham Ok lar... Joking wif u oni...
ham dun say so early hor... U c already then say...
ham MY NO. IN LUTON 0125698789 RING ME IF UR AROUND! H*
ham Siva is in hostel aha:-.

spam FreeMsg: Txt: CALL to No: 86888 & claim your reward of 3 hours talk time to use
from your phone now! ubscribe6GBP/ mnth inc 3hrs 16 stop?txtStop

spam Sunshine Quiz! Win a super Sony DVD recorder if you can name the capital of
Australia? Text MQUIZ to 82277. B

spam URGENT! Your Mobile No 07808726822 was awarded a L2,000 Bonus Caller Prize
on 02/09/03! This is our 2nd attempt to contact YOU! Call 0871-872-9758 BOX95QU
Data Mining - Curs 1 (2017) 21
….
Regresie
Ce se cunoaşte?
• O colecţie de instanţe caracterizate prin atribute numerice (set de
antrenare)

Ce se urmăreşte?
• Un model al dependenţei între unul dintre atribute (atributul de prezis)
şi celelalte atribute (predictori)

Care este scopul final?


• Să se prezică valoarea atributului de interes pe baza valorilor
cunoscute ale celorlalte atribute.

Observaţie
• se poate presupune de la început că modelul de regresie satisface
anumite proprietăţi (este liniar sau neliniar); modelul poate fi fixat, ca în
regresia statistică, sau poate fi flexibil (ca în cazul reţelelor neuronale
sau a altor modele din inteligenţa computaţională)

Data Mining - Curs 1 (2017) 22


Regresie
Exemple:
– Predicţia volumului de vânzări a unui produs nou în funcţie de cheltuielile
pentru publicitate.
– Predicţia vitezei vântului în funcţie de temperatură, umiditate, presiunea
aerului etc.
– Predicţia evoluţiei în timp a indicilor bursieri.
Set de date: predicţia consumului de combustibil în funcţie de caracteristicile
maşinii
@relation autoMpg
@attribute cylinders { 8, 4, 6, 3, 5} @attribute displacement real
@attribute horsepower real @attribute weight real @attribute acceleration real
@attribute model { 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82}
@attribute origin { 1, 3, 2}
@attribute MilesPerGallon real
@data
8,307,130,3504,12,70,1,18
8,350,165,3693,11.5,70,1,15
8,318,150,3436,11,70,1,18
8,304,150,3433,12,70,1,16
….
Data Mining - Curs 1 (2017) 23
Clustering
Ce se cunoaşte?

• Un set de data (nu neapărat structurate)


• O măsură de similaritate/disimilaritate între date (este specifică
problemei)

Ce se urmăreşte?

• Identificarea unui model care descrie modul în care pot fi grupate


datele în clustere astfel încât datele aparţinând aceluiaşi cluster sunt
mai similare între ele decât datele aparţinând unor clustere diferite

Care este scopul final?

• Să se poată verifica dacă două date aparţin aceluiaşi cluster sau nu


• Să se identifica clusterul adecvat unei date
• Să se identifice/vizualizeze modul în care se grupează datele

Observaţie: pentru unele metode de grupare nu e necesar să se cunoască


datele primare fiind suficient să se cunoască matricea de (di)similaritate
Data Mining - Curs 1 (2017) 24
Clustering
Exemple:

• Gruparea clienţilor = identificarea de grupuri de clienţi cu obiceiuri


similare de cumpărare

• Sumarizarea datelor / gruparea documentelor = identificarea de grupuri


de documente pe baza conţinutului

• Extragerea profilelor de utilizatori = identificarea grupurilor de utilizatori ai


unui serviciu web caracterizaţi prin comportament similar

• Segmentarea imaginilor = identificarea de regiuni omogene în imagini


15

10

5
5 0 5 10 15

Data Mining - Curs 1 (2017) 25


Analiza excepţiilor
Ce se cunoaşte?
• Un set de data (nu neapărat structurate)

• O măsură de similaritate/disimilaritate între date (este specifică


problemei)

Ce se urmăreşte ?
• Identificarea unui model care corespunde comportamentului
normal

Care este scopul final?


• Identificarea excepţiilor, adică a datelor care se abat semnificativ
de la model (valori atipice)
Observaţie: este oarecum complementară grupării datelor

Data Mining - Curs 1 (2017) 26


Analiza excepţiilor
Exemple:
• Sisteme de detecţie a intruşilor
– Apeluri sistem anormale sau trafic anormal în reţea pot sugera prezenţa unei
activităţi maliţioase

• Fraudă bancară
– Un comportament neobişnuit în utilizarea unei cărţi de credit (e.g.utilizarea
cardului din locaţii geografice neobişnuite sau la ore neobişnuite) poate
sugera o posibilă activitate frauduloasă

• Diagnoza medicală
– Structuri anormale observate pe imagini MRI(magnetic resonance imaging),
PET (positron emission tomography) sau secvenţe EKG pot indica preyenţa
unor patologii

Data Mining - Curs 1 (2017) 27


Reguli de asociere
Ce se cunoaşte?
• Un set de înregistrări, fiecare conţinând obiecte (entităţi) dintr-o
colecţie

Ce se urmăreşte?
• Să se gasească un model care să permită estimarea prezenţei
unui obiect în ipoteza prezenţei altor obiecte

Care este scopul final?


• Identificarea unor tipare de asociere între obiecte

Data Mining - Curs 1 (2017) 28


Reguli de asociere
Exemplu: analiza coşului de cumpărături (fiecare instanţă
corespunde unei tranzacţii = listă de produse cumpărate)

T1: {lapte, pâine, carne, apă}


T2: {pâine, apă}
T3: {pâine, unt, carne, apă}
T4: {apă}

Rezultate:
• Itemset frecvent: {pâine, apă} - suport 75% (perechea de
produse apare în 3 din 4 tranzacţii) – se poate spune că “pâinea
şi apa sunt cumpărate frecvent împreună”
• Regulă de asociere: pâine->apă (100% nivel de încredere: în
toate cazurile atunci când este cumpărată pâine este cumpărată şi
apă)

Data Mining - Curs 1 (2017) 29


Structura cursului
1. Introducere (acest curs)
2. Pre-procesarea datelor
3. Tehnici de clasificare
4. Tehnici de grupare
5. Reguli de asociere
6. Regresie şi analiza seriilor temporale
7. Analiza excepţiilor
8. Meta-modele şi tehnici de tip ansamblu
9. Tehnici specifice (text mining, web mining)

Course materials: http://www.info.uvt.ro/~dzaharie/dm2017


- lectures
- lab

Data Mining - Curs 1 (2017) 30


Structura laboratorului
1. Seturi şi colecţii de date. Introducere în Weka
2. Pre-procesarea datelor (curăţare, transformare, reducere
dimensiune)
3. Clasificarea datelor (clasificatori bazaţi pe instanţe, arbori şi
reguli de decizie)
4. Clasificarea datelor (modele probabiliste, reţele neuronale,
vectori suport)
5. Gruparea datelor (algoritmi partiţionali, ierarhici, bazaţi pe
densitate)
6. Reguli de asociere. Modele de regresie.
7. Analiza seriilor temporale. Metode de tip ansamblu. Text mining.

Data Mining - Curs 1 (2017) 31


Bibliografie
• C.C. Aggarwal, Data Mining – The Text Book, Springer, 2015

• M. H. Dunham. Data Mining. Introductory and Advanced Topics, Pearson


Education 2003

• F. Gorunescu, Data Mining. Concepts, Models and Techniques, Springer,


2011

• C. D. Manning, P. Raghavan and H. Schütze, Introduction to Information


Retrieval, Cambridge University Press. 2008.

• I.H. Witte, E. Frank, M.A. Hall. Data Mining – Practical Machine Learning
Tools and Techniques, Morgan Kaufmann Publishers, 2011

Data Mining - Curs 1 (2017) 32


Evaluare
 Examen cu acces la materiale bibliografice (20%) – 20 întrebări/
90 minute

 Proiect (60%):
 Raport (6-12 pagini)
 Aplicaţie (în Weka, R, Python sau alt limbaj de programare)
 Slide-uri pt prezentarea de la examen (cca 10 minute)

 Activitate laborator (20%)


 participare
 teme

Data Mining - Curs 1 (2017) 33


Exemple de aplicaţii
(Store Product Placement) A merchant has a set of d products together with
previous transactions from the customers containing baskets of items bought
together. The merchant would like to know how to place the product on the
shelves to increase the likelihood that items that are frequently bought
together are placed on adjacent shelves.
Ce prelucrare este adecvată?

(Product Recommendations) A merchant has an n × d binary matrix D


representing the buying behavior of n customers across d items. It is
assumed that the matrix is sparse, and therefore each customer may have
bought only a few items. It is desirable to use the product associations to
make recommendations to customers.

Ce prelucrare este adecvată?

Data Mining - Curs 1 (2017) 34


Exemple de aplicaţii
(Store Product Placement) A merchant has a set of d products together with
previous transactions from the customers containing baskets of items bought
together. The merchant would like to know how to place the product on the
shelves to increase the likelihood that items that are frequently bought
together are placed on adjacent shelves.
Reguli de asociere

(Product Recommendations) A merchant has an n × d binary matrix D


representing the buying behavior of n customers across d items. It is
assumed that the matrix is sparse, and therefore each customer may have
bought only a few items. It is desirable to use the product associations to
make recommendations to customers.

Clustering

Data Mining - Curs 1 (2017) 35


Exemple de aplicaţii
(Medical ECG Diagnosis) Consider a set of ECG time series that are
collected from different patients. It is desirable to determine the anomalous
series from this set.
Ce prelucrare este adecvată?

(Web Log Anomalies) A set of Web logs is available. It is desired to


determine the anomalous sequences from the Web logs.
Ce prelucrare este adecvată?

Data Mining - Curs 1 (2017) 36


Exemple de aplicaţii
(Medical ECG Diagnosis) Consider a set of ECG time series that are
collected from different patients. It is desirable to determine the anomalous
series from this set.

(Web Log Anomalies) A set of Web logs is available. It is desired to


determine the anomalous sequences from the Web logs.
Detecţie anomalii
Clasificare

Data Mining - Curs 1 (2017) 37


Sumar
Data mining:

 Aplicaţie
 Task (acţiune)
 Metoda (algoritm)

Elemente cheie:

 Stabilirea întrebării adecvate


 Identificarea datelor adecvate
 Pregătirea datelor
 Selectarea algoritmilor adecvaţi
 Interpretarea rezultatelor

Data Mining - Curs 1 (2017) 38


Sumar: a roadmap for a data scientist
"A data scientist is a person who is better at statistics than any software
engineer and better at software engineering than any statistician."

Data Mining - Curs 1 (2017) 39


Curs 2:

Pre-procesarea datelor

Data Mining -Curs 2 (2017) 1


Structura
• Reminder: etape extragere cunoştinţe din date

• Extragerea caracteristicilor

• Tipuri de atribute

• Curatirea datelor

• Reducerea dimensiunii datelor

• Transformarea caracteristicilor

Data Mining -Curs 2 (2017) 2


Etape extragere cunoştinţe din date

Extragere
cunoştinţe
analiză

transformare

curăţire

colectare

Data Mining -Curs 2 (2017) 3


Etape extragere cunoştinţe din date
Exemplu: un comerciant care deţine un sistem de comerţ electronic
este interesat să obţină informaţii referitoare la comportamentul
clienţilor săi cu scopul de a recomanda anumite produse

Surse de date:
• Fişiere de tip log cu informaţii de conectare
98.206.207.157 - - [31/Jul/2013:18:09:38 -0700] "GET
/productA.htm HTTP/1.1" 200 328177 "-" "Mozilla/5.0 (Mac OS X)
AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0
Mobile/10B329 Safari/8536.25” "retailer.net"
• Informaţii demografice colectate în procesul de înregistrare al
utilizatorilor - stocate într-o bază de date (ex: e-mail, telefon,
oraş, categorie de vârstă, categorie profesională)

Cum ar putea fi folosite aceste informaţii?

Data Mining -Curs 2 (2017) 4


Etape extragere cunoştinţe din
date
Cum ar putea fi folosite aceste informaţii?
Comerciantul ar dori să determine care sunt produsele achiziţionate
de către fiecare client

Aceasta necesită:
• Stabilirea corespondenţei între înregistrările din fişierele cu
informaţii de logare şi baza de date cu informaţii privind clienţii
(problema: erorile pot conţine erori care îngreunează procesul ->
poate fi necesară curăţirea datelor)
• Agregarea tuturor informaţiilor de logare corespunzătoare unui
client (Problema: nu toate informaţiile sunt neapărat utile -> ar
putea necesita selecţie)
• Integrarea informaţiilor din ambele surse de date (ar putea
necesita transformarea datelor)
Data Mining -Curs 2 (2017) 5
Etape extragere cunoştinţe
Principalele etape
din date
 Colectarea datelor (din diferite surse)
 Pre-procesarea datelor
• Extragerea caracteristicilor (specifice problemei de rezolvat)
• Curăţirea datelor (ex: eliminarea înregistrărilor eronate sau completarea
valorilor absente)
• Selecţia caracteristicilor (ignoră atributele irelevante, redundante sau
inconsistente)
• Transformarea datelor/ atributelor
o Transformarea valorilor unui atribut:
o Numeric -> nominal/ordinal (e.g. valoarea vârstei este transformată
într-o categori: foarte tânăr, tânăr, bătrân, foarte bătrân);
o Nominal -> logic/binar (e.g. fiecărei valori posibile a unui atribut
nominal i se asociază un atribut binar )
o Transformă un set de atribute în alt set de atribute care poartă mai
multă informaţie (e.g. explică mai bine variabilitatea din date)
 Analiza datelor (extragerea de cunoştinţe din date)
Data Mining -Curs 2 (2017) 6
Extragerea caracteristicilor
Scop:
• Extragerea caracteristicilor semnificative din datele brute (datele pot
proveni din diferite surse)

Particularitate:
• Procesul de extragere depinde de specificul domeniului şi necesită
expertiză în domeniul respectiv

Exemple: extragerea caracteristicilor din


• imagini
• documente (XML, PDF)
• web logs
• date privind trafic în reţea

Data Mining -Curs 2 (2017) 7


Extragerea caracteristicilor
Extragerea informaţiilor privind textura dintr-o imagine:

Abordare bazată pe histogramă:


• Construirea histogramei color (pentru fiecare bandă
de culoare şi pt fiecare regiune din imagine)
H(v)=numărul de pixeli care au valoarea v
• Calcul valori statistice:
• medie
• varianţă
• energie
• entropie
• [alţi indicatori statistici (skewness, kurtosis)]
• Obs: dacă imaginea este partiţionată în K2 regiuni şi
pt fiecare regiune şi fiecarea bandă de culoare sunt
calculate 4 mărimi statistice atunci imaginii i se
asociază un vector cu 12 K2 caracteristici numerice
Data Mining -Curs 2 (2017) 8
Extragerea caracteristicilor
Extragerea caracteristicilor de textură dintr-o imagine:

Alte variante (ex: [http://www.eletel.p.lodz.pl/programy/cost/pdf_1.pdf]):


• Matrici de co-ocurenţă

Data Mining -Curs 2 (2017) 9


Extragerea caracteristicilor
Extragerea caracteristicilor dintr-un document:

1. XML - date semistructurate

<PersonalData><PersonDescriptors><DemographicDescriptors><Natio
nality>francaise</Nationality>
</DemographicDescriptors>
<BiologicalDescriptors><DateOfBirth>1978-01-16</DateOfBirth>
<GenderCode>1</GenderCode>
</BiologicalDescriptors>
</PersonDescriptors>
</PersonalData>

Prin parsare, se pot extrage caracteristicile demografice:
Nationalitz Date of birth Gender
Francaise 1978-01-16 1

Data Mining -Curs 2 (2017) 10


Extragerea caracteristicilor
Extragerea caracteristicilor dintr-un document:
2. Fişier text – date nestructurate
3. Exemplu (abordarea bazată pe bag-of-words):
“In document classification, a bag of words is a sparse vector of occurrence
counts of words; that is, a sparse histogram over the vocabulary. In computer
vision, a bag of visual words is a vector of occurrence counts of a vocabulary
of local image features.”
a) Eliminarea cuvintelor de legătură (stop words)
“In document classification, a bag of words is a sparse vector of occurrence
counts of words; that is, a sparse histogram over the vocabulary. In computer
vision, a bag of visual words is a vector of occurrence counts of a vocabulary
of local image features.”

“document classification bag words sparse vector occurrence counts words


sparse histogram vocabulary computer vision bag visual words vector
occurrence counts vocabulary local image features.”

Data Mining -Curs 2 (2017) 11


Extragerea caracteristicilor
Extragerea caracteristicilor dintr-un document – fişier text: abordarea de tip
bag-of-words

b) Reducerea cuvintelor la rădăcina lor – stemming (algoritm Porter)

“document classification bag words sparse vector occurrence counts words


sparse histogram vocabulariy computer vision bag visual words vector
occurrence counts vocabulariy local image features”
[http://textanalysisonline.com/nltk-porter-stemmer]

“document classif bag word spars vector occurr count word spars histogram
vocabulari comput vision bag visual word vector occurr count vocabulari local
imag featur”

Data Mining -Curs 2 (2017) 12


Extragerea caracteristicilor
Extragerea caracteristicilor dintr-un document – fişier text: abordarea de tip
bag-of-words

c) Calculul frecvenţelor:

“document classif bag word spars vector occurr count word spars histogram
vocabulari comput vision bag visual word vector occurr count vocabulari local
imag featur”

Caracteristici extrase:
(bag,2), (classif,1), (comput,1), (count,2), (document,1), (featur,1),
(histogram,1), (imag,1), (local,1), (occurr,2), (spars,2), (vector,2), (vision,1),
(visual,1), (vocabulari,2), (word,3)

Data Mining -Curs 2 (2017) 13


Extragerea caracteristicilor
Extragere caracteristici din fişier log:

192.168.198.92 - - [22/Dec/2002:23:08:37 -0400] "GET / HTTP/1.1" 200 6394


www.yahoo.com "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1...)" "-"
192.168.198.92 - - [22/Dec/2002:23:08:38 -0400] "GET /images/logo.gif HTTP/1.1"
200 807 www.yahoo.com "http://www.some.com/" "Mozilla/4.0 (compatible; MSIE
6...)" "-"
192.168.72.177 - - [22/Dec/2002:23:32:14 -0400] "GET /news/sports.html HTTP/1.1"
200 3500 www.yahoo.com "http://www.some.com/" "Mozilla/4.0 (compatible; MSIE
...)" "-"

Prin parsarea fişierului se pot extrage:


Client IP address Date Time Request command etc.
192.168.198.92 22/Dec/2002 23:08:37 GET / HTTP/1.1
192.168.198.92 22/Dec/2002 23:08:38 GET /images/logo.gif HTTP/1.1
192.168.72.177 22/Dec/2002 23:32:14 GET /news/sports.htmlHTTP/1.1

Data Mining -Curs 2 (2017) 14


Extragerea caracteristicilor
Rezultatul unui proces de extragere:

• Matrice de date: fiecare linie corespunde unei înregistrări (articol sau


instanţă), fiecare coloană corespunde unei caracteristici (atribut)
Exemplu (CV data):
Nationality Date of birth Gender
CV 1: Francaise 1978-01-16 1
CV 2: Roman 1965-09-01 2
….
• Set de instanţe, fiecare instanţa = listă de valori ale caracteristicilor

Exemplu (fişier text):


Fişier 1: (bag,2), (classif,1), (comput,1), (count,2), (document,1), (featur,1),
(histogram,1), (imag,1), (local,1), (occurr,2), (spars,2), (vector,2), (vision,1),
(visual,1), (vocabulari,2), (word,3)
Fişier 2: …
Data Mining -Curs 2 (2017) 15
Tipuri de caracteristici/ atribute
• Numerice (cantitative)

Exemple: vârsta, greutate, preţ, cantitate, temperatură etc.


Specific:
• Valorile atributelor cantitative sunt numere (întregi sau reale)
• Se poate defini o ordine între valori (i.e. se poate calcula: minim, maxim,
mediana şi se pot ordona valorile)
• Se pot efectua operaţii aritmetice:
• Calcul medie, varianţă şi alţi indicatori statistici
• Alte operaţii: adunare, scădere, înmulţire, împărţire etc (e.g. valoare
= preţ*cantitate)

Obs: un caz particular este reprezentat de valorile de tip data calendaristică


sau oră (ex: 1975-01-16); are sens să se compare sau să se calculeze
diferenţa dintre date dar nu are sens să se înmulţească)

Data Mining -Curs 2 (2017) 16


Tipuri de caracteristici/ atribute
• Ordinale (valori discrete aparţinând unei mulţimi ordonate)

Exemple:
Nivele de calitate (e.g: inacceptabil, acceptabil, bun, foarte bun, excelent)
Nivele ale unei caracteristici (e.g: foarte scăzut, scăzut, mediu, ridicat, foarte
ridicat)

Specific:
• Valorile pot fi numere, simboluri, şiruri
• Există relaţie de ordine pe mulţimea valorilot (i.e. se poate calcula minim,
maxim, mediana şi se pot ordona valorile)
• Nu are sens să se efectueze operaţii aritmetice

Data Mining -Curs 2 (2017) 17


Tipuri de caracteristici/ atribute
• Nominale/ categoriale (valori discrete aparţinând unei mulţimi pe care nu
se este definită o relaţie de ordine )

Exemple:
Gen (e.g: female, male)
Rasă (e.g. caucaziană, asiatică, africană etc)
Stare civillă

Specific:
• Valorile unei astfel de caracteristici pot fi simboluri, siruri de caractere etc
• Nu se pot aplica operaţii aritmetice sau de ordonare
• Operatii:
• Verificare egalitate
• Calcul frecvenţe

Data Mining -Curs 2 (2017) 18


Tipuri de caracteristici/ atribute
• Binar (doar două valori posibile: {0,1} sau {False, True})
• Se utilizează pentru a codifica absenţa/prezenţa unor caracteristici
• Permite specificarea unor submulţimi (interpretate ca funcţii indicator)
Exemplu: set de tranzacţii
T1: {lapte, pâine, carne}
T2: {pâine, apă}
T3: {unt, carne}
T4: {apă}

Trans. pâine unt carne lapte apă


T1 1 0 1 1 0
T2 1 0 0 0 1
T3 0 1 1 0 0
T4 0 0 0 0 1
• Obs: este un exemplu de conversie a datelor (de la nominal la binar)
Data Mining -Curs 2 (2017) 19
Conversii între tipuri
Conversia unui atribut numeric într-unul categorial (discretizare)
• Motivation: anumite tehnici de data mining pot fi aplicate doar pt date
categoriale
• Idee principală:
• Domeniul de valori se împarte în subdomenii
• Se asignează o valoare fiecărui subdomeniu
Exemplu: considerăm atributul “vârsta” care ia valori în intervalul [0,100];
atributul numeric se poate transforma într-unul categorial după cum urmează
Subdomeniu Valoare
[0, 10) 1
[10,20) 2
[20,30) 3
[30,40) 4

[90,100] 10

Data Mining -Curs 2 (2017) 20


Conversii între tipuri
Conversia unui atribut numeric într-unul categorial (discretizare)

Obs:
• Prin discretizare se pierde o parte din informaţie
• O discretizare uniformă (ca în ex. anterior) nu e întotdeauna cea mai
adevată (de exemplu intervalul [90,100] conţine de regulă mai puţine
valori decât celelalte intervale).

Alte variante:
• Equi-log: domeniul [a,b] este divizat în K subdomenii
[a1,b1),[a2,b2),…[aK,bK] a.î. log(bi)-log(ai) este constant (în loc de bi-ai)

Data Mining -Curs 2 (2017) 21


Conversii între tipuri
Conversia unui atribut numeric într-unul categorial (discretizare)
• Equi-depth: fiecare subdomeniu are acelaşi număr de înregistrări
• Equi-label: fiecare subdomeniu conţine valori care aparţin aceleiaşi clase (în
contextul unei probleme de clasificare pentru care se cunoaşte un set de date
etichetate)

Exemplu (valorile atributului “vârsta” sunt ordonate crescător):


Vârsta: 15, 16, 16, 20, 20, 20, 25,26,27,30,30,31
Clasa: c1, c2, c2, c1, c1, c1, c2,c2,c1, c2,c2,c1

Equi-depth: [15,18), [18,22.5), [22.5,28.5), [28.5,31)

Equi-label: [15,15.5), [15.5, 18), [18,22.5), [22.5,26.5), [26.5,28.5), [28.5,30.5),


[30.5,31)

Data Mining -Curs 2 (2017) 22


Conversii între tipuri
Conversia atributelor nominale în atribute binare (binarizare)

Motivaţie: există tehnici de data mining (e.g. reţelele neuronale) care nu pot
prelucra direct atribute nominale
Procedura: un atribut nominal A care ia valori în mulţimea {v1,v2,…,vr} este
transformat in r atribute binare Av1,Av2,…,Avr a.î. îintr-o instanţă dată doar
unul dintre atribute va avea valoarea 1 iar toate celelalte vor avea valoarea 0.
Exemplu: considerăm atributul social din setul “nursery”
@attribute social {nonprob,slightly_prob,problematic}
şi valori corespunzătoare câtorva instanţe:

A_nonprob A_slightly_prob A_problematic


0 1 0
slightly_prob
nonprob 1 0 0
nonprob 1 0 0
problematic 0 0 1
Data Mining -Curs 2 (2017) 23
Curătirea datelor
Scop: eliminarea erorilor şi a Cauze ale erorilor:
inconsistenţelor din date • Defecte în dispozitivele de înregistrare a
datelor (e.g. senyori)
Tipuri de erori: • Erori umane (e.g. completare greşită)
• Valori greşite • Absenţa răspunsurilor (e.g. date
• Valori absente confidenţiale)

Valoare eronată

Pacient Vârsta Inălţime [cm] Greutate[kg]


P1 20 170 60
Valoare absentă
P2 10 1.30 30
P3 22 165 ?
P4 8 190 80

Date inconsistente
Data Mining -Curs 2 (2017) 24
Curătirea datelor
Descoperirea şi corecţia valorilor eronate:

• Utilizând cunoştinţe specifice domeniului (e.g. se pot defini domenii de valori


normale)
• Căutând inconsistenţe între valorile aceluiaşi atribut folosind diferite surse de
date (e.g. Numele unei persoane poate fi specificat în mai multe moduri,
“Ioan Popescu”, “I. Popescu”, “Ioan Popesu”; rasa unei persoane este
specificată diferit în diferite instanţe)
• Utilizând o abordare statistică (e.g. Se presupune că datele sunt generate de
o distribuţie normală iar valorile atipice sunt considerate erori)

Excepţii,
valori atipice

[Tan, Steinbach, Kumar – Introduction to Data Mining]

Data Mining -Curs 2 (2017) 25


Curătirea datelor
Cauze ale valorilor absente:
• Omitere în procesul de colectare
• Informaţii care nu sunt furnizate (e.g. Vârsta sau genul într-un chestionar)
• Informaţii nerelevante în anumite contexte (e.g. valoarea venitului în cazul
unor copii)

Tratarea valorilor absente:

• Eliminarea înregistrărilor care conţin valori absente


• Asignarea unor valori specifice (e.g. Valoarea absentă este marcată cu 0 iar
0 este considerată o valoare posibilă pt acel atribut)
• Estimarea valorii absente (o astfel de aboradre este denumită imputare)
utilizând valori corespondent din înregistrări “similare”. In exemplul anterior
s-ar putea folosi 60 (întrucât P1 şi P3 sunt similare în raport cu celelalte
atribute). Dacă sunt mai multe înregistrări “similare” atunci se poate folosi
valoarea medie a atributului

Data Mining -Curs 2 (2017) 26


Selecţia atributelor
Scop:
• Reducerea dimensiunii datelor
• Imbunătăţirea modelului de analiză a datelor (prin eliminarea atributelor
redundante)
Exemple:
• Atribute irelevante (e.g. ID)
• Atribute corelate (e.g. BMI=weight/height2)

Pacient Vârsta Inalţime Greutate BMI ID Clasa


[m] [kg]
P1 20 1.70 60 20.8 111 normal
P2 15 1.30 30 17.8 222 subponderal
P3 22 1.65 100 36.7 333 obez
P4 48 1.90 80 22.2 444 normal

Obs: in practică relaţia dintre atribute este ascunsă astfel că nu este


evident criteriul de selecţie
Data Mining -Curs 2 (2017) 27
Selecţia atributelor
Scop:
• Reducerea dimensiunii datelor
• Imbunătăţirea modelului de analiză a datelor (prin eliminarea atributelor
redundante)

Componente ale unei metode de selecţie a atributelor:


• Criteriu de selecţie
• Metoda de căutare (în spaţiul de submulţimi ale atributelor)
Obs:
• Tehnica de selecţie a atributelor (in particular criteriul de selecţie) depinde
de caracteristicile tipului de analiză a datelor

Variante:
• Metode nesupervizate de selecţie (e.g. utilizate în contextul grupării datelor)
• Metode supervizate de selecţie (e.g. utilizate în contextul clasificării datelor)

Data Mining -Curs 2 (2017) 28


Selecţia atributelor
Căutarea în spaţiul atributelor:
• Considerăm o matrice de date cu n atribute
• Spaţiul de căutare (toate submulţimile posibile de atribute) are dimensiunea 2n
Abordări posibile:
• Căutare exhaustivă: se analizează impactul fiecărei submulţimi de atribute
asupra rezultatului; e fezabilă doar dacă n este relativ mic
• Selecţie înainte:
• Se porneşte cu un set vid de atribute
• Se adaugă secvenţial câte un nou atribut (se analizează impactul
fiecăruia dintre atributele rămase şi se selectează cel mai bun) – dacă
adăugarea nici unui atribut nu îmbunătăţeşte calitatea rezultatului
procesul se opreşte
• Selecţie înapoi:
• Se porneşte cu întreg setul de atribute
• se elimină secvenţial câte unul dintre atribute (cel prin a cărui eliminare
se obţine cea mai mare îmbunătăţire a performanţei)
Data Mining -Curs 2 (2017) 29
Selecţie / ierarhizare / ponderare
 In anumite situaţii este mai util doar să se ierarhizeze atributele în ordinea
descrescătoare a relevanţei şi să fie lăsat la latitudinea utilizatorului decizia

 Criteriul de ierarhizare este similar celui de selecţie (are ca scop să exprime


relevanţa atributului în contextul problemei de analiză tratate)

 Ierarhizarea poate fi realizată asignând ponderi atributelor (o valoarea mai


mare a ponderii sugereză că atributul este mai important)
 Estimarea ponderilor conduce de regulă la necesitatea de a rezolva o
problemă de optimizare (e.g determinarea ponderilor care minimizează
pierderea de informaţie sau maximizează acurateţea)
 Ponderile sunt importante în cazul în care tehnica de analiză se
bazează pe calculul unor măsuri de similaritate (e.g. Clasificatori de tip
nearest neighbor, clustering) n
Exemplu: distanţa euclidiană ponderată d w ( x, y ) = ∑ wi ( xi − yi ) 2
i =1

Data Mining -Curs 2 (2017) 30


Selecţia atributelor
Criteriu de selecţie - cum se poate evalua un subset de atribute (sau valorile
corespunzătoare ale ponderilor)

 Abordare de tip ‘filtru’


 Selecţia se bazează pe relaţia dintre:
 atribute (context nesupervizat)
 atribute şi etichete ale claselor (context supervizat)

 Abordare de tip ‘înveliş’ (wrapper)


 Calitatea subsetului de atribute este estimată pe baza performanţei
clasificatorului sau a modelului de grupare construit pe baza
subsetului de atribute

Data Mining -Curs 2 (2017) 31


Selecţia atributelor
Abordare de tip filtru

Criterii bazate pe date


• Câştig informaţional
• Compacitate (within-class) Initial dataset
• Separare (between-classes)
• Corelare intre etichete de clase şi
atribute
• Informaţie mutuală Search Reduced
Strategy dataset
Avantaj: cost computaţional relativ mic

Dezavantaj: ignoră impactul setului redus Subset Quality Model


Learning
de date asupra algoritmului de
extragere a modelului din date
Quality
Evaluation Reduced
Model

Data Mining -Curs 2 (2017) 32


Selecţia atributelor
Exemplu: set artificial de date: 10 atribute, 2 clase

Atribute 1: identic cu eticheta clasei


Atribute 2-6: valori aleatoare cu rep. normală N(m1,s1) (class 1), N(m2,s2)
(class 2)
Atribute 7,8: valori constante pentru toate instanţele
Atribute 9,10: valori aleatoare uniform repartizate (U(a,b)) pt toate instanţele

F2 vs. F1

F6 vs. F5

F10 vs. F9
Data Mining -Curs 2 (2017) 33
Selecţia atributelor
Criteriu nesupervizat de selecţie (se bazează doar pe
date – fără a se cunoaşte etichetele claselor)
Notaţii:
M={x1,x2,…,xN} set de date cu N instanţe, fiecare
conţinând n atribute
A= set de atribute
Idee:

 Se calculează similarităţile între perechile de date


din set
 Se calculează entropia asociată matricii de
similaritate (este o măsură a informaţiei conţinute
în setul de date)
 Se analizează efectul fiecărui atribut asupra valorii
entropiei şi se elimină atributele care au cel mai
mic impact asupra entropiei
Data Mining -Curs 2 (2017) 34
Selecţia atributelor
Criteriu nesupervizat de selecţie
Măsuri de similaritate (calculate folosind un set de atribute A)

Atribute numerice
n
Sij ( A) = exp(−αd ( xi , x j )), d ( xi , x j ) = ∑ (x
k =1
ik − x jk ) 2

α = ct. (e.g. 0.5)


Atribute nominale/ordinale/binare
1 n
Sij ( A) = ∑ I ( xik ,x jk ), I (a, b) = 1 daca a = b;
n k =1
I (a, b) = 0 daca a ≠ b

Data Mining -Curs 2 (2017) 35


Selecţia atributelor
Criteriu nesupervizat de selecţie
N −1 N
Entropia E ( S , A) = − ∑ ∑ ( Sij ( A) ln( Sij ( A)) + (1 − Sij ( A)) ln(1 − Sij ( A)))
i =1 j =i +1

Obs: dpdv intuitiv, entropia măsoară impredictibilitatea conţinutului


informaţional sau gradul de dezordine
Algoritm

Pas 1. se porneşte cu întreg setul de atribute A


Pas 2. pt fiecare atribut ai se calculează E(S,A-{ai}) şi se ierarhizează atributele
crescător după valoarea E(S,A)- E(S,A-{ai})
Pas 3. se elimină primul atribut din lista ordonată (atributul a cărui eliminare a
condus la cea mai mică pierdere în entropie) şi se repetă Pas 2 – Pas 3
până când rămâne un singur atribut în A (sau până când reducerea în
entropie la eliminarea unui atribut depăşeşte un prag)

Data Mining -Curs 2 (2017) 36


Selecţia atributelor
Criteriu supervizat de selecţie – atribute cu valori discrete
Gini index: măsoară puterea de discriminare a unui atribut
Notaţii:
A1, A2, …, An - atribute, C1, C2, …, CK – clase
vi1,vi2…., vir – valori posibile ale atributului i (se poate utiliza doar pt atribute cu
valori discrete; ri numărul de valori ale atributului Ai)

index Gini pt atributul Ai


ri K
1
G ( Ai ) =
N
∑ n G (v
j =1
ij ij ), G (vij ) = 1 − ∑ pijk
2

k =1

nij = numarul de instante pt care Ai are valoarea vij


numar de instante in Ck cu Ai = vij
pijk =
numar de instante cu Ai = vij
Interpretare: valori mici ale lui G(Ai) sugerează o putere mare de discriminare a
lui Ai
Data Mining -Curs 2 (2017) 37
Selecţia atributelor
Criteriu supervizat de selecţie – atribute cu valori discrete
Scor Fisher: măsoară puterea de discriminare a unui atribut
Notaţii: A1, A2, …, An - atribute, C1, C2, …, CK – clase
vi1,vi2…., vir – valori posibile ale atributului i (se poate utiliza doar pt atribute cu
valori discrete; ri numărul de valori ale atributului Ai)
K

∑ k ik i
n ( µ − µ ) 2

F ( Ai ) = k =1
K

∑n ρ
k =1
k
2
ik

nk = numar de instante in clasa Ck


µik = media valorilor lui Ai corespunzatoare
instantelor din Ck
ρ ik2 = varianta valorilor
µi = media valorilor atributului Ai
Interpretare: valori mari ale lui F(Ai) sugerează putere mare de discriminare pt
Ai
Data Mining -Curs 2 (2017) 38
Selecţia atributelor
Selecţie supervizată/criteriu de ponderare– atribute numerice
{xic ; i = 1, N }, xic ∈ R n , c ∈ { 1,...,k} eticheta clasa Exemplu:
Set artificial de date: 10
w = (w1,...,wn ), vector pondere
atribute, 2 clase
d w - masura disimilaritate
 Compacitate (within-class) Atribut 1: identic cu eticheta
1 k nr
1 nc clasei
C1 ( w) =
N
∑∑ d w
c
(
i x , mc ), mc =
nc
∑x c
i
c =1 i =1 i =1 Atribute 2-6: valori aleatoare
din N(m1,s1) (clasa 1),
N(m2,s2) (clasa 2)
F2 vs. F1
Atributes 7,8: valori
constante
F6 vs. F5
Atribute 9,10: valori
aleatoare cu repartiţia
uniformă (U(a,b))
F10 vs. F9
Data Mining -Curs 2 (2017) 39
Selecţia atributelor
Selecţie supervizată/criteriu de ponderare– atribute numerice
{xic ; i = 1, N }, xic ∈ R n , c ∈ { 1,...,k} eticheta clasa Exemplu:
Set artificial de date: 10
w = (w1,...,wn ), vector pondere
atribute, 2 clase
d w - masura disimilaritate
 Compacitate (within-class) Atribut 1: identic cu eticheta
1 k nc
1 nc clasei
C1 ( w) =
N
∑∑ d w
c
(
i x , mc ), mc =
nc
∑x c
i
c =1 i =1 i =1 Atribute 2-6: valori aleatoare
(de minimizat) din N(m1,s1) (clasa 1),
N(m2,s2) (clasa 2)
 C1(1,1,1,1,1,1,1,1,1,1,1)=0.88
Atributes 7,8: valori
 C1(1,1,1,1,1,1,1,1,1,0,0)=0.78
constante
 C1(1,1,1,1,1,1,1,0,0,0,0)=0.78
 C1(1,1,1,0,0,0,0,0,0,0,0)=0.49 Atribute 9,10: valori
 C1(1,1,0,0,0,0,0,0,0,0,0)=0.34 aleatoare cu repartiţia
 C1(1,0,0,0,0,0,0,0,0,0,0)=0 uniformă (U(a,b))

Data Mining -Curs 2 (2017) 40


Selecţia atributelor
Selecţie supervizată/criteriu de ponderare– atribute numerice
{xic ; i = 1, N }, xic ∈ R n , c ∈ { 1,...,k} eticheta clasa Exemplu:
Set artificial de date: 10
w = (w1,...,wn ), vector pondere
atribute, 2 clase
d w - masura disimilaritate
 Separare (between-class) Atribut 1: identic cu eticheta
clasei
k k
1 1
C2 ( w) =
N

c =1
n d
c w ( mc , m ), m =
N
∑n m
c =1
c c
Atribute 2-6: valori aleatoare
din N(m1,s1) (clasa 1),
N(m2,s2) (clasa 2)
(de maximizat)
 C2(1,1,1,1,1,1,1,1,1,1,1)=0.51
Atributes 7,8: valori
 C2(1,1,1,1,1,1,1,1,1,0,0)=0.50 constante
 C2(1,1,1,1,1,1,1,0,0,0,0)=0.50
 C2(1,1,1,0,0,0,0,0,0,0,0)=0.49 Atribute 9,10: valori
 C2(1,1,0,0,0,0,0,0,0,0,0)=0.49 aleatoare cu repartiţia
 C2(1,0,0,0,0,0,0,0,0,0,0)=0.49 uniformă (U(a,b))
 C2(1,0,0,0,0,0,0,0,0,1,1)=0.50
Data Mining -Curs 2 (2017) 41
Selecţia atributelor
Abordare de tip “înveliş” Initial dataset

• Acurateţe = număr de date corect


clasificate/ număr total de date
Search Reduced
• Obs: evaluarea fiecărei Strategy Dataset
submulţimi necesită antrenarea
întregului model
Subset Quality Reduced
Avantaj: se foloseşte de impactul Model
submulţimii de atribute asupra
performanţei modelului Model
Learning
Dezavantaj: evaluarea este
costisitoare
Quality Wrapper based
Evaluation selector

Data Mining -Curs 2 (2017) 42


Selecţia instanţelor
Selecţia poate fi aplicată nu doar Features
atributelor ci şi instanţelor.

instances
Exemplu (clasificare în 2 clase):
ar fi suficient să se folosească doar
datele din vecinătatea frontierei celor
Selectie
două clase
instante

Abordări:
• Selecţie aleatoare (cu sau fără
revenire)
• Selecţie stratificată Selectie
atribute

simultan

Data Mining -Curs 2 (2017) 43


Transformarea atributelor
Scop:
• Îmbunătăţirea calităţii modelului extras din date prin eliminarea influenţei
induse de scale diferite pt diferite atribute sau de corelaţii între atribute

Variante:
• Scalare
• Standardizare
• Normalizare
• Proiecţie – analiza componentelor principale (Principal Component Analysis)

Obs: aceste transformări pot fi aplicate doar atributelor numerice

Data Mining -Curs 2 (2017) 44


Normalizare
Scalare : Scalare liniara :
• Scalare liniară
xij − min j
• Este sensibilă la valorile atipice zij = , i = 1, n j = 1, d
max j − min j
Standardizare: Standardizare :
• Se scade media şi se împarte la xij − m( X j )
abaterea standard zi =
j
j
, i = 1, n j = 1, d
s( X )
• Mai robustă decât scalarea liniară
1 n j 1 n
m( X ) = ∑ xi , s ( X ) =
j j
∑ ( xi
j
− m ( X j 2
))
Normalizare euclidiană: n i =1 n i =1
• Se împarte fiecare componentă la Normalizare :
normă (e.g. Norma euclidiană)
d
Zi = X i / X , X = ∑ i ) , i = 1, n
( x
j =1
j 2

Data Mining -Curs 2 (2017) 45


Analiza componentelor principale
Principal Component Analysis (PCA):
• Se proiectează datele pe direcţia de
variabilitate maximă

Orthogonal projection [Zaki, 2014]

PCA visualization:
http://setosa.io/ev/principal-component-analysis/

Iris dataset – 3D bases [Zaki, 2014]


Data Mining -Curs 2 (2017) 46
Analiza componentelor principale
Principal Component Analysis (PCA)

Se proiectează datele pe direcţiile care captează cea mai


mare variabilitate din date

Intrare: set de dat cu N instanţe având n atribute


numerice (matrice de date D cu N linii şi n coloane)
Ieşire: matrice de date cu N instanţe având m<n atribute
(a.î. este conservată cât mai mult din variabilitatea
datelor)

Obs:
• PCA concentrează informaţia privind diferenţele dintre instanţe într-un număr
mic de atribute
• PCA se utilizează pt a proiecta un set de date n-dimensional într-un spaţiu m-
dimensional astfel încât atributele în noul spaţiu sunt necorelate şi este
conservată cât mai mult din variabilitatea datelor
Data Mining -Curs 2 (2017) 47
Analiza componentelor principale
Principal Component Analysis (PCA)

Etape principale:

• Se calculează matricea de covarianţă C (matrice nxn cu elementele:


C(i,j)=cov(D(i),D(j)), unde D(i) este coloana i a matricii de date D);

• Se calculează valorile proprii şi vectorii proprii ai matricii C vectorii proprii


descrescătoare după valoarea proprie corespunzătoare

• Se selectează vectorii proprii care corespund celor mai mari m valori proprii

• Se proiectează setul de date D pe hiper-spaţiul definit de cei m vectori


proprii

Data Mining -Curs 2 (2017) 48


Analiza componentelor principale
Principal Component Analysis (PCA) – elemente de statistică si algebra liniară

Matrice de covarianta C = (cij )i =1,n , j =1,n


1 N 1 N
cij = ∑ ( xki − µi )( xkj − µ j ) = ∑ xki xkj − µi µ j , i = 1, n, j = 1, n
N k =1 N k =1
µi = media valorilor atributului i, cii = varianta atributului i

C are n vectori proprii v1 , v2 , ..., v n corespunzatori


celor n valori proprii λ1 , λ2 , ..., λn
Cvi = λi vi (C transforma vectorii proprii doar prin scalare)
Obs : C este simetrica si pozitiv - semidefinita
(x T Cx ≥ 0 pt orice vector x) ⇒ toate valorile proprii sunt pozitive
Data Mining -Curs 2 (2017) 49
Analiza componentelor principale
Principal Component Analysis (PCA) – elemente de statistică si algebra liniară

Proiecţia pe spaţiul definit de un vector (transformare în date uni-dimensionale)


 dacă v este direcţia corespunzătoare unui vector propriu atunci proiecţia lui
D pe v est Dv (produsul dintre matricea cu N linii şi n coloane şi a
vectorului v cu n elemente)
 Covarianţa noului set de date (e de fapt varianţa întrucât datele sunt uni-
dimensionale)

( Dv)T ( Dv)
− ( µv) = v Cv = v λv = λ v = λ
2 T T 2

N
obs : vectorii proprii sunt ortonormati : viT v j = 0, v = 1
 Varianţa proiecţiei uni-dimensionale pe un vector propriu este egală cu
valoarea proprie corespunzătoare, deci pt a capta cât mai multă variabilitate
trebuie aleasă cea mai mare valoare proprie

Data Mining -Curs 2 (2017) 50


Analiza componentelor principale
Principal Component Analysis (PCA) – elemente de statistică si algebra liniară

Proiecţia setului de date pe hiper-spaţiul definit de mai mulţi vectori proprii


 Rezultat util din algebra liniară:

C = PΛP T (C poate fi descompusa folosind matricea de vectori propri)


P are vectorii proprii pe coloane
P este matrice ortogonală : PP T = I n×n
Λ este o matrice diagonala care contine valorile proprii
 Vectorii proprii (fiind ortogonali) definesc un sistem de axe de coordonate
Proiecţia setului D în noul sistem de coordonate este D’=DP
 Intrebare: care este matricea de covarianţă a noului set D’ ?

Data Mining -Curs 2 (2017) 51


Analiza componentelor principale
Principal Component Analysis (PCA) – elemente de statistică si algebra liniară

Proiecţia setului de date pe hiper-spaţiul definit de mai mulţi vectori proprii


 Intrebare: care este matricea de covarianţă a noului set D’

D ' = DP, X k' = PT X k


N
1
C' =
N
∑ (
k =1
P T
X k − P T
M )( P T
X k − P T
M ) T
=
N
1
=
N
∑P
k =1
T
( X k − M )( X k − M )T P =

= PT CP = PT PΛP T P = Λ = diag (λ1 , λ2 ,..., λn )

Deci din D’ sunt necorelate (matricea de covarianţă este diagonală) şi varianţa


corespunzătoare atributului i este a i-a valoare proprie

Data Mining -Curs 2 (2017) 52


Analiza componentelor principale
Principal Component Analysis (PCA) – elemente de statistică si algebra liniară

Proiecţia setului de date pe hiper-spaţiul definit de mai mulţi vectori proprii


 Intrebare: ce se întâmplă dacă se păstrează doar m dintre componentele
unui vector transformat?
 Raspuns: se conservă doar o fracţiune din variabilitatea datelor
 Ipoteza: valorile proprii sunt sortate descrescător
 Procedura: se calculează raportul varianţelor (R) şi se alege m a.î. R>prag
prestabilit (e.g. R>0.95)
 Rezultat: noul set de date (cu cele m atribute obţinute prin proiecţia pe hiper-
spaţiul definit de vectorii proprii corespunzători celor mai mari m valori proprii)
captează cea mai mare parte din variabilitate (e.g. 95%)
m

∑λ i
Proportia variantelor : R = i =1
n

∑λ
i =1
i

Data Mining -Curs 2 (2017) 53


Analiza componentelor principale
Exemplu: setul de date iris
4 atribute numerice:
A1=lungime sepale, A2=lăţime sepale, A3=lungime petale, A4=lăţime petale,
3 clase
150 instanţe

Matrice de covarianţă: Vectori proprii (coloane)


1 -0.11 0.87 0.82 0.52 -0.37 0.72 0.26
-0.11 1 -0.42 -0.36 -0.26 -0.93 -0.24 -0.12
0.87 -0.42 1 0.96 0.58 -0.02 -0.15 -0.80
0.82 -0.36 0.96 1 0.57 -0.06 -0.63 -0.53

Valori proprii: 2.91 0.92 0.14 0.02


R= (2.91+0.92)/(2.91+0.92+0.14+0.02)=0.96 (prin proiecţia datelor pe spaţiul
definit de primii 2 vectori proprii se conservă 96% din variabilitatea datelor)

Data Mining -Curs 2 (2017) 54


Analiza componentelor principale
Exemplu: setul de date iris
4 atribute numerice:
A1=lungime sepale, A2=lăţime sepale, A3=lungime petale, A4=lăţime petale,
3 clase
150 instanţe

Matrice de covarianţă: Vectori proprii (coloane)


1 -0.11 0.87 0.82 0.52 -0.37 0.72 0.26
-0.11 1 -0.42 -0.36 -0.26 -0.93 -0.24 -0.12
0.87 -0.42 1 0.96 0.58 -0.02 -0.15 -0.80
0.82 -0.36 0.96 1 0.57 -0.06 -0.63 -0.53

Atribute noi: 0.52*A1-0.26*A2+0.58*A3+0.57*A4


-0.37*A1-0.93*A2-0.02*A3-0.06*A4

Data Mining -Curs 2 (2017) 55


Curs următor
Modele de clasificare:

 Concepte de bază

 Clasificatori
 Vot simplu (ZeroR)
 Reguli cu un atribut(OneR)
 Clasificatori bazaţi pe instanţe (kNN)

 Măsuri de evaluare a calităţii clasificării

Data Mining -Curs 2 (2017) 56


Curs 3-4:

Clasificarea datelor (I)

Data Mining - Curs 3-4 (2017) 1


Structura
 Motivare

 Concepte de bază în clasificare

 Măsuri de performanţă

 Clasificatori
 Bazați pe clasa majoritară (ZeroR)
 Reguli simple de clasificare (OneR)
 Construirea arborilor de decizie
 Extragerea regulilor de clasificare
 Clasificatori bazați pe instanțe (kNN)

Data Mining - Curs 3-4 (2017) 2


Motivare
Reminder: procesul de descoperire a cunoștințelor

Data mining:
 Clasificare
 Grupare
 Regresie
 Asociere
 Detecție anomalii

Data Mining - Curs 3-4 (2017) 3


Motivare
Reminder: exemple de probleme de clasificare

 Clasificarea celulelor tumorale in benigne sau maligne (diagnoză


medicală)

 Clasificarea tranzacţiilor efectuate cu cărți de credit ca fiind legale


sau frauduloase

 Clasificarea știrilor pe domenii: finanțe, meteo, divertisment, sport,


etc (clasificare documente)

 Clasificarea e-mail-urilor ca spam sau utile (spam filtering)

Data Mining - Curs 3-4 (2017) 4


Motivare
• Diagnoza medicală = prezicerea prezenței/absenței unei boli pe baza
informațiilor disponibile într-o inregistrare medicală

Exemplu de set de date (breast-cancer-wisconsin - arff format –Lab 1)


@relation wisconsin-breast-cancer
@attribute Clump_Thickness integer [1,10]
@attribute Cell_Size_Uniformity integer [1,10]
@attribute Cell_Shape_Uniformity integer [1,10]
@attribute Marginal_Adhesion integer [1,10]
@attribute Single_Epi_Cell_Size integer [1,10]
@attribute Bare_Nuclei integer [1,10]
@attribute Bland_Chromatin integer [1,10]
@attribute Normal_Nucleoli integer [1,10]
@attribute Mitoses integer [1,10]
@attribute Class { benign, malignant}
@data
5,1,1,1,2,1,3,1,1,benign
5,4,4,5,7,10,3,2,1,benign
3,1,1,1,2,2,3,1,1,benign
8,10,10,8,7,10,9,7,1,malignant
1,1,1,1,2,10,3,1,1,benign

Data Mining - Curs 3-4 (2017) 5


Concepte de bază
Ce se cunoaște?
 O colecție de înregistrări (instanțe) pentru care se cunoaște clasa
căreia îi aparțin (set de date etichetate)
 Fiecare înregistrare conține un set de atribute, iar unul dintre aceste
atribute este eticheta clasei

Ce se caută?
 un model care „captează” relația dintre atributul asociat clasei și
celelalte atribute (modelul este construit folosind un set de antrenare
printr-un proces numit antrenare/învățare supervizată)

Care este scopul final?


 Să se poată utiliza modelul construit prin antrenare pentru a
determina clasa căreia îi aparține o nouă dată

Obs:
 Pentru a fi util un model trebuie să aibă o bună acuratețe; acuratețea se
măsoară analizând comportamentul modelului pentru date care nu au fost
folosite în etapa de antrenare (set de test)
Data Mining - Curs 3-4 (2017) 6
Concepte de bază
Invățare/ inducție/ inferență = construirea unui model pornind de la date (si
eventual de la cunoștințe apriori privind domeniul)

Intre date, model, cunostințe si răspunsuri există diferite legături:


inducție vs deducţie vs transducţie

Cunoaștere apriori

Model

Inducție Deducție

Răspuns
Date
(predicție)
Transducție

Data Mining - Curs 3-4 (2017) 7


Concepte de bază
Invățare/ inducție/ inferență = construirea unui model pornind de la date (si
eventual de la cunoștințe apriori privind domeniul)

Intre date, model, cunostințe si răspunsuri există diferite legături:


inducție vs deductie vs transductie

Cunoaștere apriori

Model
Inducție (clasificator) Deducție
(construirea clasificatorului (aplicarea clasificatorului
prin învățare supervizată) unor date noi)

Data Predicţie
Transducție
(traseu scurt – (clasa asociată unei
(exemple de date
necesită expertiză date neincluse în setul
etichetate)
umană) de antrenare)
Data Mining - Curs 3-4 (2017) 8
Concepte de bază
Informaţie disponibilă: Scop:
• Set de date etichetate:  Construirea unui clasificator C
– D={(x1,c1),(x2,c2),…, (xN,cN)} folosind setul de date D a.î.
– fiecare xi are n atribute  C poate prezice cărei clase îi
– Eticheta clasei ci aparţine mulţimii aparţine o nouă dată x
{1,2,…,K}

Learning Dataset D Testing Usage

Training set R Testing set T Real data

Validation set V
Classification Classification
Model Model

Classification Cross- Classifi-


Model validation cation

Answer
Data Mining - Curs 3-4 (2017) 9
Modele de clasificare
Un model de clasificare este o “mapare” între valori ale atributelor şi etichete
ale claselor

Exemple de modele de clasificare:


 Arbori de decizie
 Reguli de clasificare
 Modele bazate pe prototipuri
 Modele probabiliste
 Reţele neuronale etc.
Un model de clasificare trebuie să fie:
 Acurat:
 Identifică clasa corectă
 Compact / comprehensibil
 Uşor de interpretat de către utilizator (să nu fie de tip “cutie neagră”)
 Eficient în
 Etapa de antrenare
 Etapa de clasificare
Data Mining - Curs 3-4 (2017) 10
Modele de clasificare
Exemplu

@relation wisconsin-breast-cancer
@attribute Clump_Thickness integer [1,10]
@attribute Cell_Size_Uniformity integer [1,10]
@attribute Cell_Shape_Uniformity integer [1,10]
@attribute Marginal_Adhesion integer [1,10]
@attribute Single_Epi_Cell_Size integer [1,10]
@attribute Bare_Nuclei integer [1,10]
@attribute Bland_Chromatin integer [1,10] Regulă simplă de clasificare:
@attribute Normal_Nucleoli integer [1,10] IF (Cell_Size_Uniformity< 3.5)
@attribute Mitoses integer [1,10]
@attribute Class { benign, malignant} THEN benign
@data ELSE malignant
5,1,1,1,2,1,3,1,1,benign
5,4,4,5,7,10,3,2,1,benign
3,1,1,1,2,2,3,1,1,benign
8,10,10,8,7,10,9,7,1,malignant
1,1,1,1,2,10,3,1,1,benign
….

Data Mining - Curs 3-4 (2017) 11


Modele de clasificare
Exemplu

@relation wisconsin-breast-cancer
@attribute Clump_Thickness integer [1,10]
@attribute Cell_Size_Uniformity integer [1,10]
@attribute Cell_Shape_Uniformity integer [1,10]
@attribute Marginal_Adhesion integer [1,10]
@attribute Single_Epi_Cell_Size integer [1,10]
@attribute Bare_Nuclei integer [1,10]
@attribute Bland_Chromatin integer [1,10] Regulă simplă de clasificare:
@attribute Normal_Nucleoli integer [1,10] IF (Cell_Size_Uniformity< 3.5)
@attribute Mitoses integer [1,10]
@attribute Class { benign, malignant} THEN benign
@data ELSE malignant
5,1,1,1,2,1,3,1,1,benign
5,4,4,5,7,10,3,2,1,benign
3,1,1,1,2,2,3,1,1,benign Întrebare: Cât de bună este
8,10,10,8,7,10,9,7,1,malignant această regulă?
1,1,1,1,2,10,3,1,1,benign
…. In 92.7% din cazuri regula indică clasa corectă
Cum a fost calculată această valoare?
Cum ar trebui interpretată?
Data Mining - Curs 3-4 (2017) 12
Modele de clasificare
Exemplu: un model mai complex (arbore de decizie)

Performanţa: în 94.56% din cazuri clasificatorul indică clasa corectă


Ce se poate spune despre lizibilitatea clasificatorului?

Data Mining - Curs 3-4 (2017) 13


Măsuri de performanţă
Context: considerăm o problemă de clasificare în 2 clase
 Clasa 1 – pozitivă (ex: malignant)
 Clasa 2 – negativă (ex: benign)
Cel mai simplu mod de a măsura performanţa este de a analiza în câte cazuri
clasificatorul indică răspunsul corect – această informaţie poate fi furnizată prin
intermediul matricii de confuzie

Matrice de confuzie:
C1 C2  răspunsul clasificatorului
C1 TP FN
C2 FP TN

Clasa adevărată
TP = True Positive = nr de cazuri din C1 care sunt clasificate (corect) în C1
TN = True Negative = nr de cazuri din C2 care sunt clasificate (corect) în C2
FP = False Positive = nr de cazuri din C2 dar care sunt clasificate (incorect) în C1
FN = False Negative = nr de cazuri din C1 dar care sunt clasificate (incorect) în C2
Data Mining - Curs 3-4 (2017) 14
Măsuri de performanţă
Cazul a K clase:

 Se poate construi câte o matrice de confuzie 2x2 pt fiecare dintre clase (clasa
curentă este considerată clasa pozitivă şi toate celelalte clase sunt agregate în
clasa negativă)
 Se extinde matricea la cazul a K clase: K linii şi K coloane

Confusion matrix:
C1 C2 ... Cj … CK  răspunsul clasificatorului
C1 T1 F12 … F1j … F1K
C2 F21 T2 … F2j … F2K Fij = nr de cazuri care ar trebui clasificate
… … … … în Ci dar sunt clasificate în Cj
Ci Fi1 Fi2 Fij FiK
… … … …
CK FK1 FK2 F1Kj TK

Clasa adevărată Data Mining - Curs 3-4 (2017) 15


Măsuri de performanţă
TP = True Positive = nr de cazuri din C1 care sunt clasificate (corect) în C1
TN = True Negative = nr de cazuri din C2 care sunt clasificate (corect) în C2
FP = False Positive = nr de cazuri din C2 dar care sunt clasificate (incorect) în C1
FN = False Negative = nr de cazuri din C1 dar care sunt clasificate (incorect) în C2

Acurateţe = (TP+TN)/(TP+TN+FP+FN) = nr date clasificate corect/ nr total de date

Sensitivitate = TP/(TP+FN) (TP rate sau recall = rata de regăsire)

Specificitate = TN/ (TN+FP) (TN rate), 1-specificitate=FP/(TN+FP) = FP rate

Precizie = TP/(TP+FP) (nr cazuri real pozitive/ nr cazuri clasificate ca fiind pozitive)

Obs:
 Toate valorile sunt în [0,1]; valori mai mari sugerează performanţă mai bună
 Sensitivitatea şi specificitatea sunt utilizare frecvent în analiza datelor medicale
 Precizia şi rata de regăsire se folosesc în domeniul regăsirii informaţiei
(information retrieval) Data Mining - Curs 3-4 (2017) 16
Măsuri de performanţă
TP = True Positive = nr de cazuri din C1 care sunt clasificate (corect) în C1
TN = True Negative = nr de cazuri din C2 care sunt clasificate (corect) în C2
FP = False Positive = nr de cazuri din C2 dar care sunt clasificate (incorect) în C1
FN = False Negative = nr de cazuri din C1 dar care sunt clasificate (incorect) în C2

In contextul regăsirii informaţiei:

Precision = TP/(TP+FP) = card(relevant şi regăsit)/ card(regăsit)


Recall = TP/(TP+FN) = card(relevant and regăsit)/ card(relevant)

O variantă agregată frecvent utilizată este media armonică:

F-measure=2*precision*recall/(precision+recall)

Data Mining - Curs 3-4 (2017) 17


Măsuri de performanţă
TP = True Positive = nr de cazuri din C1 care sunt clasificate (corect) în C1
TN = True Negative = nr de cazuri din C2 care sunt clasificate (corect) în C2
FP = False Positive = nr de cazuri din C2 dar care sunt clasificate (incorect) în C1
FN = False Negative = nr de cazuri din C1 dar care sunt clasificate (incorect) în C2

Acurateţe ponderată de costuri (Cost sensitive accuracy)


 In anumite cazuri (ex: diagnoză medicală) clasificarea incorectă într-o clasă
poate avea un impact mai mare decât clasificarea incorectă în altă clasă (e.g.
nedetectarea unui caz de cancer poate fi mai periculoasă decât nedetectarea
unui caz normal) - FN ar trebui să fie cât mai mic
 In alte cazuri (detecţie atacuri informatice) ar trebui ca FP să fie cât mai mic
In astfel de situaţii se pot utiliza ponderi (interpretate ca şi costuri ale erorii în
clasificare) diferite pentru cele două tipuri de erori
 CostAccuracy=(cost1*n1*sensitivity+cost2*n2*specificity)/(cost1*n1+cost2*n2)
 costi = costul clasificării incorecte a datelor din clasa Ci
 ni = numărul de date din Ci
Data Mining - Curs 3-4 (2017) 18
Cel mai simplu clasificator
Exemplu:

 Considerăm setul de date “sick” de la UCI Machine Learning

 Conţine 3772 înregistrări (aferente unor pacienţi), dintre care:


 231 sunt bolnavi (clasa C1 – pozitivă)
 3541 sunt sănătoşi (clasa C2 – negativă)

 Ne interesează să construim un clasificator a cărui acurateţe pt acest set


de date să fie cel puţin egală cu 0.9 (90%)

 Care este cel mai simplu clasificator care satisface această cerinţă?

Data Mining - Curs 3-4 (2017) 19


Cel mai simplu clasificator
Exemplu:

 Considerăm setul de date “sick” de la UCI Machine Learning

 Conţine 3772 înregistrări (aferente unor pacienţi), dintre care:


 231 sunt bolnavi (clasa C1 – pozitivă)
 3541 sunt sănătoşi (clasa C2 – negativă)

 Ne interesează să construim un clasificator a cărui acurateţe pt acest set


de date să fie cel puţin egală cu 0.9 (90%)

 Care este cel mai simplu clasificator care satisface această cerinţă?
 Considerând regula: “indiferent de valorile atributelor clasa este C2
(negativă)” obţinem acurateţea=3541/3772=0.94>0.9
 Este un astfel de clasificator adecvat? Are vreo utilitate?
Data Mining - Curs 3-4 (2017) 20
Cel mai simplu clasificator
 Este un astfel de clasificator adecvat? Are vreo utilitate?

 Acest clasificator, denumit ZeroR (întrucât se bazează pe o regulă de


clasificare care nu conţine nici un atribut în membrul stâng) utilizează
doar distribuţia datelor în cele două clase şi va returna întotdeauna
eticheta celei mai populare clase (se bazează pe un mecanism simplu
de votare)

 Nu este adecvat întrucât produce răspuns incorect pt toate datele din


clasa cu mai puţine elemente

 Totuşi ... poate fi utilizat pentru a determina o margine inferioară pt


acurateţea unui clasificator: un clasificator cu acurateţe mai mică decât
ZeroR ar trebui evitat

Data Mining - Curs 3-4 (2017) 21


...din nou la evaluarea performanţei
 Utilizarea întregului set de date disponibile pentru construirea
clasificatorului nu este o abordare prea înţeleaptă întrucât poate
conduce la supra-antrenare:
 Clasificatorul se comportă bine pentru datele din setul de
antrenare...
 ... dar are performanţe slabe pentru alte date
 O abordare mai bună este să se dividă setul de date în:
 Subset de antrenare (utilizat pt construirea clasificatorului)
 Subset de testare (utilizat pt estimarea performanţei)

 Există diferite strategii de divizare a setului de date în subseturi


(antrenare şi testare)

Obs: Pe lângă subsetul de testare se poate folosi şi un subset de validare


(utilizat pentru ajustarea parametrilor clasificatorului)
Data Mining - Curs 3-4 (2017) 22
...din nou la evaluarea performanţei
Strategii de divizare:

 Holdout
 Se reţin 2/3 din set pt antrenare şi 1/3 pt testare

 Holdout repetat
 Se repetă partiţionarea (performanţa este calculată ca medie a
valorilor determinate la fiecare repetare a divizării)

 Validare încrucişată
 Se divide setul aleator în k subseturi disjuncte
 k-fold: se folosesc k-1 subseturi pt antrenare, iar al k-lea se
foloseşte pt testare (evaluarea performanţei)
 Leave-one-out: k=n

 Eşantionare repetată (util în cazul seturilor nebalansate)


 oversampling vs undersampling
 Bootstrap
 Selecţie cu revenire
Data Mining - Curs 3-4 (2017) 23
Dincolo de ZeroR
Set de date: sick.arff, 29 atribute, 3772 instanţe (231 în clasa C1, 3541 în
clasa C2), 2 clase

ZeroR (clasa e întotdeauna C2): acurateţe=0.94

OneR: permite construirea de reguli de clasificare care conţin un singur


atribut în membrul stâng
Exemple de reguli (obţinute folosind Weka OneR):
If T3< 0.25 then C2 (negative)
If T3 in [0.25, 0.35) then C1 (sick)
If T3 in [0.35, 0.55) then C2 (negative)
If T3 in [0.55, 1.15) then C1 (sick)
If T3 >= 1.15 then C2 (negative)
If T3 value is missing then C2 (negative) Acurateţe: 0.96
Data Mining - Curs 3-4 (2017) 24
OneR
Ideea principală: identifică atributul cu cea mai mare putere de discriminare şi
îl utilizează pentru a defini regulile de clasificare
Obs: este adecvat pentru atributele care au valori discrete
Algoritm:
FOR each attribute Ai do
FOR each value vij of Ai construct
Rij : if Ai = vij then class Ck(i,j)
(clasa majoritară pt instanţele care au Ai = vij)
se combină regulile într-un set Ri corespunzător lui Ai şi se calculează
Erri (nr date clasificate incorect)
ENDFOR
ENDFOR
Selectează setul de reguli cu eroarea cea mai mică
Data Mining - Curs 3-4 (2017) 25
OneR
Exemplu: weather/play dataset

Outlook: err=4
sunny: 2 yes/ 3 no ( no)
overcast: 4 yes/ 0 no ( yes)
rainy: 3 yes/2 no (yes)

Data Mining - Curs 3-4 (2017) 26


OneR
Example: weather/play dataset

Outlook: err=4
sunny: 2 yes/ 3 no ( no)
overcast: 4 yes/ 0 no ( yes)
rainy: 3 yes/2 no (yes)
Temperature: err=5
hot: 2 yes/2 no ( yes)
mild: 4 yes/2 no ( yes)
cool: 3 yes/ 1no ( yes)

Data Mining - Curs 3-4 (2017) 27


OneR
Example: weather/play dataset

Outlook: err=4
sunny: 2 yes/ 3 no ( no)
overcast: 4 yes/ 0 no ( yes)
rainy: 3 yes/2 no (yes)
Temperature: err=5
hot: 2 yes/2 no ( yes)
mild: 4 yes/2 no ( yes)
cool: 3 yes/ 1no ( yes)
Humidity: err=5
high: 4 yes/ 4 no ( yes)
normal: 6 yes/ 1 no ( yes)

Data Mining - Curs 3-4 (2017) 28


OneR
Exemplu: weather/play dataset

Outlook: err=4
sunny: 2 yes/ 3 no ( no)
overcast: 4 yes/ 0 no ( yes)
rainy: 3 yes/2 no (yes)
Temperature: err=5
hot: 2 yes/2 no ( yes)
mild: 4 yes/2 no ( yes)
cool: 3 yes/ 1no ( yes) Reguli: weather/play dataset
Humidity: err=5 If outlook=sunny then “no”
high: 4 yes/ 4 no ( yes) If outlook=overcast then “yes”
normal: 6 yes/ 1 no ( yes) If outlook=rainy then “yes”
Windy: err=5 Acurateţe (set antrenare): 0.71
true: 3 yes/3 no ( yes) Acurateţe (validare încrucişată): 0.43 (!!)
false: 6 yes/ 2 no ( yes)
Data Mining - Curs 3-4 (2017) 29
OneR
Exemplu: weather/play dataset

Reguli: weather/play dataset


If outlook=sunny then “no”
If outlook=overcast then “yes”
If outlook=rainy then “yes”

Etapa de clasificare:
• Altă zi: (outlook=rainy, temperature=cool, humidity=high, windy=false)
• Răspuns: Yes

Data Mining - Curs 3-4 (2017) 30


OneR
Sumar implementare OneR

 Construirea setului de reguli (etapa de antrenare)


 Input: set de antrenare (instanţe etichetate)
 Output: set de reguli simple (toate regulile implică un singur
atribut – acelaşi atribut în toate)
 Algoritm: se analizează toate atributele şi valorile
corespunzătoare acestora şi se selectează atributul pentru
care eroarea de clasificare este minimă
 Utilizarea regulilor (etapa de clasificare)
 Input: set de reguli, dată (instanţă) nouă
 Output: eticheta clasei
 Algoritm:
 Identifică regula care se potriveşte cu data
 Returnează clasa corespunzătoare regulii identificate

Data Mining - Curs 3-4 (2017) 31


Arbori de decizie
Set de date: weather/play Arbore de decizie (construit folosind
Weka)

–c

Cum poate fi utilizat un arbore de decizie?

Ce clasă corespunde unei noi instanţe?


(outlook=sunny, temperature=mild, humidity=normal, windy=False)?

Data Mining - Curs 3-4 (2017) 32


Arbori de decizie
Set de date: weather/play Arbore de decizie (construit folosind
Weka)

–c

Cum poate fi utilizat un arbore de decizie?

Ce clasă corespunde unei noi instanţe?


(outlook=sunny, temperature=mild, humidity=normal, windy=False)?
Clasa: Yes
Data Mining - Curs 3-4 (2017) 33
Arbori de decizie
Set de date: weather/play Arbore de decizie (construit folosind
Weka)

–c

Cum poate fi tradus într-un set de reguli


de clasificare? Fiecare ramură conduce la
o regulă
Regula 1: IF outlook=sunny and humidity=high THEN play=no
Regula 2: IF outlook=sunny and humidity=normal THEN play=yes
Regula 3: IF outlook=overcast THEN play=yes
Regula 4: IF outlook=rainy and windy=True THEN play=no
Regula 5: IF outlook=rainy and windy=False THEN play=yes
Data Mining - Curs 3-4 (2017) 34
Arbori de decizie
Cum poate fi construit un arbore de decizie Weather/play dataset
pornind de la date?

 Se alege un atribut şi se plasează în


rădăcina arborelului
 Pt fiecare valoare posibilă a atributului of
(cele prezente în setul de date) se
construieşte o ramură
 Se partiţionează setul de date în subseturi
corespunzătoare fiecărei ramuri
 Dacă un subset conţine date ce
aparţin unei singure clase atunci el va
corespunde unui nod frunză (nu se
mai ramifică) –nod pur
 Dacă subsetul conţine date din mai
multe clase atunci se continuă
procesul de partiţionare până când Problemă: în ce ordine ar trebui
 se ajunge la un nod pur analizate atributele? Ce condiţie
 pe ramura respectivă au fost deja de testare ar trebui asociată cu
analizate toate atributele fiecare nod?
 subsetul corespunzător ramurii
Data Mining - Curs 3-4 (2017) 35
este vid
Arbori de decizie
In ce ordine ar trebui analizate atributele? Set de date: weather/play (date
selectate)
Ideea principală:

• Se selectează atributul care conduce la


un arbore cât mai simplu adică un
atribut cu grad de puritate cât mai mare
(ideal ar fi ca pentru fiecare valoare a
atributului datele corespunzătoare să
aparţină aceleiaşi clase)

Exemplu:
Obs:
 Toate nodurile frunză sunt “pure”
outlook (conţin date ce aparţin aceleiaşi
sunny rainy clase)
 Conduce la reguli cu un singur
overcast atribut în membrul stâng
no (0,3) yes (3,0)  O astfel de situaţie se întâmplă rar
pentru date reale
yes (4,0)
Data Mining - Curs 3-4 (2017) 36
Arbori de decizie
Principalele probleme ce trebuie soluţionate la construirea unui arbore de
decizie

• Ce condiţii de test trebuie asignate ramurilor corespunzătoare unui nod ?


• Depinde de tipul atributului
• Nominal, ordinal, continuu
• Depinde de gradul de ramificare dorit:
• Ramificare binară (setul curent de date este împărţit în două
subseturi)
• Ramificare multiplă (setul curent de date este împărţit în mai multe
subseturi)

• Ce atribut ar trebui selectat pentru partiţionare?


• Cel cu puterea cea mai mare de discriminare – cel ce asigură
partiţionarea setului curent în subseturi cu grad mare de puritate
• Criterii ce pot fi utilizate:
• Bazate pe entropie (ex: câştig informaţional)
• Index Gini
• Măsură a erorii de clasificare

Data Mining - Curs 3-4 (2017) 37


Arbori de decizie
• Ce condiţii de test trebuie asignate ramurilor corespunzătoare unui nod ?

Atribute nominale şi ordinale:

 Ramificare multiplă (multi-way): atâtea ramuri câte valori posibile are


atributul
 Ramificare binară (2-way): două ramuri

Multi-way 2-way

outlook outlook
sunny rainy sunny rainy
overcast {overcast, rainy}
no (0,3) yes (3,0) no (0,3)
yes (4,0) yes (7,0)

Data Mining - Curs 3-4 (2017) 38


Arbori de decizie
Ce condiţii de test trebuie asignate ramurilor corespunzătoare unui nod?

Atribute numerice:

 Trebuie discretizate în prealabil, după care se aplică strategia specifică


atributelor nominale sau ordinale

Ce atribut se selectează pentru partiţionare?

 Acel atribut care conduce la reducerea maximă în conţinutul de informaţie


necesar pentru a lua decizia corectă

Exemplu: information gain

Câştig informaţional =
Entropia(distribuţia datelor înainte de partiţionare) –
EntropiaMedie distribuţia datelor după partiţionare)

Data Mining - Curs 3-4 (2017) 39


Reminder: entropie
Fie D=(p1,p2, …, pk) o distribuţie de probabilitate. Entropia asociată acestei
distribuţii de probabilitate este caracterizată de:
k
H ( D ) = H ( p1 , p2 ,..., pk ) = − ∑ pi log pi
i =1
şi poate fi interpretată ca o măsură a incertitudinii (sau surprizei) când se
generează/selectează o valoare în pe baza acestei distribuţii

Caz particular: k=2 => p1=p, p2=1-p

Obs:
Interpretare Log[1/p] : surpriza de a observa un eveniment caracterizat de o
probabilitate mică (eveniment neaşteptat) este mai mare decât cea
corespunzătoare unui eveniment de probabilitate mai mare (eveniment
aşteptat) Data Mining - Curs 3-4 (2017) 40
Reminder: entropie
In contextul rezolvării problemelor de clasificare:

 D={C1,C2,…,Ck} (set de date distribuit in k clase)

 Distribuţia de probabilitate (p1,p2, …, pk), pi=card(Ci)/card(D)

 Fie A un atribut şi v1,v2,…,vmA valorile posibile ale acestui atribut


 Fie Dj=setul de date din D pt care atributul A are valoarea vj şi Pj distribuţia
datelor din Dj în cele k clase (Cji= set de date din clasa Ci care au valoarea
vj pt atributul A)

 Câştigul informaţional obţinut prin partiţionarea setului de date folosind


atributul A este: m k
IG ( D, A) = H ( D ) − ∑ P( D j | A = v j ) H ( D j | A = v j ), H ( D ) = − ∑ p i log pi
A

j =1 i =1
k
card (C ji )
H ( D j | A = v j ) = − ∑ pij log pij , pij =
i =1 card (Ci )
card ( D j )
P( D j | A = v j ) =
card ( D ) Data Mining - Curs 3-4 (2017) 41
Alegerea atributului de ramificare
Exemplu
 Distribuţia claselor (C1=“yes”, C2=“no”):
 p1=9/14, p2=5/14
 H(p1,p2)=0.94

Outlook

C1 (yes) C2(no) Frequency


Sunny 2/5 3/5 5/14
Overcast 4/4 0/4 4/14
Rainy 3/5 2/5 5/14

H(sunny)=-2/5*log(2/5)-3/5*log(3/5)=0.97
H(overcast)=-1*log(1)-0=0
H(rainy)=-3/5*log(3/5)-2/5*log(2/5)=0.97

IG(outlook)=0.94-5/14*0.97-4/14*0-5/14*0.97=0.94-0.69=0.25

Data Mining - Curs 3-4 (2017) 42


Alegerea atributului de ramificare
Exemplu
 Distribuţia claselor(C1=“yes”, C2=“no”):
 p1=9/14, p2=5/14
 H(p1,p2)=0.94

Temperature

C1 (yes) C2(no) Frequency


Hot 2/4 2/4 4/14
Mild 4/6 2/6 6/14
Cool 3/4 1/4 4/14

H(hot)=-2/4*log(2/4)-2/4*log(2/4)
H(mild)=-4/6*log(4/6)-2/6*log(2/6)
H(cool)=-3/4*log(3/4)-1/4*log(1/4)

IG(temperature)=0.03

Data Mining - Curs 3-4 (2017) 43


Alegerea atributului de ramificare
Exemplu
 Distribuţia claselor (C1=“yes”, C2=“no”):
 p1=9/14, p2=5/14
 H(p1,p2)=0.94

Humidity

C1 (yes) C2(no) Frequency


High 3/7 4/7 7/14
Normal 6/7 1/7 7/14

H(high)=-3/7*log(3/7)-4/7*log(4/7)
H(normal)=-6/7*log(6/7)-1/7*log(1/7)

IG(humidity)=0.15

Data Mining - Curs 3-4 (2017) 44


Alegerea atributului de ramificare
Exemplu
 Distribuţia claselor(C1=“yes”, C2=“no”):
 p1=9/14, p2=5/14
 H(p1,p2)=0.94

Windy

C1 (yes) C2(no) Frequency


False 6/8 2/8 8/14
True 3/6 3/6 6/14

H(false)=-6/8*log(6/8)-2/8*log(2/8)
H(true)=-3/6*log(3/6)-3/6*log(3/6)

IG(windy)=0.05

Data Mining - Curs 3-4 (2017) 45


Alegerea atributului de ramificare
Exemplu
Câştigul informaţional al fiecărui atribut:
 IG(outlook)=0.25
 IG(temperature)=0.03
 IG(humidity)=0.15
 IG(windy)=0.05

Primul atribut selectat: outlook

outlook
sunny rainy

overcast
yes/no(2/3) yes/no(3,2)
yes/no (4,0)

Nod pur
Continuă ramificarea (stopare ramificare)Continuă ramificarea
Data Mining - Curs 3-4 (2017) 46
Alegerea atributului de ramificare
Exemplu
outlook
sunny rainy

overcast
yes/no(2/3) yes/no(3,2)
yes/no (4,0)

Nod pur
(stopare ramificare)

Temperature
C1 C2(no) Freq.
Câştig informaţional pt atributele rămase: (yes)
 Entropia pt subsetul “sunny” : Hot 0/2 2/2 2/5
H(D(sunny))=-2/5*log(2/5)-3/5*log(3/5)=0.97
Mild 1/2 1/2 2/5
 H(hot)=0, H(mild)=1, H(cool)=0 Cool 1/1 0/1 1/5

 IG(temperature)=0.97-2/5=0.57
Data Mining - Curs 3-4 (2017) 47
Alegerea atributului de ramificare
Exemplu
outlook
sunny rainy

overcast
yes/no(2/3) yes/no(3,2)
yes/no (4,0)

Nod pur
(stopare ramificare)

Humidity
C1 C2(no) Freq.
Câştig informaţional pt atributele rămase: (yes)
 Entropia pt subsetul “sunny” : High 0/3 3/3 3/5
H(D(sunny))=-2/5*log(2/5)-3/5*log(3/5)=0.97
Nor 2/2 0/2 2/5
 H(high)=0, H(normal)=0 mal

 IG(humidity)=0.97-0=0.97 Data Mining - Curs 3-4 (2017) 48


Alegerea atributului de ramificare
Exemplu
outlook
sunny rainy

overcast
yes/no(2/3) yes/no(3,2)
yes/no (4,0)

Nod pur
(stopare ramificare)

Windy
C1 C2(no) Freq.
Câştig informaţional pt atributele rămase: (yes)
 Entropia pt subsetul “sunny” : false 1/3 2/3 3/5
H(D(sunny))=-2/5*log(2/5)-3/5*log(3/5)=0.97
true 1/2 1/2 2/5
 H(false)=0, H(true)=1

 IG(windy)=0.97-0.95=0.02 Data Mining - Curs 3-4 (2017) 49


Alegerea atributului de ramificare
Exemplu
outlook
sunny rainy

overcast
humidity yes/no(3,2)

high yes/no (4/0)


normal

Yes/no(0/3) Yes/no(2/0)

Câştig informaţional pt atributele rămase:

 IG(temperature)=0.97-2/5=0.57
 IG(humidity)=0.97-0=0.97
 IG(windy)=0.97-0.95=0.02

Data Mining - Curs 3-4 (2017) 50


Alegerea atributului de ramificare
Obs:

 Câştigul informaţional favorizează atributele caracterizate printr-un număr


mare de valori
 Pentru a limita această influenţă se poate utiliza raportul (Gain Ratio):
IG ( D, A)
GainRatio( D, A) =
H ( p1A , p2A ,..., pmAA )
card ( D, A = v j )
p Aj =
card ( D)
(proportia de date care au valoarea v j pt atributul A)

 Atributul de ramificare poate fi determinat folosind indexul Gini = cât de


frecvent un element ales aleator din set ar fi clasificat incorect dacă ar fi
etichetat aleator pe baza distribuţiei corespunzătoare ramificării analizate
(cu cât mai mică valoarea cu atât mai bună)
n
Gini ( p1 , p2 ,..., pn ) = 1 − ∑ pi2
i =1
Data Mining - Curs 3-4 (2017) 51
Algoritmi pentru construirea arborilor
de decizie
ID3:

 Intrare: set de date D


 Iesire: arbore de decizie (noduri interne etichetate cu atribute, noduri
frunză etichetate cu clase, muchii etichetate cu valori ale atributelor)

DTinduction (D, DT, N) /* D=set date, DT=arbore de decizie, N=nod */


find the best splitting attribute A
label node N with A
construct the splitting predicates (branches) for N
FOR each branch i from N DO
construct the corresponding data set Di
create a new child node Ni
IF <stopping condition>
THEN label Ni with the dominant class in Di (Ni is a leaf node)
ELSE DTinduction(Di,DT, Ni)

Data Mining - Curs 3-4 (2017) 52


Algoritmi pentru construirea arborilor
de decizie
C4.5 = îmbunătăţire a algoritmului ID3 pt a trata:

 Atribute continue:
 Incorporează procedură de discretizare
 Valori absente:
 Datele ce conţin valori absente sunt ignorate
sau
 Valorile absente sunt imputate

 Atribut de ramificare:
 Utilizează Gain Ratio pt selecţia atributului

 Simplificare sau fasonare (Pruning):


 Anumiţi subarbori sunt înlocuiţi cu noduri frunză (dacă eroarea de
clasificare nu creşte semnificativ) – abordare bottom-up
Obs:
C5.0 – varianta comerciala a algoritmului C4.5
J48 – implementarea din Weka a algoritmului C4.5

Data Mining - Curs 3-4 (2017) 53


Algoritmi pentru construirea arborilor
de decizie
Simplificare: outlook
 Anumiţi subarbori sunt înlocuiţi sunny rainy
cu noduri frunză (dacă eroarea
de clasificare nu creşte overcast
yes/no(2/3) yes/no (2/3)
semnificativ) – abordare
bottom-up yes/no (4,0)

Arbore : error = 0
Arbore simplificat: error = 4/14

outlook Prin simplificare eroarea pe setul


sunny rainy de antrenare creşte dar riscul de
supra-antrenare poate sa scada
overcast windy
humidity

high yes/no (4/0)


normal true
false

Yes/no(0/3) Yes/no(2/0) yes/no (2/0) yes/no (0/3)


Data Mining - Curs 3-4 (2017) 54
Extragerea regulilor de clasificare
Reminder: regulile de clasificare sunt structuri de tip IF … THEN care conţin:

 In partea de antecedent (membrul stâng): condiţii privind valorile atributelor


(pot fi expresii logice care implică mai multe atribute)
 In partea de consecinţă (membrul drept): eticheta clasei

Exemple:
IF outlook=sunny THEN play=no
IF outlook=rainy THEN play=no
IF outlook=overcast THEN play=yes

Obs:
 Aceste reguli sunt extrase dintr-un arbore de decizie – fiecare ramură
conduce la o regulă
 Condiţiile referitoare la noduri aflate pe aceaşi ramură se combină prin
AND: IF (outlook=sunny) and (humidity=high) THEN play=no
 Regulile corespunzând unor ramuri diferite dar conducând la aceeaşi
consecinţă (aceeaşi etichetă de clasă) pot fi reunite prin disjuncţie (OR)
între părţile de antecedent:
IF (outlook=sunny) OR (outlook=rainy) THEN play=no
Data Mining - Curs 3-4 (2017) 55
Extragerea regulilor de clasificare
Regulile de clasificare pot fi extrase direct din date printr-un proces de
învăţare utilizând algoritmi de acoperire (covering algorithms)

Noţiuni:

 O regulă acoperă o dată dacă valorile atributelor se potrivesc cu condiţiile


din antecedentul regulii
 Similar, despre o dată se spune că activează o regulă dacă valorile
atributelor se potrivesc cu condiţiile din antecedentul regulii

 Suportul unei reguli (support) = fracţiunea din setul de date care este
acoperită de către regulă şi aparţin aceleiaşi clase ca şi regula
= |cover(R) ∩class(R ) |/|D|
 Gradul de încredere în regulă (rule confidence) = fracţiunea din datele
acoperite de regulă care au aceeaşi clasă ca cea specificată de regulă =
|cover(R) ∩class(R )|/|cover(R )|

cover( R) = subsetul de date acoperit de R


class(R) = subsetul de date care au aceeaşi clasă cu R
D= setul de date
Data Mining - Curs 3-4 (2017) 56
Extragerea regulilor de clasificare
Noţiuni:

 Reguli mutual exclusive = regiunile acoperite de reguli sunt disjuncte (o


instanţă activează o singură regulă)

 Set complet de reguli = fiecare instanţă activează cel puţin o regulă

Obs: dacă setul de reguli e complet şi regulile sunt mutual exclusive atunci
decizia privind apartenenţa unei date la o clasă este simplu de luat
Exemplu:

C0 R1: IF x>1 and y>1 THEN C0


R2: IF x<=1 THEN C1
R3: IF x>1 and y<=1 THEN C1

1
Ce se întâmplă însă dacă aceste
C1 proprietăţi nu sunt satisfăcute?

Data Mining - Curs 3-4 (2017) 57


1
Extragerea regulilor de clasificare
Obs: dacă regulile nu sunt mutual exclusive atunci pot să apară conflicte (o
instanţă poate activa reguli care au asociate clase diferite)

Conflictele pot fi rezolvate în unul dintre următoarele moduri:

 Ordonarea regulilor (pe baza unui criteriu) şi decizia se ia cf primei reguli


activate (prima regulă care se potriveşte cu instanţa). Criteriul de ordonare
poate fi corelat cu:
 calitatea regulii (e.g. Nivel încredere) – regulile cu nivel mare de
încredere sunt mai bune
 specificitatea regulii – o regulă este consideratăa mai bună dacă este
mai specifică (e.g. Reguli care corespund claselor rare)
 complexitatea regulii (e.g. Numărul de condiţii din partea de
antecedent a regulii) – regulile mai simple sunt mai bune
Obs: aceste criterii pot fi conflictuale (o regulă cu coeficient mare de
încredere nu este neapărat o regulă simplă)

 Rezultatul se obţine considerând clasa dominantă pe baza tuturor regulilor


activate de către instanţă
Data Mining - Curs 3-4 (2017) 58
Extragerea regulilor de clasificare
Algoritm secvenţial de acoperire:

Intrare: set de date


Ieşire: set ordonat de reguli

Pas 1: se selectează una dintre clase şi se identifică cea mai “bună” regulă
care acoperă datele din D care au clasa selectată. Se adaugă regula la
sfârşitul listei.

Pas 2: Se elimină datele din D care activează regula adăugată. Dacă încă
există clase netratate şi date în D go to Pas 1

Obs:
 Aceasta este structura generală a algoritmilor secvenţiali de acoperire
 Algoritmii pot să difere în funcţie de strategia de selecţie a claselor

Data Mining - Curs 3-4 (2017) 59


Extragerea regulilor de clasificare
Exemplu: RIPPER

Particularităţi:
 Ordonare bazată pe clase: clasele sunt selectate crescător după
dimensiune (clasele rare sunt selectate prima dată)

 Regulile corespunzătoare unei clase sunt plasate consecutiv în lista de


reguli

 Adăugarea unei noi reguli corespunzătoare unei clase este stopată când:
 Când regula devine prea complexă
 Când ‘următoarea’ regulă are o eroare de clasificare (pe setul de
validare) mai mare decât un prag prestabilit

 Dacă la sfârşit rămân date “neacoperite” atunci se poate defini o regulă de


tipul “catch all” căreia i se asociază clasa dominantă din setul de date
“neacoperite”

Data Mining - Curs 3-4 (2017) 60


Clasificatori bazaţi pe instanţe
Ideea principală: datele similare aparţin aceleiaşi clase

 Modelul de clasificare constă tocmai din setul de antrenare


 Procesul de antrenare constă doar în stocarea datelor din set

 Clasificarea unei noi date constă în:


 Se calculează similaritatea (sau disimilaritatea) dintre noua dată şi
cele din setul de antrenare şi se identifică exemplarele cele mai
apropiate
 Se alege clasa cea mai frecventă întâlnită în subsetul celor mai
similare exemple

Obs:
 Astfel de clasificatori sunt consideraţi leneşi (“lazy”) deoarece faza de
antrenare nu presupune nici un efort de calcul (întregul efort este
amânat pentru faza de clasificare)
 Cei mai populari clasificatori din această categorie sunt cei bazaţi pe
principiul celui/celor mai apropiat/apropiaţi vecin/vecini (k-Nearest
Neighbour) Data Mining - Curs 3-4 (2017) 61
Clasificatori bazaţi pe instanţe
kNN – k Nearest Neighbour
 Pt fiecare dată de clasificat:
 Determină cele mai apropiate (mai similare) k exemple din setul de
antrenare
 Identifică cea mai frecventă clasă

X X X

(a) 1-nearest neighbor (b) 2-nearest neighbor (c) 3-nearest neighbor

[Tan, Steinbach, Kumar; Introduction


DatatoMining
Data -Mining,
Curs 3-4 slides,
(2017) 2004] 62
Clasificatori bazaţi pe instanţe
kNN – k Nearest Neighbour
 Pt fiecare dată de clasificat:
 Determină cele mai apropiate (mai similare) k exemple din setul de
antrenare
 Identifică cea mai frecventă clasă

Performanţa clasificatorilor de tip kNN depinde de:


 Măsura de similaritate/ disimilaritate
 Se alege în funcţie de tipurile atributelor şi de proprietăţile
problemei
 Valoarea lui k (numărul de vecini)
 Cazul cel mai simplu: k=1 (nu e indicat în cazul datelor afectate de
zgomot)

Obs: kNN induce o partiţionare în regiuni a spaţiului datelor; regiunile nu


sunt calculate explicit ci sunt implicit determinate de măsura de similaritate
(precum şi de valoarea lui k)
Data Mining - Curs 3-4 (2017) 63
Clasificatori bazaţi pe instanţe
1NN = Nearest Neighbor bazat pe cel mai apropiat vecin (şi distanţa euclidiană)
Ilustrarea regiunilor. Dataset: iris2D (“petal length” and “petal width”).
Plot: Weka->Visualization->BoundaryVisualizer

Data Mining - Curs 3-4 (2017) 64


Clasificatori bazaţi pe instanţe
1NN = Nearest Neighbor bazat pe cel mai apropiat vecin (şi distanţa euclidiană)

1NN induce o partiţionare a spaţiului datelor (e.g. în 2D aceasta corespunde unei


diagrame Voronoi)

Obs:

Fiecare instanţă din setul de


antrenare corespunde unei
regiuni care cuprinde
datele aflate în vecinătatea
acelei instanţe

[Tan, Steinbach, Kumar; Introduction


Data Mining to Data Mining, slides,
- Curs 3-4 (2017) 2004] 65
Măsuri de similaritate/ disimilaritate
Considerăm două entităţi (e.g. vectori de date, serii de timp etc) A and B

 O măsură de similaritate, S, asociază perechii (A,B) un număr, S(A,B) ,


care este cu atât mai mare cu cât A şi B sunt mai similare
 O măsură de disimilaritate, D, asociază perechii (A,B) un număr,
D(A,B) , care este cu atât mai mare cu cât A şi B sunt mai diferite

Alegerea măsurii depinde de:

 Tipul atributelor
 Numărul de atribute
 Distribuţia datelor

Data Mining - Curs 3-4 (2017) 66


Măsuri de similaritate/ disimilaritate
Atribute numerice

Cele mai populare măsuri de


disimilaritate:
n

 Distanţa euclidiană d p ( A, B ) =
i =1
p
∑ i i (Minkowski, Lp )
( a − b ) p

 Distanţa Manhattan
Obs: n

 Distanţa euclidiană este


d E ( A, B ) = ( a∑
i − bi ) 2
(Euclidean, p = 2)
invariantă în raport cu rotaţii i =1

 Dacă nu toate atributele au n


aceeaşi importanţă atunci se
foloseşte varianta ponderată (e.g. i =1

d M ( A, B ) = | ai − bi | (Manhattan, p = 1)
wi(ai-bi)2 în loc de
(ai-bi)2 )
d ∞ ( A, B ) = max i =1,n | ai − bi | (p = ∞)

Ponderile se determină folosind tehnici de preprocesare

Data Mining - Curs 3-4 (2017) 67


Măsuri de similaritate/ disimilaritate
Aspecte practice – problema n


dimensiunii (dimensionality curse): d ( A, B ) =
Puterea de discriminara a acestor
p
p
∑ i i (Minkowski, Lp )
( a
i =1
− b ) p

distanţe scade pe măsură ce nr de


atribute (n) creşte => n

Pt date cu multe atribute clasificatorii d E( A, B ) = ∑ i i (Euclidean, p = 2)


( a − b ) 2

bazaţi pe distanţe devin inefectivi i =1


n
d M ( A, B ) = ∑ | ai − bi | (Manhattan, p = 1)
i =1

d ∞ ( A, B ) = max i =1,n | ai − bi | (p = ∞)

d max − d min
Obs: pe măsură ce n creşte (p) Distance contrast :
parametrul p ar trebui să fie mai mic σ
d max , d min = largest and smallest distance
σ = standard deviation of distances
Aggarwal,
Data Mining - CursData Mining Textbook, 2015
3-4 (2017) 68
Măsuri de similaritate/ disimilaritate
Aspecte practice – impactul distribuţiei datelor

Intrebare: Care punct e mai aproape de origine? A sau B?

Aggarwal, Data Mining Textbook, 2015


Data Mining - Curs 3-4 (2017) 69
Măsuri de similaritate/ disimilaritate
Aspecte practice – impactul distribuţiei datelor

Intrebare: Care punct e mai aproape de origine? A sau B?


R: d(O,A) = d(O,B) (distanţe euclidiene egale). Luând în considerare
distribuţia datelor: A este mai apropiat de O decât B
Altă întrebare: cum poate fi inclusă distribuţia datelor în calculul distanţei?

Distanta Mahalanobis
d Mah ( A, B) = ( A − B)T C −1 ( A − B)
C −1 = inversa matricii de covarianta

Aggarwal, Data MiningTextbook, 2015


Data Mining - Curs 3-4 (2017) 70
Măsuri de similaritate/ disimilaritate
Aspecte practice – impactul distribuţiei datelor

Intrebare: este distanţa dintre A şi B mai mică decât distanţa dintre B şi C?

Aggarwal,
Data Mining - CursData Mining Textbook, 2015
3-4 (2017) 71
Măsuri de similaritate/ disimilaritate
Aspecte practice – impactul distribuţiei datelor

Intrebare: este distanţa dintre A şi B mai mică decât distanţa dintre B şi C?

R: da, dacă ignorăm distribuţia datelor şi folosim distanţa euclidiană


Totuşi, distribuţia datelor nu poate fi ignorată întrucât este cea care
furnizează contextul problemei, iar în acest context d(A,B)>d(B,C)

Distanţa geodesică:

 Se construieşte un graf ce are în noduri


punctele iar muchiile unesc nodurile vecine
(ex: cei mai apropiaţi k vecini)
 Calculează distanţa dintre două puncte ca
fiind cea mai scurtă cale în graf

Data2015
Aggarwal, Data Mining Textbook, Mining - Curs 3-4 (2017) 72
Măsuri de similaritate/ disimilaritate
Atribute numerice – măsură de similaritate

 Măsura cosinus: sim(A,B)=ATB/(||A|| ||B||) (produsul scalar dintre A şi


B împărţit la produsul normelor)

Remarcă:
 In cazul vectorilor normalizaţi (||A||=||B||=1) similaritatea e maximă când
distanţa euclidiană este minimă:

d E2 ( A, B ) = ( A − B )T ( A − B ) = AT A − 2 AT B + BT B =
= 2( 1-AT B) = 1( 1-sim(A,B))

Data Mining - Curs 3-4 (2017) 73


Măsuri de similaritate/ disimilaritate
Atribute nominale

Abordare 1: Transformarea atributelor nominale în atribute numerice (prin


binarizare) şi utilizarea măsurilor de similaritate/disimilaritate pentru vectori
binari:

 Disimilaritate: distanţa Hamming = distanţa Manhattan: dH(A,B)=dM(A,B)

 Similaritate: coeficientul Jaccardn


∑a b i i
card ( S A  S B )
J ( A, B ) = n
i =1
=
card ( S A  S B )
∑ i i − aibi )
( a
i =1
2
+ b 2

Obs: SA şi SB sunt submulţimi ale mulţimii globale cu n atribute care


corespund vectorilor de apartenenţă A şi B.

Data Mining - Curs 3-4 (2017) 74


Măsuri de similaritate/ disimilaritate
Atribute nominale

Abordare 2: Utilizează măsuri locale de similaritate (între valorile atributelor)


n
S ( A, B ) = ∑ S ( ai , bi )
i =1

1 if ai = bi
S ( ai , bi ) = 
0 if ai ≠ bi
Obs: similarităţile mai puţin frecvente pot fi considerate mai relevante decât
cele frecvente

1 / f 2 (ai ) if ai = bi
S (ai , bi ) = 
 0 if ai ≠ bi
f (ai ) = frecventa valorii ai in setul de date
(pt atributul i)
Data Mining - Curs 3-4 (2017) 75
Măsuri de similaritate/ disimilaritate
Atribute mixte: se combină măsurile corespunzătoare celor două tipuri de
atribute (utilizând ponderi specifice)

S ( A, B ) = λSnumerical ( A, B ) + (1 − λ ) Snominal ( A, B )

Alte tipuri de date:

• Siruri (e.g. text sau secvenţe biologice) – se utilizează distanţa de editare


• Concepte (e.g. noduri într-o ontologie) – distanţe bazate pe cele mai
scurte căi în grafuri sau arbori
• Grafuri (e.g. Reţele sociale sau biologice) – ponderea structurilor
(tiparelor) similare în cele două structuri

Data Mining - Curs 3-4 (2017) 76


kNN: alegerea lui k
Performanţa clasificatorilor de tip kNN depinde de numărul de vecini

Cazuri extreme:
 k=1 - clasificatorul nu este robust (erorile din setul de date influenţează
răspunsul clasificatorului)
 k=N - e echivalent cu ZeroR fiind bazat doar pe modul de distribuire a
datelor în clase

Cum se alege k?
 Abordare de tip trial-and-error: se încearcă diferite valori şi se alege
valoarea care maximizează performanţa

Data Mining - Curs 3-4 (2017) 77


kNN: cost
Clasificarea unei noi instanţe necesită calculul a N distanţe (sau măsuri de
similaritate pt un set de date cu N elemente precum şi selecţia celor mai
mici k distanţe  O(N+kN)

Dacă N această prelucrare poate fi costisitoare (întrucât trebuie efectuată


pentru fiecare instanţă care trebuie clasificată)

Abordări posibile:
 Crearea structuri de indexare a datelor din setul de antrenare care
permite identificarea celor mai apropiaţi k vecini într-un mod eficient
 Reducerea numărului de date din setul de antrenare prin gruparea lor în
clustere şi înlocuirea fiecărui cluster cu un singur prototip
 Selecţia unor prototipuri din set

Data Mining - Curs 3-4 (2017) 78


Curs următor
 Modele probabiliste (Naive Bayes classifiers)

 Reţele neuronale (Multilayer Perceptrons)

 Clasificatori bazaţi pe vectori suport (Support Vector Machines)

Data Mining - Curs 3-4 (2017) 79


Curs 5:

Clasificarea datelor (II)

Data Mining - Curs 5 (2017) 1


Structura

• Clasificatori bazaţi pe modele probabiliste

• Clasificatori bazaţi pe reţele neuronale

• Clasificatori bazaţi pe vectori suport

Data Mining - Curs 5 (2017) 2


Modele probabiliste de clasificare
Exemplu: Presupunem că ne interesează să estimăm probabilitatea ca un pacient
care are simptomul S să aibă boala T

 Probabilitatea de estimat: P(T|S)

 Presupunem că se cunosc:

 P(S) = 1 – simptomul este prezent


 P(T) – estimată pe baza unor analize preliminare (e o măsură a frecvenţei
de apariţie a bolii)
 P(S|T) – se estimează pe baza cunoştinţelor medicale apriori (cât de
frecvent este simptomul S în cazul bolii T)

 Regula de calcu (regula probabilităţii condiţionate):


P(T|S)=P(S|T)P(T)/P(S)=P(S|T)P(T)

 Cum se analizează cazul în care nu e un singur simptom S, ci mai multe


simptome S1,S2,…,Sn?

Data Mining - Curs 5 (2017) 3


Modele probabiliste de clasificare
Exemplu: Presupunem că ne interesează să estimăm probabilitatea ca un
pacient care are simptomele S1,S2,…,Sn să aibă boala T

 Probabilitatea de estimat: P(T| S1,S2,…,Sn )

 Se foloseşte regula Bayes:

 P(T| S1,S2,…,Sn )=P(S1,S2,…,Sn |T)P(T)/P(S1,S2,…,Sn )

 Ipoteză simplificatoare: simptomele (S1,S2,…,Sn) corespund unor


evenimente independente (această ipoteză nu este întotdeauna adevărată
însă poate fi acceptată în anumite situaţii practice)

 Considerând că P(S1,S2,…,Sn )=1 (simptomele sunt prezente)

P(T| S1,S2,…,Sn )=P(S1|T) P(S2|T)…P(Sn|T)P(T)

Data Mining - Curs 5 (2017) 4


Clasificatorul Naïve Bayes
Problema de clasificare:

 Pentru o dată Di=(ai1,ai2,…,ain) se pune problemă determinării clasei căreia


îi aparţine

Ideea principală

 Estimează P(Ck| Di )=P(Ck|ai1,ai2,…,ain) P(Ck) pt fiecare k din {1,2,…,K} şi


selectează probabilitatea maximă; aceasta va indica cărei clase îi aparţine,
cel mai probabil data

 Ipoteză simplificatoare: atributele sunt independente (acesta este motivul


pentru care clasificatorul este denumit “naiv”)

 P(Ck| Di )= P(ai1|Ck) P(ai2|Ck)…P(ain|Ck)P(Ck)

 Estimarea probabilităţii de clasificare necesită cunoaşterea lui P(ai1|Ck),


P(ai2|Ck), …, P(ain|Ck) şi P(Ck)
 Aceste probabilităţi pot estimate pe baza setului de date (ca frecvenţe
relative) – această estimare corespunde procesului de învăţare specific
clasificatorului Naïve Bayes Data Mining - Curs 5 (2017) 5
Clasificatorul Naïve Bayes
Exemplu: P(C1)=P(no)=5/14 P(C2)= P(yes)=9/14

A1: outlook

P(sunny|C1)=P(sunny,C1)/P(C1)
=(3/14)/(5/14)=3/5

P(sunny|C2)=P(sunny,C2)/P(C2)
=(2/14)/(9/14)=2/9

P(overcast|C1)=P(overcast,C1)/P(C1)
=0

P(overcast|C2)=P(overcast,C2)/P(C2)
=(4/14)/(9/14)=4/9

P(rainy|C1)=P(rainy,C1)/P(C1)
=(2/14)/(5/14)=2/5

P(rainy|C2)=P(rainy,C2)/P(C2)
Data Mining - Curs 5 (2017) =(3/14)/(9/14)=3/9 6
Clasificatorul Naïve Bayes
Exemplu: Aceleaşi calcule pt ceilalţi parametri: A2
(temperature), A3 (humidity) and A4 (windy)

Obs: dacă pt o anumită valoare de atribut


(aij ) şi o anumită clasă Ck nu există exemplu
în setul de antrenare, atunci P(aij| Ck)=0 şi
(datorită ipotezei de independenţă) pt orice
instanţă având valoarea aij pt atributul Ai ,
probabilitatea să aparţină clasei Ck este 0.

Această situaţie poate să apară în special în


cazul claselor mici.

Tratarea acestor situaţii prin regula de “netezire de tip Laplace”:

P(aij| Ck)=(count(aij,Ck)+alpha)/(count(Ck )+mi*alpha)


alpha= parametru de netezire Laplace
mi= nr de valori distincte ale atributului Ai
Data Mining - Curs 5 (2017) 7
Clasificatorul Naïve Bayes
Obs:

 Acest atribut poate fi aplicat direct atributelor discrete şi se bazează pe unul


din următoarele modele probabiliste:

 Binomial
 Multinomial

 In cazul atributelor numerice care iau valori într-un domeniu continuu există
două abordări principale:
 Atributele sunt discretizate înainte de utilizarea clasificatorului
(performanţa acestuia depinde de procesul de clasificare)
 Se folosesc modele probabiliste continue (e.g. Gaussian) cu parametri
estimaţi pe baza setului de antrenare

Data Mining - Curs 5 (2017) 8


Retele neuronale – modelul biologic
Creierul uman
cca 1010 neuroni, cca 1014 interconexiuni

Data Mining - Curs 5 (2017) 9


Rețele neuronale artificiale
intrări Rețea neuronală artificială = ansamblu de unități
y1 simple de prelucrare (neuroni) interconectate
w1 Unitate funcțională: mai multe intrări, o ieșire
y2 Ieșire (model computațional simplificat al neuronului)
w2 Notații:
semnale de intrare: y1,y2,…,yn
ponderi sinaptice: w1,w2,…,wn
yn wn (modelează permeabilitatea sinaptică)
prag: b (sau w0)
w1,w2, ...: (modelează pragul de activare al neuronului)
Ponderi ieșire: y
numerice Obs: Toate valorile sunt numere reale
atașate
conexiunilor

Data Mining - Curs 5 (2017) 10


Rețele neuronale artificiale
Structura unei rețele neuronale
artificiale:

- Arhitectura: modul de
interconectare între unități

- Funcționare: modul de  N1 2  N 0 1  
calcul al semnalului de ieșire yi = f  ∑ wik f  ∑ wkj x j  , i = 1, N 2
 k =0 
  j =0 
- Antrenare: modul de
Rețea feedforward cu un nivel
determinare a parametrilor
ascuns
ajustabili

Data Mining - Curs 5 (2017) 11


Rețele neuronale artificiale
Proiectarea unei rețele pentru rezolvarea unei probleme de asociere
presupune:

• Alegerea arhitecturii:
– număr de nivele
– număr de unități pe fiecare nivel
– mod de interconectare (topologie)
– funcții de activare

• Antrenarea: determinarea valorilor ponderilor pornind de la setul de


antrenare folosind un algoritm de învățare

• Validarea rețelei: analiza comportării rețelei pentru date ce nu fac parte


din setul de antrenare

Data Mining - Curs 5 (2017) 12


Unități funcționale
Generarea semnalului de ieșire:
• Se “combină” semnalele de intrare utilizând ponderile sinaptice și pragul
de activare
– Valoarea obținută modelează potențialul local al neuronului
– Combinarea semnalelor de intrare în unitate se realizează printr-o
funcție de agregare (integrare)
• Se generează semnalul de ieșire aplicand o funcție de activare (transfer)
– corespunde generării impulsurilor de-a lungul axonului

Semnale de Starea neuronului Semnal de ieșire


intrare (u) (y)
(y1,…,yn) Funcție Funcția de
de agregare activare

Data Mining - Curs 5 (2017) 13


Unități funcționale
Exemple de funcții clasice de agregare

Suma ponderată Distanța euclidiană


n n
u = ∑ w j y j − w0 u= ∑ (w j − y j ) 2

j =1 j =1
n n n
u =∏y u = ∑ w j y j + ∑ wij yi y j + ...
wj
j
j =1 j =1 i , j =1

Neuron multiplicativ Conexiuni de ordin superior


Observatie: pentru varianta cu suma ponderată se poate asimila pragul cu o
pondere sinaptică corespunzătoare unei intrări fictive (cu valoare -1) astfel
că starea neuronului poate fi exprimată prin suma ponderată:
n
u= ∑w y
j =0
j j

Data Mining - Curs 5 (2017) 14


Unități funcționale
Exemple de funcții de activare (transfer)

− 1 u ≤ 0
f (u ) = sgn(u ) = 
1 u>0 signum
0 u ≤ 0
f (u ) = H (u ) = 
1 u > 0 Heaviside
− 1 u < −1

f (u ) =  u − 1 ≤ u ≤ 1 rampă
1 u >1

f (u ) = u liniară
f (u ) = max{0, u} Semi-liniară (rectified linear unit - ReLU)
Obs: utilizate în rețelele cu structură adâncă
Data Mining - Curs 5 (2017) 15
Unități funcționale
Exemple de funcții de activare (funcții sigmoidale)

(tangenta hiperbolică) 1

exp(2u ) − 1
f (u ) = tanh(u ) =
0.5

exp(2u ) + 1 -6 -4 -2 2 4 6

1
f (u ) =
-0.5

1 + exp(−u ) -1
1

(logistică) 0.8

0.6
Observație: uneori se folosește un
parametru numit pantă (slope) care 0.4

multiplică argumentul funcției de 0.2

activare: y=f(p*u) -6 -4 -2 2 4 6

Data Mining - Curs 5 (2017) 16


Unități funcționale
• Ce se poate face cu un singur neuron ?
-1
Se pot rezolva probleme simple de clasificare
(ex: se pot reprezenta funcții booleene simple) w0
x1 w1
0 1 OR y
0 0 1 x2 w2

1 1 1 y=H(w1x1+w2x2-w0)
Ex: w1=w2=1, w0=0.5
AND
0 1
0 0 0 y=H(w1x1+w2x2-w0)
Ex: w1=w2=1, w0=1.5
1 0 1

Data Mining - Curs 5 (2017) 17


Liniar/neliniar separabilitate
Reprezentarea unor funcții booleene: f:{0,1}N->{0,1}

Problema liniar
OR
separabilă – e suficientă
o rețea uninivel

Problema neliniar
separabilă – e necesară
XOR o rețea multinivel

Data Mining - Curs 5 (2017) 18


Rețele feedforward - arhitectura
Arhitectura și funcționare (K nivele funcționale)
Nivel Nivele ascunse Nivel de ieșire
intrare

W1 W2 Wk Wk+1 WK
0 1 … k … K

Y0=X X1 Xk XK
Y1 Yk YK
1 Fk F K
F
X = vector intrare, Y= vector ieșire, F=funcție vectorială de activare
Calcul vector de ieșire: Y=FK(WK*FK-1(WK-1*FK-2(.....F1(W1*X))))

Data Mining - Curs 5 (2017) 19


Rețele feedforward – funcționare
Arhitectura și funcționare
(caz particular: un nivel ascuns)

Parametrii modelului: matricile cu


ponderi W1 si W2 (setul tuturor
ponderilor e notat cu W)

 N1 ( 2 )  N 0 (1) 
yi = f 2  ∑ w ik f1  ∑ w kj x j  , i = 1..N 2
 k =0 
  j = 0  
Obs:
• în mod tradițional se lucrează cu unul sau două nivele ascunse
• În ultimii ani au devenit din ce în ce mai folosite rețelele cu număr mare de
nivele (Deep Neural Networks) folosite în particular pentru recunoașterea
imaginilor și a vorbirii (http://deeplearning.net)

Data Mining - Curs 5 (2017) 20


Rețele feedforward - antrenare
Antrenare (supervizată):
• Set de antrenare: {(x1,d1), …, (xL,dL)}
(xl = vector intrare, dl = vector de ieșire corect)
• Funcție de eroare (suma pătratelor erorilor):
2
1 L N2  l  N1  N0 
E (W ) = ∑∑ d i − f 2 ∑ wik f1  ∑ wkj x j 
  l 

2 l =1 i =1   k =0 
  j =0   
• Scopul antrenării: minimizarea funcției de eroare
• Metoda de minimizare: metoda gradientului

Data Mining - Curs 5 (2017) 21


Rețele feedforward - antrenare
∂E ( w(t ))
Relația de ajustare (metoda
wij (t + 1) = wij (t ) − η
gradientului): ∂wij
Functia de eroare:
2
Pas descreștere
1 L N 2  l  N1  N0    =
E (W ) = ∑∑ d i − f 2  ∑ wik f1  ∑ wkj x j  
l

2 l =1 i =1   k =0 
  
Rata de învățare
  j =0
xk
yk
Notații: xi
yi
El(W) (eroarea corespunzatoare exemplului l)
Data Mining - Curs 5 (2017) 22
Rețele feedforward - antrenare
• Calculul derivatelor partiale
2
1 L  l
N2  
N1 N0   
E (W ) = ∑∑ d i − f 2  ∑ wik f1  ∑ wkj x j  
 l

2 l =1 i =1   k =0 
  j =0   
xk
yk
∂El (W )
= −( d il − yi ) f 2' ( xi ) yk = −δ il yk xi
∂wik
y
∂El (W ) N2
 ' N2 i
l
= − ∑ wik ( d i − yi ) f 2 ( xi ) f1 ( xk ) x j = − f1 ( xk )∑ wikδ i  x j = −δ kl x lj
l ' ' l

∂wkj i =1  i =1 
Obs: δi reprezintă o măsură a erorii corespunzătoare unității de ieșire i iar δk
reprezintă eroarea de la nivelul unității ascuns k (obținut prin propagarea înapoi in
rețea a erorii de la nivelul de ieșire)
Data Mining - Curs 5 (2017) 23
Rețele feedforward - antrenare
∂El (W )
= −(d il − yi ) f 2' ( xi ) yk = −δ il yk
∂wik
∂El (W ) N2
 ' N2
l
= −∑ wik (d i − yi ) f 2 ( xi ) f1 ( xk ) x j = − f1 ( xk )∑ wik δ i  x j = −δ kl x lj
l ' ' l

∂wkj i =1  i =1 

Obs: derivatele funcțiilor tradiționale de activare (logistica și tanh) pot fi calculate


simplu pornind folosind următoarele proprietăți:

Logistica: f’(x)=f(x)(1-f(x)) => f’(x)=y(1-y)


Tanh: f’(x)=1-f(x)2 => f’(x)=1-y2

Data Mining - Curs 5 (2017) 24


Algoritmul BackPropagation
Idee: Calcul semnal eroare (BACKWARD)
Pentru fiecare exemplu din setul
de antrenare:
- se determină semnalul de
ieșire
- se calculează eroarea la
nivelul de ieșire
- se propagă eroarea înapoi în
rețea și se reține factorul delta
corespunzător fiecărei
ponderi
- se aplică ajustarea
corespunzătoare fiecărei
ponderi
Calcul semnal ieșire (FORWARD)

Data Mining - Curs 5 (2017) 25


Algoritmul BackPropagation
Inițializarea aleatoare a ponderilor Obs.
REPEAT • Valorile inițiale se aleg aleator in
FOR l=1,L DO [0,1] sau [-1,1]
etapa FORWARD • La ajustare se ține cont de rata
epoca

etapa BACKWARD de învățare


ajustare ponderi • Recalcularea erorii presupune
determinarea semnalului de
Recalcularea erorii ieșire pentru fiecare dată de
UNTIL <condiție oprire> intrare
• Condiția de oprire depinde de
valoarea erorii și/sau numărul
de epoci de antrenare

Data Mining - Curs 5 (2017) 26


Algoritmul BackPropagation
Varianta serială
wkj1 = rand ( −1,1), wik2 = rand ( −1,1)
p=0
REPEAT
FOR l = 1, L DO
/ * Etapa FORWARD * /
N0 N1
x = ∑ w x , y = f1 ( x ), x = ∑ wik2 ykl , yil = f 2 ( xil )
l
k
1
kj
l
j
l
k
l
k
l
i
j =0 k =0

/ * Etapa BACKWARD * /
N2
δ = f ( x )( d − y ), δ = f ( x )∑ wik2 δ il
i
l
2
' l
i i
l l
i
l
k 1
' l
k
i =1

/ * Etapa de ajustare * /
wkj1 = wkj1 + ηδ kl x lj , wik2 = wik2 + ηδ il ykl
ENDFOR
Data Mining - Curs 5 (2017) 27
Algoritmul BackPropagation
/ * Calculul erorii * /
E =0
FOR l = 1, L DO
/ * Etapa FORWARD (cu noile valori ale ponderilor) * /
N0 N1
x = ∑ w x , y = f1 ( x ), x = ∑ wik2 ykl , yil = f 2 ( xil )
l
k
1
kj
l
j
l
k
l
k
l
i
j =0 k =0

/ * Sumarea erorii * /
L
E = E + ∑ ( d il − yil ) 2
l =1

ENDFOR
E* reprezintă toleranța la erori a rețelei
pmax reprezintă numărul maxim de epoci
E = E /(2 L)
de antrenare
p = p +1
UNTIL p > pmax OR E < E *

Data Mining - Curs 5 (2017) 28


Algoritmul BackPropagation
Varianta pe blocuri (se bazează pe cumularea ajustarilor)
w1kj = rand ( −1,1), wik2 = rand ( −1,1), i = 1.. N 2, k = 0.. N 1, j = 0.. N 0
p=0
REPEAT
Δkj1 = 0 ,Δik2 = 0
FOR l = 1, L DO
/ * Etapa FORWARD * /
N0 N1
x = ∑ w x , y = f1 ( x ), x = ∑ wik2 ykl , yil = f 2 ( xil )
l
k
1
kj
l
j
l
k
l
k
l
i
j =0 k =0

/ * Etapa BACKWARD * /
N2
δ = f ( x )( d − y ), δ = f ( x )∑ wik2 δ il
i
l
2
' l
i i
l l
i
l
k 1
' l
k
i =1

/ * Etapa de ajustare * /
∆1kj = ∆1kj + ηδ kl x lj , ∆2ik = ∆2ik + ηδ il ykl
ENDFOR
wkj1 = wkj1 + ∆1kj , wik2 = wik2 + ∆2ik

Data Mining - Curs 5 (2017) 29


Algoritmul BackPropagation
/ * Calculul erorii * /
E =0
FOR l = 1, L DO
/ * Etapa FORWARD (cu noile valori ale ponderilor) * /
N0 N1
x = ∑ w x , y = f1 ( x ), x = ∑ wik2 ykl , yil = f 2 ( xil )
l
k
1
kj
l
j
l
k
l
k
l
i
j =0 k =0

/ * Sumarea erorii * /
L
E = E + ∑ ( d il − yil ) 2
l =1

ENDFOR
E = E /(2 L)
p = p +1
UNTIL p > pmax OR E < E *

Data Mining - Curs 5 (2017) 30


Probleme ale algoritmului
Backpropagation
P1. Viteza mică de convergență (eroarea descrește prea încet)

P2. Oscilații (valoarea erorii oscilează în loc să descrească în mod


continuu)

P3. Problema minimelor locale (procesul de învățare se blochează


într-un minim local al funcției de eroare)

P4. Stagnare (procesul de învățare stagnează chiar dacă nu s-a


ajuns într-un minim local)

P5. Supraantrenarea și capacitatea limitată de generalizare

Data Mining - Curs 5 (2017) 31


Probleme ale algoritmului BP
P1: Eroarea descrește prea încet sau oscilează în loc să
descrească

Cauze:
• Valoare inadecvată a ratei de învățare (valori prea mici conduc
la convergența lentă iar valori prea mari conduc la oscilații)
Soluție: adaptarea ratei de învățare

• Metoda de minimizare are convergență lentă


Soluții:
- modificarea euristică a variantei standard (varianta cu
moment)
- utilizarea unei alte metode de minimizare (Newton, gradient
conjugat)

Data Mining - Curs 5 (2017) 32


Probleme ale algoritmului BP
• Rata adaptivă de învățare:
– Dacă eroarea crește semnificativ atunci rata de învățare trebuie
redusă (ajustările obținute pentru valoarea curentă a ratei sunt
ignorate)
– Daca eroarea descrește semnificativ atunci rata de învățare poate fi
mărită (ajustările sunt acceptate)
– In toate celelalte cazuri rata de învățare rămâne neschimbată

E ( p ) > (1 + γ ) E ( p − 1) ⇒ η ( p ) = aη ( p − 1), 0 < a < 1


E ( p ) < (1 − γ ) E ( p − 1) ⇒ η ( p ) = bη ( p − 1), 1 < b < 2
(1 − γ ) E ( p − 1) ≤ E ( p ) ≤ (1 + γ ) E ( p − 1) ⇒ η ( p ) = η ( p − 1)

Exemplu: γ=0.05

Data Mining - Curs 5 (2017) 33


Probleme ale algoritmului BP
• Varianta cu “moment” (termen de inerție):

– Se introduce o “inerție” în calculul ponderilor:


• termenul de ajustare a ponderilor de la epoca curentă se
calculează pe baza semnalului de eroare precum și a ajustărilor
de la epoca anterioară

– Acționează ca o adaptare a ratei de învățare: ajustările sunt


mai mari în porțiunile plate ale funcției de eroare și mai mici în
cele abrupte

– Se combină cu varianta pe blocuri

∆wij ( p + 1) = ηδ i y j + α∆wij ( p )
α = 0.9

Data Mining - Curs 5 (2017) 34


Probleme ale algoritmului BP
Alte metode de minimizare (mai rapide însă mai complexe):

– Metoda gradientului conjugat (și variante ale ei)


– Metoda lui Newton (caz particular: Levenberg Marquardt)

Particularități ale acestor metode:

– Convergența rapidă (ex: metoda gradientului conjugat


converge în n iterații pentru funcții pătratice cu n variabile)

– Necesită calculul matricii hessiene (matrice conținând


derivatele de ordin doi ale funcției de eroare) și uneori a
inversei acesteia

Data Mining - Curs 5 (2017) 35


Probleme ale algoritmului BP
• Exemplu: metoda lui Newton

E : R n → R, w ∈ R n (vectorul ce contine toate ponderile)


Prin dezvoltare in serie Taylor in w( p ) (estimarea corespunzatoare epocii p)
1
E ( w) ≅ E ( w( p )) + (∇E ( w( p ))) ( w − w( p )) + ( w − w( p ))T H ( w( p ))(w − w( p ))
T
2
∂ 2 E ( w( p ))
H ( w( p )) ij =
∂wi ∂w j
Derivand dezvoltarea in serie Taylor in raport cu w si punand conditia
de punct critic noua aproximare pentru w se va obtine ca solutie a ec :
H ( w( p )) w − H ( w( p )) w( p ) + ∇E ( w( p )) = 0
Noua estimare a lui w va fi :
w( p + 1) = w( p ) − H −1 ( w( p )) ⋅ ∇E ( w( p ))
Data Mining - Curs 5 (2017) 36
Probleme ale algoritmului BP
Caz particular: metoda Levenberg-Marquardt
• Metoda lui Newton adaptată pentru cazul în care eroarea este o
sumă de pătrate de diferențe (cum este eroarea medie patratică)
L
E ( w) = ∑
l =1
El ( w), e : R n → R L , e( w) = ( E1 ( w),..., E L ( w))T

w( p + 1) = w( p) − ( J T ( w( p)) ⋅ J ( w( p)) + µ p I ) −1 J T ( w( p))e( w( p))


J ( w) = jacobianul lui e( w) = matricea derivatelor lui e in raport
cu toate argumentele
∂E ( w) Termen de perturbare care elimina
J ij( w) = i
∂w j cazurile singulare (cand matricea este
neinversabila)
Avantaje:
• Nu necesită calculul hessianei
• Pentru valori mari ale factorului de atenuare ajustarea devine similară
celei de la metoda gradientului

Data Mining - Curs 5 (2017) 37


Probleme ale algoritmului BP
P2: Problema minimelor locale (procesul de învățare se blochează
într-un minim local al funcției de eroare)

Cauza: metoda gradientului este o metodă de minimizare locală

Soluții:
– Se restartează antrenarea de la alte valori inițiale ale ponderilor
– Se introduc perturbații aleatoare (se adaugă la ponderi după
aplicarea ajustărilor):

wij := wij + ξ ij , ξ ij = valori aleatoare uniform


sau normal distribuite

Data Mining - Curs 5 (2017) 38


Probleme ale algoritmului BP
Soluție:
– Inlocuirea metodei gradientului cu o metodă aleatoare de
optimizare
– Inseamnă utilizarea unei perturbații aleatoare în locul celei
calculate pe baza gradientului
– Ajustările pot conduce la creșterea valorii erorii

∆ ij := valori aleatoare
IF E (W + ∆) < E (W ) THEN se accepta ajustare (W := W + ∆)
Obs:
• Ajustările sunt de regulă generate în conformitate cu repartiția
normală de medie 0 și dispersie adaptivă
• Daca ajustarea nu conduce la o descreștere a valorii erorii atunci
nu se acceptă deloc sau se acceptă cu o probabilitate mică
• Algoritmii aleatori de minimizare nu garanteaza obținerea
minimului Data Mining - Curs 5 (2017) 39
Probleme ale algoritmului BP
Soluție:
– Inlocuirea metodei gradientului cu o metodă aleatoare de
optimizare
– Inseamnă utilizarea unei perturbații aleatoare în locul celei
calculate pe baza gradientului
– Ajustările pot conduce la creșterea valorii erorii

∆ ij := valori aleatoare
IF E (W + ∆) < E (W ) THEN se accepta ajustare (W := W + ∆)
Obs:
• Ajustările sunt de regulă generate în conformitate cu repartiția
normală de medie 0 și dispersie adaptivă
• Daca ajustarea nu conduce la o descreștere a valorii erorii atunci
nu se acceptă deloc sau se acceptă cu o probabilitate mică
• Algoritmii aleatori de minimizare nu garanteaza obținerea
minimului Data Mining - Curs 5 (2017) 40
Probleme ale algoritmului 1

BP 0.8

0.6

0.4

0.2 saturare
• Pb 3: Stagnare
-6 -4 -2
(procesul de învățare stagnează chiar dacă nu s-a ajuns într-un minim2 local)
4 6

• Cauza: ajustările sunt foarte mici întrucât se ajunge la argumente mari


ale funcțiilor sigmoidale ceea ce conduce la valori foarte mici ale
derivatelor; argumentele sunt mari fie datorită faptului ca datele de
intrare nu sunt normalizate fie întrucât valorile ponderilor sunt prea mari
• Soluții:
– Se “penalizează” valorile mari ale ponderilor
– Se utilizeaza doar semnele derivatelor nu și valorile lor
– Se normalizează datele de intrare (valori în apropierea intervalului (-
1,1)

Data Mining - Curs 5 (2017) 41


Probleme ale algoritmului BP
Penalizarea valorilor mari ale ponderilor: se adaugă un termen de
penalizare la funcția de eroare (similar cu tehnicile de
regularizare folosite în metodele de optimizare)

E( r ) (W ) = E (W ) + λ ∑i, j
wij2

Ajustarea va fi:

∆(ijr ) = ∆ ij − 2λwij

Data Mining - Curs 5 (2017) 42


Probleme ale algoritmului BP
Utilizarea semnului derivatei nu și a valorii
(Resilient BackPropagation – RPROP)

 ∂E (W ( p − 1))

 ij ∆ ( p ) if >0
 ∂wij
∆wij ( p ) = 
∂E (W ( p − 1))
 ∆ ij ( p ) if <0
 ∂wij
 ∂E (W ( p − 1)) ∂E (W ( p − 2))
a
 ij ∆ ( p − 1 ) if ⋅ >0
 ∂wij ∂wij
∆ ij ( p ) = 
∂E (W ( p − 1)) ∂E (W ( p − 2))
b∆ ij ( p − 1) if ⋅ <0
 ∂wij ∂wij
0 < b <1< a

Data Mining - Curs 5 (2017) 43


Probleme ale algoritmului BP
Pb 4: Supraantrenare și capacitate limitată de generalizare
Cauze:
• Arhitectura rețelei (numărul de unitați ascunse)
– Un număr prea mare de unități ascunse poate provoca
supraantrenare (rețeaua extrage nu doar informațiile utile din setul
de antrenare ci și zgomotul)
• Dimensiunea setului de antrenare
– Prea puține exemple nu permit antrenarea și asigurarea capacității
de generalizare
• Numărul de epoci (toleranța la antrenare)
– Prea multe epoci pot conduce la supraantrenare
Soluții:
• Modificarea dinamică a arhitecturii
• Criteriul de oprire se bazează nu pe eroarea calculată pentru setul de
antrenare ci pentru un set de validare

Data Mining - Curs 5 (2017) 44


Probleme ale algoritmului BP
Supraantrenare – influența numărului de unități ascunse

1
0.7
0.9
0.65
0.8
0.6
0.7
0.55
0.6
0.5
0.5
0.45
0.4
0.4
0.3
0.35
0.2
0.3
0.1
0.25
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0.2
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

5 unități ascunse 10 unități ascunse

Data Mining - Curs 5 (2017) 45


Probleme ale algoritmului BP
Supraantrenare – influența numărului de unități ascunse

0.7
0.8
0.65

0.7
0.6

0.55
0.6
0.5
0.5
0.45

0.4 0.4

0.35
0.3
0.3

0.25 0.2

0.2
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0.1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

10 unități ascunse 20 unități ascunse

Data Mining - Curs 5 (2017) 46


Probleme ale algoritmului BP
Modificarea dinamică a arhitecturii:

• Strategie incrementală:

– Se pornește cu un număr mic de unități ascunse


– Dacă antrenarea nu progresează se adaugă succesiv unități;
pentru asimilarea lor se ajustează în câteva epoci doar
ponderile corespunzătoare

• Strategie decrementală:

– Se pornește cu un număr mare de unități


– Dacă există unități care au impact mic asupra semnalului de
ieșire atunci acestea se elimină

Data Mining - Curs 5 (2017) 47


Probleme ale algoritmului BP
Criteriu de oprire bazat pe eroarea pe setul de validare :

• Se imparte setul de antrenare în m părți: (m-1) sunt folosite


pentru antrenare și una pentru validare
• Ajustarea se aplică până când eroarea pe setul de validare
începe să crească (sugerează că rețeaua începe să piardă din
abilitatea de generalizare)
Validare încrucișată:
• Algoritmul de învățare se aplică de m ori pentru cele m variante
posibile de selecție a subsetului de validare
1: S=(S1,S2, ....,Sm)
2: S=(S1,S2, ....,Sm)
....
m: S=(S1,S2, ....,Sm)

Data Mining - Curs 5 (2017) 48


Probleme ale algoritmului BP

Eroarea pe setul de validare

Eroarea pe setul de antrenare

Data Mining - Curs 5 (2017) 49


Support Vector Machines
Support Vector Machine (SVM) = tehnică de clasificare caracterizată prin:

• Antrenare bazată pe o metodă de optimizare cu restricţii şi funcţie obectiv


pătratică. Obs: se evită problemele ce apar la antrenarea de tip
Backpropagation (blocarea în minime locale si supraantrenarea)

• Asigură o bună capacitate de generalizare

• Se bazează pe rezultate teoretice din domeniul analizei statistice a


metodelor de învățare (principalii contributori: Vapnik și Chervonenkis)

• Aplicații: recunoaștere scris, identificarea vorbitorului, recunoaștere


obiecte etc
• Bibliografie: C.Burges – A Tutorial on SVM for Pattern Recognition, Data Mining
and Knowledge Discovery, 2, 121–167 (1998)

Data Mining - Curs 5 (2017) 50


Support Vector Machines
Considerăm o problemă simplă de
clasificare binară
Problema e liniar separabilă și se observă că
există o infinitate de drepte (hiperplane, în
cazul general) care permit separarea celor
două clase

Care dintre hiperplanele separatoare este mai


bun ?

Cel care ar conduce la o bună capacitate de


generalizare = clasificare corectă nu doar
pentru datele din setul de antrenare ci și
pentru potențialele date de test

Data Mining - Curs 5 (2017) 51


Support Vector Machines
Care e cea mai bună dreaptă (hiperplan) separatoare ?

Cea pentru care distanța minimă față de


punctele aflate pe înfășurătoarea
convexă a setului de puncte
corespunzător fiecărei clase este
m maximă
m
wx+b=1 Dreptele care trec prin punctele marginale
sunt considerate drepte canonice
wx+b=-1 Distanța dintre dreptele canonice este
wx+b=0 2/||w||, deci a maximiza lărgimea zonei
separatoare este echivalent cu a
Ecuația dreptei minimiza norma lui w
(hiperplanului) separatoare

Data Mining - Curs 5 (2017) 52


Support Vector Machines
Cum se poate determina hiperplanul separator ?

Se determină w și b care
Minimizează ||w||2
(maximizează marginea separatoare)
m
și satisface
m (wxi+b)di-1>=0
wx+b=1
pentru toate elementele setului de
wx+b=-1 antrenare {(x1,d1),(x2,d2),…,(xL,dL)}
wx+b=0
di=-1 pentru clasa albastră
di=1 pentru clasa roșie
(clasifică corect exemplele din setul de
antrenare)

Data Mining - Curs 5 (2017) 53


Support Vector Machines
Problema de minimizare cu restricții se poate rezolva folosind metoda
multiplicatorilor lui Lagrange:
Problema inițială:
Minimizează ||w||2 astfel încât (wxi+b)di-1>=0 pentru i=1..L
Introducerea multiplicatorilor lui Lagrange transformă problema în determinarea
punctului șa (saddle point) pentru V:

1 2 L
V ( w, b, α ) = w − ∑ α i (d i ( w ⋅ xi + b) − 1), α i ≥ 0
2 i =1

( w*, b*, α *) este punct sa daca : V ( w*, b*, α *) = maxα min w,b V ( w, b, α )
Construirea funcției duale:
W (α ) = min w,b V ( w, b, α )
∂V ( w, b, α ) L
∂V ( w, b, α ) L
= 0 ⇒ w = ∑α j d j x j = 0 ⇒ 0 = ∑α j d j
∂w j =1 ∂b j =1

Data Mining - Curs 5 (2017) 54


Support Vector Machines
Se ajunge astfel la problema maximizării funcției duale (în raport cu α):

L
1 L
W (α ) = ∑ α i − ∑ α iα j d i d j ( xi ⋅ x j )
i =1 2 i , j =1
Cu restricțiile: (cunoscute din setul de antrenare)
L
α i ≥ 0, ∑α d
i =1
i i =0

După rezolvarea problemei de mai sus (în raport cu multiplicatorii α) se


calculează elementele hiperplanului separator astfel:
L
w* = ∑ α i d i xi , b* = 1 − w * ⋅ xk
i =1

unde k este indicele unui multiplicator nenul iar xk este exemplul


corespunzător ce aparține clasei de etichetă +1

Data Mining - Curs 5 (2017) 55


Support Vector Machines
Observații:
• Multiplicatorii nenuli corespund exemplelor pentru
care restricțiile sunt active (w x+b=1 sau w x+b=-1).
Aceste exemple sunt denumite vectori suport și sunt
singurele care influențează ecuația hiperplanului
separator (celelalte exemple din setul de antrenare
pot fi modificate fără a influența hiperplanul
separator)
vectori
suport
• Multiplicatorii nuli corespund elementelor din setul
de antrenare care nu influențează hiperplanul
separator
• Funcția de decizie obținută după rezolvarea
problemei de optimizare pătratică este:
L
D( z ) = sgn(∑ α i d i ( x i ⋅ z ) + b*)
i =1

Data Mining - Curs 5 (2017) 56


Support Vector Machines
Ce se întâmplă în cazul în care datele nu sunt foarte bine separate ?

Se relaxează condiția de apartenență la o clasă:

w ⋅ xi + b ≥ 1 − ξ i , daca d i = 1
w ⋅ xi + b ≤ −1 + ξ i , daca d i = −1
Funcția de minimizat devine:
L L
1 2
V ( w, b, α , ξ ) = w + C ∑ ξ i − ∑ α i (d i ( w ⋅ xi + b) − 1)
2 i =1 i =1

Ceea ce schimbă restricțiile din problema duală astfel:

in loc de α i ≥ 0 se introduce 0 ≤ α i ≤ C

Data Mining - Curs 5 (2017) 57


Support Vector Machines
Ce se întâmplă în cazul in care problema este neliniar separabilă?

x12 + x22 − R 2 = 0 w ⋅ z + b = 0, z1 = x12 , z 2 = x22


w1 = w2 = 1, b = − R 2
x1 → θ ( x1 ) = x12
x2 → θ ( x2 ) = x22

Data Mining - Curs 5 (2017) 58


Support Vector Machines
In cazul general se aplică transformarea:

x → θ ( x) iar produsul scalar al vectorilor transformati este


θ ( x ) ⋅ θ ( x ' ) = K ( x, x ' )

Intrucât în rezolvarea problemei de optimizare intervin doar produsele


scalare nu este necesară cunoașterea expresiei explicite a funcției
de transformare θ ci este suficient să se cunoască doar funcția
nucleu K

Data Mining - Curs 5 (2017) 59


Support Vector Machines
Exemplu 1: Transformarea unei probleme neliniar separabile într-una
liniar separabilă prin trecerea la o dimensiune mai mare
( x − α )( x − β ) = x 2 − (α + β ) x + αβ w1 z1 + w2 z 2 + b = 0
z1 = x 2 , z 2 = x
w1 = 1, w2 = −(α + β )
b = αβ

Pb. 1-dimensională neliniar separabilă Pb. 2-dimensională liniar separabilă


Exemplu 2: Deducerea unei funcții nucleu în cazul în care suprafața de decizie este
dată de o funcție pătratică oarecare (se trece de la dimensiunea 2 la
dimensiunea 5)

θ ( x1 , x2 ) = ( x12 , x22 , 2 x1 x2 , 2 x1 , 2 x2 ,1)


K ( x, x' ) = θ ( x1 , x2 ) ⋅θ ( x'1 , x'2 ) = ( xT ⋅ x'+1) 2

Data Mining - Curs 5 (2017) 60


Support Vector Machines
Exemple de functii nucleu:

K ( x, x' ) = ( xT ⋅ x'+1) d
x − x'
2

K ( x, x' ) = exp(− )
2σ 2

K ( x, x' ) = tanh(kxT ⋅ x'+b)


Functia de decizie devine:
L
D( z ) = sgn(∑ α i yi K (xi , z ) + b*)
i =1

Data Mining - Curs 5 (2017) 61


Support Vector Machines
Implementări

LibSVM [http://www.csie.ntu.edu.tw/~cjlin/libsvm/]: (+ link-uri catre


implementari in Java, Matlab, R, C#, Python, Ruby)

SVM-Light [http://www.cs.cornell.edu/People/tj/svm_light/]: implementare


in C

Spider [http://www.kyb.tue.mpg.de/bs/people/spider/tutorial.html]:
implementare Matlab

Interfață SciLab pt LibSVM (http://atoms.scilab.org/toolboxes/libsvm)

SciKit-learn – implementări în Python

Data Mining - Curs 5 (2017) 62


Curs 6:

Gruparea datelor (I)

Data mining - Curs 6 1


Structura
 Gruparea datelor

 Concepte de bază
 Evaluarea calităţii grupării

 Algoritmi partiţionali

 kMeans
 fuzzy cMeans

 Algoritmi ierarhici

Data mining - Curs 6 2


Scopul grupării (reminder)
Ce se cunoaşte?

• un set de date (nu neapărat structurate)


• O măsură de similaritate/disimilaritate între date (măsura e
specifică problemei de rezolvat) pe baza căreia se construieşte o
matrice de similaritate/disimilaritate

Ce se doreşte?
• Un model care descrie modul în care se grupează datele în
clustere (grupuri) astfel încâte datele care aparţin aceluiaşi cluster
sunt mai similare între ele decât cele care aparţin unor clustere
diferite

Care este scopul final?


• Să se poată verifica dacă două date aparţin aceluiaşi cluster
• Să se determine clusterul de care aparţine o dată

Data mining - Curs 6 3


Scopul grupării (reminder)
Exemple:

 Customer segmentation = identificarea grupurilor de clienţi care au


comportamente similare

 Data summarization / document clustering = identificarea unor grupuri


de documente similare din punct de vedere al conţinutului

 User profiles extraction = identificarea grupurilor de utilizatori ai unui


serviciu web caracterizaţi prin comportamente similare

 Image segmentation = identificare unor regiuni omogene într-o imagine

Gruparea permite:
 sumarizarea şi/sau vizualizarea datelor în alt mod cu scopul de a înţelege mai
bine datele

Data mining - Curs 6 4


Particularităţi ale grupării
Este un proces nesupervizat: Problema grupării este rău-definită:
 Setul de antrenare conţine doar valori
ale atributelor  Identificarea grupurilor este dificilă
 Eticheta clasei nu e cunoscută  Decizia poate avea caracter
subiectiv

Câte clustere? Şase clustere

Două clustere patru clustere


[Kumar, 2004] Data mining - Curs 6 5
Concepte de bază
 Cluster = grup de date care sunt similare
 Matrice de (di)similaritate pt un set de n date = matrice nxn in care pe
linia i coloana j se află valoarea similarităţii/disimilarităţii între data i şi
data j
 Clustering = proces de identificare a clusterelor
 Prototip = “obiect” reprezentativ pentru datele dintr-un cluster
 Centroid = media datelor dintr-un cluster – centroidul nu este
neapărat un element din setul de date
 Medoid = data din cluster care este cea mai apropiată de media
clusterului – medoidul aparţine setului de date
 Raza clusterului = media distanţelor dintre datele din cluster şi
prototipul acestuia
 Diametrul clusterului = distanţa (disimilaritatea) maximă dintre oricare
două date ale clusterului

Data mining - Curs 6 6


Tipuri de clustering
 Crisp vs fuzzy clustering
 Crisp clustering = fiecare dată aparţine unui singur cluster
 Fuzzy clustering = o dată poate aparţine mai multor clustere (grad de
apartenenţă pentru fiecare cluster)
 Flat vs hierarchical clustering
 Flat (partitional) clustering = rezultatul este un set de clustere (o
partiţie)
 Hierarchical clustering = rezultatul este o ierarhie de partiţii

 Variante de algoritmi
 Algoritmi partiţionali (ex: kMeans, Fuzzy cMeans)
 Algoritmi hierarhici (alg. aglomerativi, alg. divizivi)
 Algoritmi bazaţi pe densitate (ex: DBSCAN)
 Algoritmi probabilişti (ex: EM = Expectation Maximization)

Data mining - Curs 6 7


Măsuri de calitate
 Nu există un indicator unic pentru evaluarea calităţii unei grupări
 Cea mai comună abordare constă în estimarea:
 Compacităţii clusterelor (variabilitate intra-cluster – ar trebui să fie
mică)
 Gradului de separare dintre datele apatţinând unor clustere diferite
(variabilitate inter-cluster – ar trebui să fie mare)

Calitate bună Calitate slabă


Data mining - Curs 6 8
Măsuri de calitate
 Intra-cluster to inter-cluster distance ratio = Intra/Inter (valori mici corespund
unei calităţi mai bune)
 Fie P setul de date ce aparţin aceluiaşi cluster şi Q=DxD-P (restul perechilor:
o dată din pereche aparţine unui cluster iar cealaltă unui alt cluster)

Intra = ∑ d (x , x ) / card ( P)
( xi , x j )∈P
i j

Inter = ∑ d (x , x ) / card (Q )
( xi , x j )∈Q
i j

Exemple de perechi de date utilizate în Exemple de perechi de date utilizate în


calculul distanţelor intra-cluster calculul distanţelor inter-cluster
Data mining - Curs 6 9
Măsuri de calitate
 Silhouette coefficient
Obs:

D min iout − Davg iin  S ia valori în (-1,1)


Si =  Valori mai mari indică o grupare mai bună
max{D min iout , Davg iin }
1 n
S = ∑ Si
n i =1
Davg iin = media distantelor dintre
xi si celelalte date din clusterul lui xi
Davg ij = media distantelor dintre
xi si datele din clusterul j (j ≠ i)
D min iout = min j Davg ij

Data mining - Curs 6 10


kMeans
 Input: set de date D={x1,x2,…,xN}, K = nr de clustere
 Output: partiţie P={C1,C2,…,CK} of D

kMeans (D,k)
initialize the centroids c1, c2, …, cK (by random selection from the data set)
repeat
 assign each data from D to the cluster corresponding to the closest
centroid (with respect to a similarity/distance)
 update each centroid as mean of the data belonging to the
corresponding cluster
until <the partition does not change>

Data mining - Curs 6 11


kMeans
 Caracteristici
 kMeans este o metodă bazată pe prototipuri care are ca scop minimizarea is
sumei pătratelor erorilor (SSE) – distanţele dintre date şi centroizii
corespunzători
K K n
SSE = ∑ ∑ d ( x, ck ) = ∑ ∑∑ ( x j − ckj ) 2
2

k =1 x∈Ck k =1 x∈Ck j =1
(în cazul distanţei euclidiene)
 Complexitate: O(n*N*K*iteraţii) (n=nr de atribute, N=nr de date, K=nr de
clustere)
 Pre-procesare utilă: normalizare
 Post-procesare utilă:
 Eliminarea clusterelor mici
 Fragmentarea clusterelor caracterizate prin variabilitate mare
 Reunirea clusterelor apropiate
Data mining - Curs 6 12
kMeans
Limite:
 Nu funcţionează bine dacă datele nu sunt “sferice”
 Soluţie: utilizarea altor abordări (e.g. clustering bazat pe
densitate)

Clusterele reale Rezultatul Kmeans

[from slides Kumar, 2004] Data mining - Curs 6 13


kMeans
Limite: necesită cunoaşterea apriori a numărului de clustere

 Soluţii:

 aplică algoritmul pt diferite valori ale lui K şi selectează varianta


care corespunde celor mai bune valori ale criteriilor de calitate

 post-procesarea rezultatelor procesului de clustering prin


partiţionarea clusterelor cu variabilitate mare şi reunirea clusterelor
apropiate (ex: alg. ISODATA)

Data mining - Curs 6 14


ISODATA
Idei principlale ale alg ISODATA
 Dacă dimensiunea unui cluster este mai mică decât Nmin atunci
clusterul ar trebui reunit cu cel mai apropiat alt cluster

 Dacă distanţa dintre două clustere (de exemplu the distanţa dintre
prototipurile clusterelor) este mai mică decât Dmin atunci clusterele ar
trebui reunite

 Dacă varianţa unui cluster este mai mare decât Vmax şi numărul de
date conţinute este mai mare decât 2*Nmin atunci clusterul poate fi
divizat în două alte clustere:
 Identifică atributul j pt care varianţa este maxmă
 Din prototipul ck sunt construite două alte prototipuri c’ şi c’’ prin
înlocuirea valorii atributului j din ck cu ck(j)-b respectiv ck(j)+b, r
(b este un parametru setat de către utilizator)

Data mining - Curs 6 15


Fuzzy cMeans
Ideea grupării fuzzy (soft):

 O dată nu aparţine unui singur cluster ci poate aparţine mai multor


clustere (cu un anumit grad de apartenenţă pentru fiecare cluster)

 Rezultatul unei grupări fuzzy este o matrice M de dimensiune NxK


(N= nr date, K= nr clustere);
M(i,j) = o valoare din [0,1] care corespunde gradului de apartenenţă a
datei i la clusterul j

Obs: Fuzzy cMeans poate fi utilizată în segmentarea imaginilor

Data mining - Curs 6 16


Fuzzy cMeans
Algoritm Calculul centroizilor
• Initialize the membership matrix (M) n
• Repeat ∑M ijp xi p>1 is a
– Compute the centroids(ck, k=1,…K) c j = i =1 , j = 1, K parameter
n
– Update the membership values (mij,
i=1,…,N, j=1,…,K i =1
∑M ijp (e.g. p=2)

until <no significant changes in the


Calculul gradului de apartenenţă
membership function>

Obs: dacăe e necesar fiecare dată este


1
M ij = K
asignată la clusterul ce corespunde celui 2 /( p −1)
∑1 / xi − ck
2 /( p −1)
mai mare grad de apartenenţă
xi − c j
k =1

i = 1, n, j = 1, K

Data mining - Curs 6 17


Algoritmi ierarhici
Obs: una dintre principalele limite ale algoritmilor ierarhici e faptul că necesită
cunoaşterea numărului de clustere.
Altă abordare: se construieşte o ierarhie de partiţii – conduce la o structură
arborescentă numită dendrogramă
 In varianta bottom-up (metoda aglomerativă )
 Se porneşte cu o partiţie de clustere ce conţin fiecare câte o singură
dată (reprezintă frunze în arbore)
 Se reunesc clusterele care sunt similare între ele – procesul de reunire
se repetă până se ajunge la un singur cluster (reprezintă rădăcina
arborelui)
 In varianta top-down (metoda divizivă)
 Se porneşte cu o partiţie ce conţine un singur cluster (cu toate datele)
 Se partiţionează clusterii mari aplicând o tehnica partiţională (ex:
kMeans) – procesul continuă până când se ajunge la clustere ce conţin
câte o singură dată.
Data mining - Curs 6 18
Metoda aglomerativă
Idee: se identifică la fiecare etapă care sunt cele mai similare clustere şi se
reunesc
8

7 9
1
3
2 6

4 5

1 2 3 4 5 6 7 8 9
1 0 2 3 4 7 8 6 8 10
2 2 0 1 2 4 6 7 8 9
3 3 1 0 2 3 5 6 8 9
4 4 2 2 0 3 6 9 10 11 1 2 3 4 5 6 7 8 9
5 7 4 3 3 0 1 4 6 5
6 8 6 5 6 1 0 3 4 3
7 6 7 6 9 4 3 0 1 2
8 8 8 8 10 6 4 1 0 2 Data mining - Curs 6 19
9 10 9 9 11 5 3 3 2 0
Metoda aglomerativă
Idee: se identifică la fiecare etapă care sunt cele mai similare clustere şi se
reunesc
8

7 9
1
3
2 6

4 5

1 2 3 4 5 6 7 8 9
1 0 2 3 4 7 8 6 8 10
2 2 0 1 2 4 6 7 8 9
3 3 1 0 2 3 5 6 8 9
4 4 2 2 0 3 6 9 10 11 1 2 3 4 5 6 7 8 9
5 7 4 3 3 0 1 4 6 5
6 8 6 5 6 1 0 3 4 3
7 6 7 6 9 4 3 0 1 2
8 8 8 8 10 6 4 1 0 2 Data mining - Curs 6 20
9 10 9 9 11 5 3 3 2 0
Metoda aglomerativă
Idee: se identifică la fiecare etapă care sunt cele mai similare clustere şi se
reunesc
8

7 9
1
3
2 6

4 5

1 2 3 4 5 6 7 8 9
1 0 2 3 4 7 8 6 8 10
2 2 0 1 2 4 6 7 8 9
3 3 1 0 2 3 5 6 8 9
4 4 2 2 0 3 6 9 10 11 1 2 3 4 5 6 7 8 9
5 7 4 3 3 0 1 4 6 5
6 8 6 5 6 1 0 3 4 3
7 6 7 6 9 4 3 0 1 2
8 8 8 8 10 6 4 1 0 2 Data mining - Curs 6 21
9 10 9 9 11 5 3 3 2 0
Metoda aglomerativă
Idee: se identifică la fiecare etapă care sunt cele mai similare clustere şi se
reunesc
8

7 9
1
3
2 6

4 5

1 2 3 4 5 6 7 8 9

Data mining - Curs 6 22


Metoda aglomerativă
Idee: se identifică la fiecare etapă care sunt cele mai similare clustere şi se
reunesc
8

7 9
1
3
2 6

4 5

1 2 3 4 5 6 7 8 9

Data mining - Curs 6 23


Metoda aglomerativă
Idee: se identifică la fiecare etapă care sunt cele mai similare clustere şi se
reunesc
8

7 9
1
3
2 6

4 5

1 2 3 4 5 6 7 8 9

Data mining - Curs 6 24


Metoda aglomerativă
Idee: se identifică la fiecare etapă care sunt cele mai similare clustere şi se
reunesc

 Deondrograma rezultată
8

7 9
1
3
2 6

4 5

1 2 3 4 5 6 7 8 9

 Reprezentarea unei dendrograme: ca set de triplete ordonate (nivel, nr de


clustere, clustere)
{(0,9,{{1},{2},…,{9}}) ,(1,6,{{1},{2,3},{4},{5,6},{7 ,8},{9}}),
(2,4,{{1},{2,3,4},{5,6},{7,8,9}}), (3,3,{{1,2,3,4},{{5,6},{7,8,9}}),
(4,2,{{1,2,3,4,5,6},{7,8,9}),(5,1,{{1,2,3,4,5,6,7,8,9}})}
Data mining - Curs 6 25
Metoda aglomerativă

8  Pentru a obţine o partiţie dendrograma


7 trebuie secţionată
9
1
3
2 6

4 5

Partiţie:

C1={1}
C2={2,3,4} 1 2 3 4 5 6 7 8 9

C3={5,6}
C4={7,8,9}
Data mining - Curs 6 26
Metoda aglomerativă

8  Schimbând nivelul de secţionare se obţine


7 o altă partiţie
9
1
3
2 6

4 5

Partition:

C1={1,2,3,4}
C2={5,6} 1 2 3 4 5 6 7 8 9

C3={7,8,9}

Data mining - Curs 6 27


Metoda aglomerativă
Problema: care e criteriul de selecţie a clusterelor care se reunesc?

Răspuns: se foloseşte o măsură de disimilaritate între clustere; sunt mai multe


moduri de a calcula această măsură:

 Single-linkage: cea mai mică disimilaritate (distanţă) între datele aparţinând


unor clustere diferite
C3
8
7
DSL (Ci , C j ) = min x∈Ci , y∈C j d ( x, y )
9

1
3
2 6

4 5
C1 C2

Data mining - Curs 6 28


Metoda aglomerativă
Problema: care e criteriul de selecţie a clusterelor care se reunesc?

Răspuns: se foloseşte o măsură de disimilaritate între clustere; sunt mai multe


moduri de a calcula această măsură

 Complete-linkage: cea mai mare disimilaritate (distanţă) între datele


aparţinând unor clustere diferite
C3
8
7
DCL (Ci , C j ) = max x∈Ci , y∈C j d ( x, y )
9

1
3
2 6

4 5
C1 C2

Data mining - Curs 6 29


Metoda aglomerativă
Problema: care e criteriul de selecţie a clusterelor care se reunesc?

Răspuns: se foloseşte o măsură de disimilaritate între clustere; sunt mai multe


moduri de a calcula această măsură

 Average-linkage: media distanţelor dintre datele aparţinând unor clustere


diferite
C3
1
DAL (Ci , C j ) = ∑ d ( x, y )
8
7 9 card (Ci )card (C j ) x∈Ci , y∈C j

1
3
2 6

4 5
C1 C2

Data mining - Curs 6 30


Metoda aglomerativă
Măsura de disimilaritate folosită influenţează rezultatul grupării:

Data Clustering: Algorithms and Applications, 2014

Data mining - Curs 6 31


Metoda aglomerativă
Algoritm Obs
Input : set de date cu N instanţe
X={x1,x2,…,xN} + matrice disimilaritate D  Funcţia mergeClusters identifică
Output: dendrograma (set de triplete) cele mai apropiate clustere şi le
reuneşte
agglomerative(X,D)
level=0; k=N  Algoritmul are complexitate
C={{x1},{x2},…,{xN}}; DE={(level,k,C)} pătratică în raport cu numărul de
date din set (O(N2))
repeat
oldk=k
 Este senzitiv la erorile din date
level=level+1
(k,C)=mergeClusters(k,C,D)
D=recompute the dissimilarity matrix using
single/complete/average linkage
DE=union (DE, (level,k,C))
until k=1 Data mining - Curs 6 32
Metoda divizivă
Structura generică
Input : set de date cu N instanţe X={x1,x2,…,xN}
Output: dendrograma (tree) T

divisive(X,D)
Initialize the tree T with a root node containing the entire data set
Repeat
select a leaf node L from T (based on a specific criterion)
use a flat clustering algorithm to split L into L1,L2,…Lk
Add L1,L2,…Lk as children of L in T
until <a stopping criterion>

Obs: algoritmul partiţional poate fi kMeans; un caz particular este bisecting


kMeans care se bazează pe partiţionarea unui cluster în două alte clustere
(aplicând kMeans pt k=2)
Data mining - Curs 6 33
Bisecting Kmeans
• Varianta de algoritm de bisecţie bazat pe Kmeans

Data mining - Curs 6 34


Curs 7:

Gruparea datelor (II)

Data mining - Curs 7 1


Structura
 Metode bazate pe densitate

 DBSCAN
 DENCLUE

 Metode probabiliste
 EM - Expectation Maximization

Data mining - Curs 7 2


Metode bazate pe densitate
 Cluster = grup dens de date similare Densitate
separate de regiuni cu densitate mai mică mare
de date
 Idee de bază: estimarea densităţii locale
a datelor
 se determină numărul de date din
vecinătatea punctului analizat
(DBSCAN)
Densitate
 se utilizează funcţii de influenţă pt mică
estimarea densităţii (DENCLUE)

 Problema principală:
 Cum se estimează densitatea?

Data mining - Curs 7 3


DBSCAN
DBSCAN [M.Ester, H Kriegel et al, 1996] este un algoritm de grupare
bazat pe următoarele elemente:

 Densitatea estimată într-un punct = numărul de puncte aflate în


vecinătatea definită de o anumită rază (Eps)
 Un punct este considerat punct nucleu (core point) dacă numărul de
puncte din vecinătatea sa depăşeşte un prag(MinPts); acestea sunt
puncte considerate a fi în interiorul clusterului
 Un punct frontieră (border point) are un număr de vecini mai mic
decât MinPts dar este în vecinătatea unui punct nucleu; Două puncte
sunt considerate conectate dacă unul este în vecinătatea celuilalt
 Un punct q est accesibil direct (directly density reachable) dintr-un
punct nucleu p dacă e în vecinătatea lui p; accesibilitatea în sens
general este definită ca fiind închiderea tranzitivă a relaţiei de
accesibilitate directă (există un lanţ de puncte nucleu ce începe cu p
şi se termină cu q cu proprietatea că fiecare e direct accesibil dintr-
un punct anterior)
 Un punct de tip zgomot (noise point) este orice punct care nu e nici
nucleu nici frontieră Data mining - Curs 7 4
DBSCAN

Data mining - Curs 7 5


DBSCAN

p este accesibil din q a este accesibil din b


c este accesibil din b
Obs: => a şi c sunt conectate
 Două pcte, a şi b, dacă există un punct c astfel încât c este accesibil atât din a
cât şi din b
 Două puncte conectate ar trebui să aparţină aceluiaşi cluster => un cluster
definit pe baza densităţii este un set maximal de date conectate
Data mining - Curs 7 6
DBSCAN
DBSCAN (SetOfPoints, Eps, MinPts) // SetOfPoints is UNCLASSIFIED
ClusterId := nextId(NOISE);
FOR i FROM 1 TO SetOfPoints.size DO
Point := SetOfPoints.get(i);
IF Point.ClusterId = UNCLASSIFIED THEN
IF ExpandCluster(SetOfPoints, Point,ClusterId, Eps, MinPts)
THEN ClusterId := nextId(ClusterId)
END IF
END IF
END FOR
END; // DBSCAN

[M.Ester, H Kriegel et al, A Density-Based Algorithm for Discovering


Clusters in Large Spatial Databases with Noise, 1996]
7
DBSCAN
ExpandCluster(SetOfPoints, Point, ClId, Eps, MinPts) : Boolean;
seeds:=SetOfPoints.regionQuery(Point,Eps);
IF seeds.size<MinPts THEN SetOfPoint.changeClId(Point,NOISE); RETURN False;
ELSE // all points in seeds are density-reachable from Point
SetOfPoints.changeClIds(seeds,ClId); seeds.delete(Point);
WHILE seeds <> Empty DO
currentP := seeds.first(); result := SetOfPoints.regionQuery(currentP, Eps);
IF result.size >= MinPts THEN
FOR i FROM 1 TO result.size DO resultP := result.get(i);
IF resultP.ClId IN {UNCLASSIFIED, NOISE} THEN
IF resultP.ClId = UNCLASSIFIED THEN seeds.append(resultP); END IF;
SetOfPoints.changeClId(resultP,ClId);
END IF; // UNCLASSIFIED or NOISE
END FOR; END IF; // result.size >= MinPts
seeds.delete(currentP); END WHILE; // seeds <> Empty
RETURN True; END IF; END;
8
DBSCAN

Date (puncte) de Tipuri de puncte : core,


prelucrat border şi noise

Eps = 10, MinPts = 4


Data mining - Curs 7 9
DBSCAN

Date
Clustere
Specific:
• Permite identificarea clusterelor de diferite forme
• Robust Data mining - Curs 7 10
DBSCAN

(MinPts=4, Eps=9.75).

Original Points

Nu este adecvat pt:


• variaţii în densitatea datelor
• date de dimensiuni mari (cu
multe atribute)

Data mining - Curs 7 11


DENCLUE
 Cluster = grup dens de date similare
separate de regiuni cu densitate mai mică Densitate
de date mare

 Idee de bază: estimarea densităţii locale


a datelor
 se utilizează funcţii de influenţă pt
estimarea densităţii
Densitate
mică
Funcţie de influenţă Funcţie de densitate

 n 
 ∑ ( x j − y j )2  N
1
I y ( x) = n / 2 exp −
σ
1 j =1

2σ 2


f ( x) =
N
∑I
i =1
xi ( x)
 
 
Data mining - Curs 7 12
DENCLUE
 Forma funcţiei de densitate
depinde de valoarea lui σ

 Dacă valoarea lui σ este


adecvată, maximele locale ale
funcţiei de densitate corespund
reprezentanţilor clusterilor

 Pt valori mari ale lui σ fctia de


densitate are un maxim unic

 Pt valori prea mici ale lui σ


maximele locale corespund unor
vârfuri izolate şi pot fi dificil de
detectat

σ=0.1 σ=0.05 13
DENCLUE
Ideea algoritmului DENCLUE
[Hinneburg, Keim – 1998]: se aplică
de căutare de tip gradient pornind
de la punctele din setul de date cu
scopul identificării maximelor locale

Variante:
 Fiecare maxim local corespunde
unui cluster (clusterele detectate
vor fi sferice sau elipsoidale)

 Un cluster corespunde unui set


de maxime locale “învecinate” (se
pot identifica clustere de forma
arbitrara)

σ=0.1
Data mining - Curs 7 σ=0.05 14
Metode probabiliste
Idee de bay[:
 Datele sunt generate de un proces stohastic (o mixtură de distribuţii de
probabilitate, fiecare dintre ele corespunzând unui cluster)
 Scopul algoritmului de grupare este de a descoperi modelul probabilist,
adică de a identifica distribuţiile de probabilitate

Exemple:
 Algoritmul Expectation–Maximization (EM) – se bazează pe
următoarele ipoteze:
 Fiecare dată este generată de o distribuţie de probabilitate (tipul de
distribuţie depinde de natura datelor)
 În procesul de generare a datelor fiecare dintre distribuţiile de
probabilitate este selectată la rândul ei cu o anumită probabilitate

Data mining - Curs 7 15


Algoritmul EM
 Input: set de date D={x1,x2,…,xN}, K = număr de clustere
 Output: o partiţie P={C1,C2,…,CK} a setului D

Iniţializarea parametrilor modelelor şi a probabilităţilor de selecţie

• (E-Step) Se determină probabilitatea de asignare a fiecărei date la


clustere (folosind valorile curente ale parametrilor)
• (M-Step) Se determină parametrii modelului folosind valorile curente
ale probabilităţilor de asignare a datelor la clustere
Obs:
• In cazul datelor numerice se poate folosi distribuţia normală multi-
dimensională pentru a modela datele aparţinând unui cluster (modelul
de generare a datelor este o mixtură de gaussiene). Parametrii care se
estimează sunt media şi matricea de covarianţă.
Data mining - Curs 7 16
EM algorithm
Ex

Data Clustering Algorithms and applications (ed. CC Aggarwal, CK Reddy, 2014)


Data mining - Curs 7 17
Algoritmul EM
Ecuaţii care intervin in algoritmul EM

Data Clustering Algorithms and applications (ed. CC Aggarwal, CK Reddy, 2014)


Data mining - Curs 7 18
Curs 8:

Reguli de asociere

Data mining -Curs 8 1


Structura
 Motivaţie
 Problema coşului de cumpărături

 Concepte de bază
 Suport (support), încredere (confidence)
 Seturi frecvente (frequent itemset)

 Algoritmul Apriori

Data mining -Curs 8 2


Un exemplu
Analiza coşului de cumpărături (market basket analysis):

 Se consideră un set de înregistrări care conţin informaţii despre


produsele cumpărate de clienţii unui supermarket
 Fiecare înregistrare corespunde unei tranzacţii şi conţine lista
produselor achiziţionate

Exemplu:

T1: {milk, bread, meat, water}


T2: {bread, water}
T3: {bread, butter, meat, water}
T4: {water}

 Scop: identificarea produselor care sunt în mod frecvent achiziţionate


împreună cu scopul de a extrage informaţii utile pentru decizii de
marketing
Data mining -Curs 8 3
Motivaţie
Problema de rezolvat: fiind dat un set de tranzacţii să se găsească regulile
care descriu relaţii între apariţiile simultane ale unor produse în listele de
tranzacţii

Exemplu: IF “bread AND minced meat” THEN “mustard”

Obs: regulile de asociere exprimă doar relaţii de co-ocurenţă nu şi relaţii de


cauzalitate

La modul general o “tranzacţie” poate fi:


 Listă de produse sau servicii achiziţionate de către un client
 Lista de simptome asociate unui pacient
 Lista de cuvinte cheie sau nume de entităţi (named entities), adică nume
de persoane, instituţii, locaţii, identificate într-o colecţie de documente
 Liste de actions urmate de un utilizator într-o aplicaţie de gestiune a unei
reţele sociale

Data mining -Curs 8 4


Concepte de bază
T1: {milk, bread, meat, water}
T2: {bread, water}
T3: {bread, butter, meat, water}
 Entitate sau produs (item) T4: {water}
 Element al unei tranzacţii (e.g: “water”)
 Componentă a unei înregistrări: atribute=valoare (e.g. Vârsta =foarte
tînâr)
 Set de entităţi (itemset) = colecţie sau mulţime
 Exemplu: {bread, butter, meat, water}
 k-itemset = set de k entităţi
 Exemple de 2-itemset: {bread, water}
 Set frecvent (frequent itemset) = un set care apare în multe tranzacţii
 Frecvenţa set = nr de tranzacţii care conţin setul
 Exemplu: 2-itemset-ul {bread,water} apare în 3 dintre cele 4 tranzacţii

Data mining -Curs 8 5


Concepte de bază
T1: {milk, bread, meat, water}
T2: {bread, water}
T3: {bread, butter, meat, water}
T4: {water}

 Regulă de asociere = IF antecedent THEN consequent


(regulă ce conţine un itemset atât în partea de antecedent cât şi în cea de
concluzie)

 Exemplu: IF {bread,meat} THEN {water}

 Cum poate fi interpretată această regulă?


 Când se cumpără pâine şi carne există şansă mare să se cumpere şi
apă
 Câtă încredere putem avea într-o astfel de regulă? Cât este ea de utilă ?
Cum putem măsura calitatea unei reguli ?

Data mining -Curs 8 6


Concepte de bază
T1: {milk, bread, meat, water}
T2: {bread, water}
T3: {bread, butter, meat, water}
T4: {water}

 Suport (support)
 Pt un set: raportul dintre numărul tranzacţii ce conţin setul şi numărul
total de tranzacţii
 Pt o regulă: raportul dintre numărul tranzacţii ce conţin entităţile
prezente în regulă (atât în membrul stâng cât şi în cel drept) şi numărul
total de tranzacţii: supp(IF A THEN B)=supp({A,B})

Exemple:
 supp({milk,bread})=1/4=0.25
 supp({water})=4/4=1
 supp(IF {milk,bread} THEN {water})=supp({milk,bread,water})=1/4=0.25

Data mining -Curs 8 7


Concepte de bază
T1: {milk, bread, meat, water}
T2: {bread, water}
T3: {bread, butter, meat, water}
T4: {water}
 Coeficientul de încredere a unei reguli – confidence (IF A THEN B)
 Raportul dintre suportul setului {A,B} şi suportul lui {A}:
supp({A,B})/supp(A)
Exemple:
 R1: IF {milk,bread} THEN {water}
 supp({milk,bread,water})=1/4=0.25
 supp({milk,bread})=1/4=0.25
 conf(R1)=supp({milk,bread,water})/supp({milk,bread})=1
 Interpretare: în toate cazurile în care se cumpără lapte şi pâine se
cumpără şi apă.
 R2: IF {bread, water} THEN {meat}
 conf(R2)=supp({bread,water,meat})/supp({bread,water})=2/3=0.66
Data mining -Curs 8 8
Extragerea regulilor de asociere
T1: {milk, bread, meat, water}
T2: {bread, water}
T3: {bread, butter, meat, water}
T4: {water}

 Input: set de tranzacţii


 Output: set de reguli cu suport şi grad de încredere mai mare decât un prag
specificat S={R1,R2,….}, adică
Fiecare regulă R: IF A THEN B satisface
supp(R)=supp({A,B})
=nr tranzacţii ce conţin A şi B/ nr total tranzacţii > prag suport (e.g. 0.2)

conf(R)=supp({A,B})/supp(A) > prag încredere(e.g. 0.7)

Obs: pragurile sunt specificate de către utilizator (de regulă pragul pt suport este
mai mic decât cel pt încredere)
Data mining -Curs 8 9
Extragerea regulilor de asociere
Abordări:
 Forţă brută: se generează toate regulile după care se aplică filtre (first
generate then filter):
 Generează toate regulile pornind de la setul E de entităţi
 Pt fiecare submulţime A a lui E (considerată ca fiind membru stâng)
se selectează fiecare submulţime B a lui (E-A) cu rol de membru
drept şi se construieşte regula IF A THEN B
 Selectează regulile care satisfac restricţiile privind suportul şi
coeficientul de încredere
 OBS: o astfel de abordare este ineficientă; dacă N numărul total de entităţi
din E atunci numărul de reguli generate este:
N −1 N − k −1

∑ N
C k

k =1
∑ N −k
C i

i =1

Data mining -Curs 8 10


Extragerea regulilor de asociere
T1: {milk, bread, meat, water}
T2: {bread, water}
Forţa brută – exemplu: T3: {bread, butter, meat, water}
T4: {water}
 I={bread, butter, meat, milk, water}, N=5
 A={bread}; sunt 16 submulţimi ale lui E-A={butter, meat, milk, water}
care pot fi folosite cu rol de membru drept
 R1: IF {bread} THEN {butter}
 R2: IF {bread} THEN {meat}
 R3: IF {bread} THEN {milk}
 R4: IF {bread} THEN {water}
 R5: IF {bread} THEN {butter,meat}
 R6: IF {bread} THEN {butter, milk)
 …
 R16: IF {bread} THEN {butter, meat, milk, water}
 … R500840 (mai mult de 500000 reguli în cazul unei liste cu 5 entităţi)
Data mining -Curs 8 11
Extragerea regulilor de asociere
T1: {milk, bread, meat, water}
T2: {bread, water}
Forţa brută – exemplu: T3: {bread, butter, meat, water}
T4: {water}
 I={bread, butter, meat, milk, water}, N=5
 A={bread}; sunt 16 submulţimi ale lui E-A={butter, meat, milk, water}
care pot fi folosite cu rol de membru drept
 R1: IF {bread} THEN {butter} (supp(R1)=0.25, conf(R1)=0.33)
 R2: IF {bread} THEN {meat} (supp(R2)=0.5, conf(R2)=0.66)
 R3: IF {bread} THEN {milk} (supp(R3)=0.25, conf(R3)=0.33)
 R4: IF {bread} THEN {water} (supp(R4)=0.75, conf(R4)=1)
 R5: IF {bread} THEN {butter,meat} (supp(R5)=0.25, conf(R5)=1)
 R6: IF {bread} THEN {butter, milk) (supp(R6)=0.25, conf(R6)=1)
 …
 R16: IF {bread} THEN {butter, meat, milk, water}
(supp(R6)=0, conf(R6)=0)
Data mining -Curs 8 12
Extragerea regulilor de asociere
T1: {milk, bread, meat, water}
T2: {bread, water}
T3: {bread, butter, meat, water}
T4: {water}
Obs:
 Suportul regulii IF A THEN B este mai mare decât pragul doar dacă
suportul lui {A,B} este mai mare decât pragul

 Idee: ar fi util să se identifice prima dată seturi cu un suport mai mare decât
pragul şi apoi să se construiască reguli prin separarea setului între membrul
stâng şi membrul drept
 De exemplu, nu are sens să se caute reguli pt care {A,B}={bread, butter,
meat, milk, water}, întrucât suportul acestui set este 0
(in această abordare ar fi 2N-2 reguli care implică toate entităţile – toate
combinaţiile posibile în a le distribui astfel încât nici unul dintre cei doi membri
ai regulii să nu fie nul)

Data mining -Curs 8 13


Extragerea regulilor de asociere
T1: {milk, bread, meat, water}
T2: {bread, water}
T3: {bread, butter, meat, water}
Abordări mai eficiente: T4: {water}

 Apriori :
 Pas 1: Se determină toate seturile cu suportul mai mare decât pragul
specificat (e.g. 0.2) – acestea sunt seturile frecvente (frequent itemsets)
 Pas 2: Pt fiecare set se generează toate toate regulile posibiles
(distribuind elementele setului între membrul stâng şi membrul drept) şi
se selectează cele care au coeficientul de încredere mai mare decât
pragul (e.g. 0.7)

 Obs: problema principală este generarea seturile frecvente fără o analiză


exhaustivă a subseturilor (cum se face în abordarea bazată pe forţa brută)

Data mining -Curs 8 14


Extragerea regulilor de asociere
T1: {milk, bread, meat, water}
T2: {bread, water}
T3: {bread, butter, meat, water}
T4: {water}

Întrebare: Cum s-ar putea identifica seturile frecvente fără a genera toate
subseturile posibile?
Obs: orice subset al unui set frecvent trebuie să fie şi el frecvent (să aibă
suportul mai mare decât pragul)
Exemplu: supp({bread, water, meat})=0.5 =>
supp({bread})=0.66>0.5, supp({water})=1>0.5, supp({meat})=0.5
supp({bread,water})=0.66>0.5, supp({bread,meat})=0.5
supp({water,meat})=0.5

Idee: se construiesc seturile frecvente incremental pornind de la seturi


constituite dintr-un singur element
Data mining -Curs 8 15
Extragerea regulilor de asociere
T1: {milk, bread, meat, water}
T2: {bread, water}
T3: {bread, butter, meat, water}
Construirea seturilor frecvente T4: {water}
(prag pt suport: 0.3)
1-itemsets

{bread} supp({bread})=0.75
{butter} supp({butter})=0.25
{meat} supp({meat})=0.5
{milk} supp({milk})=0.25
{water} supp({water})=1

Data mining -Curs 8 16


Extragerea regulilor de asociere
T1: {milk, bread, meat, water}
T2: {bread, water}
T3: {bread, butter, meat, water}
Construirea seturilor frecvente T4: {water}
(prag pt suport: 0.3)
1-itemset-uri frecvente

{bread} supp({bread})=0.75
{butter} supp({butter})=0.25
{meat} supp({meat})=0.5
{milk} supp({milk})=0.25
{water} supp({water})=1

Data mining -Curs 8 17


Extragerea regulilor de asociere
T1: {milk, bread, meat, water}
T2: {bread, water}
T3: {bread, butter, meat, water}
Cosntruirea seturilor frecvente T4: {water}
(prag pt suport: 0.3)
1-itemset-uri 2-itemset-uri

{bread} supp({bread})=0.75 {bread,meat} supp({bread, meat})=0.5


{meat} supp({meat})=0.5 {bread,water} supp({meat,water})=0.75
{water} supp({water})=1 {meat,water} supp({water})=0.5

Data mining -Curs 8 18


Extragerea regulilor de asociere
T1: {milk, bread, meat, water}
T2: {bread, water}
T3: {bread, butter, meat, water}
Cosntruirea seturilor frecvente T4: {water}
(prag pt suport: 0.3)
1-itemset-uri 2-itemset-uri frecvente

{bread} supp({bread})=0.75 {bread,meat} supp({bread, meat})=0.5


{meat} supp({meat})=0.5 {bread,water} supp({breadt,water})=0.75
{water} supp({water})=1 {meat,water} supp({meat, water})=0.5

3-itemset-uri

{bread,meat,water} supp({bread, meat, water})=0.5

Data mining -Curs 8 19


Extragerea regulilor de asociere
T1: {milk, bread, meat, water}
Toate seturile frecvente cu cel puţin 2 entităţi T2: {bread, water}
(prag pt suport: 0.3) T3: {bread, butter, meat, water}
{bread,meat} supp({bread, meat})=0.5 T4: {water}
{bread,water} supp({bread,water})=0.75
{meat,water} supp({meat,water})=0.5
{bread,meat,water} supp({bread, meat, water})=0.5

Reguli
R1: IF {bread} THEN {meat} conf(R1)=1
R2: IF {meat} THEN {bread} conf(R2)=0.66
R3: IF {bread} THEN {water} conf(R3)=1
R4: IF {water} THEN {bread} conf(R4)=0.75
R5: IF {meat} THEN {water} conf(R5)=1
R6: IF {water} THEN {meat} conf(R6)=0.5
Data mining -Curs 8 20
Extragerea regulilor de asociere
T1: {milk, bread, meat, water}
Toate seturile frecvente cu cel puţin 2 entităţi T2: {bread, water}
(prag pt suport: 0.3) T3: {bread, butter, meat, water}
{bread,meat} supp({bread, meat})=0.5 T4: {water}
{bread,water} supp({bread,water})=0.75
{meat,water} supp({meat,water})=0.5
{bread,meat,water} supp({bread, meat, water})=0.5

Rules
R7: IF {bread} THEN {meat, water} conf(R7)=0.66
R8: IF {meat} THEN {bread, water} conf(R8)=1
R9: IF {water} THEN {bread, meat} conf(R9)=0.5
R10: IF {bread,meat} THEN {water} conf(R10)=1
R11: IF {bread,water} THEN {meat} conf(R11)=0.66
R12: IF {meat,water} THEN {bread} conf(R12)=1
Data mining -Curs 8 21
Extragerea regulilor de asociere
T1: {milk, bread, meat, water}
T2: {bread, water}
Toate regulile cu nivel de încredere ridicat T3: {bread, butter, meat, water}
(prag pt nivelul de încredere: 0.75) T4: {water}

R1: IF {bread} THEN {meat} conf(R1)=1


R3: IF {bread} THEN {water} conf(R3)=1
R4: IF {water} THEN {bread} conf(R4)=0.75
R5: IF {meat} THEN {water} conf(R5)=1
R8: IF {meat} THEN {bread, water} conf(R8)=1
R10: IF {bread,meat} THEN {water} conf(R10)=1
R12: IF {meat,water} THEN {bread} conf(R12)=1

Obs: doar 12 din cele mai mult de 500000 de reguli posibile sunt
generate; dintre acestea se selectează 7 reguli cu nivel ridicat de
încredere
Data mining -Curs 8 22
Extragerea regulilor de asociere
T1: {milk, bread, meat, water}
Întrebare: sunt toate regulile cu nivel ridicat de T2: {bread, water}
încredere şi interesante? (o regulă interesantă T3: {bread, butter, meat, water}
furnizează informaţie ne-trivială, nouă sau T4: {water}
neaşteptată)
Exemplu: regula IF {bread} THEN {water} are
coeficientul de încredere 1; furnizează
informaţie nouă?

Cum poate fi măsurat gradul de interes (noutate) a unei reguli?

Există diferite abordări. O variantă simplă este bazată pe Piatesky-Shapiro


argument care afirmă că antecedentul şi concluzia unei reguli nu ar trebui să fie
independente (în a sens statistic)
O regulă IF A THEN B este considerată interesantă dacă raportul (denumit “lift”
sau “interest”)
supp({A,B})/(supp(A)*supp(B)) nu este apropiat de 1
Data mining -Curs 8 23
Extragerea regulilor de asociere
T1: {milk, bread, meat, water}
T2: {bread, water}
Eliminarea regulilor cu nivel mic al interesului T3: {bread, butter, meat, water}
(cele pt care supp({A,B})=supp({A})*supp({B}) T4: {water}

R1: IF {bread} THEN {meat} supp(R1)=0.75, supp({bread})*supp({meat})=0.37


R3: IF {bread} THEN {water} supp(R3)=0.75, supp({bread})*supp({water})=0.75
R4: IF {water} THEN {bread} supp(R4)=0.75, supp({bread})*supp({water})=0.75
R5: IF {meat} THEN {water} supp(R5)=0.5, supp({meat})*supp({water})=0.5
supp(R8)=supp(R10)=supp(R12)=0.5
R8: IF {meat} THEN {bread, water} supp({meat})*supp({bread, water})=0.37
R10: IF {bread,meat} THEN {water} supp({bread,meat})*supp({water})=0.5
R12: IF {meat,water} THEN {bread} supp({meat, water})*supp({bread})=0.37

Data mining -Curs 8 24


Algoritmul Apriori
Structura generală:

Pas 1: Se generează lista de seturi frecvente incremental pornind de la seturi cu


un element şi folosind proprietatea de anti-monotonie a măsurii suport

Pt orice submulţime B a setului A: supp(B)>=supp(A)

(principala implicaţie a acestei proprietăţi este că la construirea unui k-itemset se


folosesc doar seturi mai mici care au o valoarea a suportului mai mare decât
pragul)

Pas 2: Se construieşte lista de reguli analizând toate subseturile seturilor


frecvente

Data mining -Curs 8 25


Algoritmul Apriori
Exemplu: construirea incrementala a submulţimilor unei mulţimi cu 5 elemente
{A,B,C,D,E} null

A B C D E

AB AC AD AE BC BD BE CD CE DE

ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE

ABCD ABCE ABDE ACDE BCDE

ABCDE

Data mining -Curs 8 26


Algoritmul Apriori
Exemplu: construirea incrementala a submulţimilor unei mulţimi cu 5 elemente
{A,B,C,D,E} null
Observaţii
A B C D E

 Dacă {A} are un suport


mic atunci spaţiul de
AB AC AD AE BC BD BE CD CE DE
căutare poate fi redus
prin eliminarea tuturor
seturilor care îl includ pe
A
ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE

 Pt a construi un (k+1)-
itemset este suficient să
ABCD ABCE ABDE ACDE BCDE se reunească 2 k-itemset-
uri frecvente care au (k-
1) elemente comune
ABCDE

Data mining -Curs 8 27


Algoritmul Apriori
Algoritm pentru generarea seturilor frecvente:

 k=1
 Se generează seturile frecvente cu 1 element

 Repeat
 Generează (k+1) – itemset-uri candidat reunind k-itemset-uri care au k-1
elemente comune
 Determină suportul item-set-urilor candidat (necesită parcurgerea setului de
tranzacţii)
 Elimină k-itemset-urile candidat care nu sunt frecvente
Until nu se mai identifica seturi frecvente noi

Data mining -Curs 8 28


Algoritmul Apriori
Algoritm pt generarea regulilor pornind de la lista L de itemset-uri frecvente:

 Initializează lista LR de reguli (lista vidă)


 FOR fiecare itemset IS din L
 FOR fiecare submulţime A a lui IS se construieşte regula
R(A,IS): IF A THEN IS-A
 Calculează nivelul de încredere al regulii R(A,IS) şi dacă e mai mare decât
pragul se adaugă R(A,IS) la LR

Obs:
 Pt fiecare k-itemset pot fi generate 2k-2 rules (regulile cu membru stâng sau
drept vid se ignoră)
 Pt a limita nr de reguli pt care se calculează nivelul de încredere se poate folosi
proprietatea: nivelul de încredere este mai mare dacă cardinalitatea
antecedentului este mai, i.e
conf({A,B,C} → D) ≥ conf({A,B} → {C,D}) ≥ conf({A} → {B,C,D})

Data mining -Curs 8 29


Algoritmul Apriori
Eliminarea regulilor (pruning)
ABCD=>{ }
Nivel de
încredere
scăzut
BCD=>A ACD=>B ABD=>C ABC=>D

CD=>AB BD=>AC BC=>AD AD=>BC AC=>BD AB=>CD

D=>ABC C=>ABD B=>ACD A=>BCD


Reguli
eliminate
Data mining -Curs 8 30
Algoritmul Apriori
Alte idei pentru a reduce volumul de calcule in procesul de generare a regulilor
pornind de la seturi frecvente:

 Este mai eficient dacă se porneşte cu itemset-urile mari


 Noi reguli pot fi construite prin reunirea unor reguli existente

Exemplu:
• join(IF {C,D} THEN {A,B}, IF {B,D} THEN {A,C}) conduce la regula
IF {D} THEN {A,B,C}

• Dacă regula IF {A,D} THEN {B,C} are nivelul de încredere mai mic decât pragul
atunci regula reunită ar trebui eliminată (va avea nivelul de încredere mai mic)

Data mining -Curs 8 31


Algoritmul Apriori
Influenţa pragurilor:

 Dacă pragul pt suport este prea mare atunci se pot pierde itemset-uri care
includ entităţi rare (de exemplu produse scumpe, sau simptome rare)

 Dacă pragul pt suport este prea mic atunci numărul de itemset-uri generate
este mare şi costul de calcul e mare

Data mining -Curs 8 32


Curs 9:

Modele de regresie

Data Mining - curs 9 1


Structura
 Motivaţie

 Corelaţii, coeficient de corelaţie

 Regresie liniară

 Modele neliniare
 Arbori de regresie
 Reţele RBF

Data Mining - curs 9 2


Motivaţie
Problema: Pornind de la caracteristici cunoscute ale unei maşini (e.g. Nr cilindri,
cai putere, greutate, model etc) se doreşte estimarea consumului de combustibil
(e.g. exprimat prin “miles per gallon”)

Exemplu [autoMpg.arff de la http://archive.ics.uci.edu/ml/datasets.html]


@relation autoMpg
@attribute cylinders { 8, 4, 6, 3, 5} @attribute displacement real
@attribute horsepower real @attribute weight real @attribute acceleration real
@attribute model { 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82}
@attribute origin { 1, 3, 2}
@attribute class real
@data
8,307,130,3504,12,70,1,18
8,350,165,3693,11.5,70,1,15
4,113,95,2372,15,70,3,24
6,198,95,2833,15.5,70,1,22
6,199,97,2774,15.5,70,1,18

Data Mining - curs 9 3


Motivation
Problema: Pornind de la caracteristici cunoscute ale unei maşini (e.g. Nr cilindri,
cai putere, greutate, model etc) se doreşte estimarea consumului de combustibil
(e.g. exprimat prin “miles per gallon”)

Exemplu [autoMpg.arff de la http://archive.ics.uci.edu/ml/datasets.html]


@relation autoMpg
@attribute cylinders { 8, 4, 6, 3, 5} @attribute displacement real
@attribute horsepower real @attribute weight real @attribute acceleration real
@attribute model { 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82}
@attribute origin { 1, 3, 2}
@attribute class real
Se caută o relaţie care să descrie dependenţa
@data
8,307,130,3504,12,70,1,18
dintre consumul de combustibil (atributul class în
8,350,165,3693,11.5,70,1,15
setul de date) şi caracteristicile maşinii (primele
4,113,95,2372,15,70,3,24 7 atribute din setul de date)
6,198,95,2833,15.5,70,1,22
6,199,97,2774,15.5,70,1,18

Data Mining - curs 9 4


Un exemplu mai simplu
Câteva seturi de date generate artificial
y Set 3
y Set 1

x
x
y Ce se poate spune despre datele
Set 2 din fiecare set?

x Data Mining - curs 9 5


Un exemplu mai simplu
Câteva seturi de date generate artificial
y Set 3
y Set 1

x
x
y Set 1: datele par să fie corelate pozitiv
Set 2 = dacă x creşte atunci şi y creşte

x Data Mining - curs 9 6


Un exemplu mai simplu
Câteva seturi de date generate artificial
y Set 3
y Set 1

x
x
y Set 2: datele par să fie corelate negaitiv
Set 2 = dacă x creşte atunci y scade

x Data Mining - curs 9 7


Un exemplu mai simplu
Câteva seturi de date generate artificial
y Set 3
y Set 1

x
x Set 3: datele par să nu fie corelate (e doar un
y nor de puncte)
Set 2 Intrebari:
 Cum poate fi masurat gradul de corelaţie?
 Ce tip de corelaţie există?

x Data Mining - curs 9 8


Coeficient de corelaţie
Cum poate fi masurat gradul de corelaţie?
[reminder – Probabilităţi şi Statistică]
 De exemplu folosind coeficientul de correlation Pearson – exprimă gradul
de corelaţie liniară dintre cele două variabile

1 n
n
∑ ( xi − avg ( X ))( yi − avg (Y ))
Obs: -1<=R(X,Y)<=1
R( X , Y ) = i =1
stdev ( X ) stdev (Y )
 R(X,Y) apropiat 1: corelaţie
liniară pozitivă
n
1
stdev ( X ) = ∑
n i =1
( xi − avg ( X )) 2
 R(X,Y) apropiat to -1: corelaţie
liniară negaitivă
1 n  R(X,Y) apropiat to 0: nu sunt
stdev (Y ) = ∑
n i =1
( yi − avg (Y )) 2 corelate liniar (poate exista
corelaţie neliniară între X şi Z)
1 n 1 n
avg ( X ) = ∑ xi , avg (Y ) = ∑ yi
n i =1 n i =1
Data Mining - curs 9 9
Regresie liniară
Ce tip de corelaţie ? [reminder – Statistică]
Cazul cel mai simplu: Dependenţa liniară dintre două variabile: Y=w1X+w0
 X= variabila predictor (independentă, intrare, explicativă)
 Y= variabila prezisă (dependentă, răspuns, explicată)
Scopul regresiei liniare: estimarea parametrilor w1 şi w0 a.î. valorile asociate
variabilelor X (i.e. x1,x2,…, xn) şi Y (i.e. y1,y2,…, yn) sunt bine explicate de către
funcţia liniară, i.e. Suma pătratelor erorilor este minimizată

y SSE ( w1 , w0 ) = ∑ ( yi − ( w1 xi + w0 )) 2
Set 1 i =1
n
= ∑ ( yi − w xi ) 2
i =1

( w = ( w1 , w0 ), xi = ( xi ,1)T )
Vector linie Vector coloană

x Data Mining - curs 9 10


Regresie liniară simplă
Reminder: algebra liniară
T
 x1 x2 ... xn 
w = ( w1 , w0 ), D =   , y = ( y1 , y2 ,..., yn )T
1 1 ... 1 
T 2
SSE ( w) = y − Dw = ( y − DwT )T ( y − DwT )
= y T y − 2 wD T y + wD T DwT

Determinarea vectorului w care minimizează SSE(w) este echivalentă cu


determinarea punctului critic al lui SSE, adică rezolvarea următoarelor ecuaţii
în raport cu w:
D T DwT = D T y ⇒ wT = ( D T D) −1 D T y = D + y
D + = ( D T D) −1 D T este pseudoinversa lui D

Data Mining - curs 9 11


Regresie liniară multiplă
Obs: abordarea poate fi extinsă în cazul mai multor variabile predictor (e.g.
Setul autoMPG)
T
 x11 x12 ... x1n 
 
 x21 x22 ... x2 n 
w = ( w1 , w2 ,..., wd , w0 ), D =  ... ... ... ...  , y = ( y1 , y2 ,..., yn )T
 
 xd 1 xd 2 ... xdn 
 1
 1 ... 1 
T 2
SSE ( w) = y − Dw = ( y − DwT )T ( y − DwT )
= y T y − 2 wD T y + wD T DwT

D T DwT = D T y ⇒ wT = ( D T D ) −1 D T y
Data Mining - curs 9 12
Regresie liniară - regularizare
Obs: dacă matricea DTD este singulară (inversa nu poate fi calculată) atunci
funcţia obiectiv (SSE) este modificată prin adăugarea unui termen de
regularizare care va modifica matricea in aşa fel încât să se obţină o matrice
inversabilă).
Exemple:
 Regularizare Tikhonov (ridge regression)

SSE ' ( w) = SSE ( w) + λ w


2

w = ( D T D + λI ) −1 D T y
I = ( d + 1) × ( d + 1) matrice identitate

Obs:
 Termenul de penalizare “descurajează” valorile mari ale parametrilor
 Parametrul termenului de regularizare (lambda) poate fi ales în manieră
adaptivă folosind validare încrucişată
Data Mining - curs 9 13
Regresie liniară - regularizare
Obs: dacă matricea DTD este singulară (inversa nu poate fi calculată) atunci
funcţia obiectiv (SSE) este modificată prin adăugarea unui termen de
regularizare care va modifica matricea in aşa fel încât să se obţină o matrice
inversabilă).
Exemple:
 Regularizare Lasso
d
SSE ' ( w) = SSE ( w) + λ ∑ | wi |
i =1

Obs:
 In acest caz problema de optimizare se rezolvă folosind metode numerice
 Este utilă în cazul problemelor cu multe variabile dintre care o mare parte
sunt irelevante (specific pt “sparse models”)

Data Mining - curs 9 14


Modele liniare generalizate
Idee: în loc de yi=w1xi+w0 ieşirea (yi) este modelată printr-o variabilă aleatoare
care are media f(w1xi+w0)

Principalele elemente ale unui model GLM (generalized linear model):


 Funcţia de medie (mean function): f
 Funcţia de legătură (link function): f-1
 Distribuţia de probabilitate (probability distribution)

Mean function Link function Distribution


f(u)=u identity normal
f(u)=-1/u inverse exponential, gamma
f(u)=exp(u) Log Poisson
f(u)=1/(1+exp(-u)) Logit Bernoulli

Data Mining - curs 9 15


Modele liniare generalizate
Idee: în loc de yi=w1xi+w0 ieşirea (yi) este modelată printr-o variabilă aleatoare
care are media f(w1xi+w0)

Principalele elemente ale unui model GLM (generalized linear model):


 Funcţia de medie (mean function): f
 Funcţia de legătură (link function): f-1
Regresie
 Distribuţia de probabilitate (probability distribution)
clasică
(metoda celor
Mean function Link function Distribution mai mici
f(u)=u identity normal pătrate)
f(u)=-1/u inverse exponential, gamma
f(u)=exp(u) Log Poisson
f(u)=1/(1+exp(-u)) Logit Bernoulli

Data Mining - curs 9 16


Modele liniare generalizate
Idee: în loc de yi=w1xi+w0 ieşirea (yi) este modelată printr-o variabilă aleatoare
care are media f(w1xi+w0)

Principalele elemente ale unui model GLM (generalized linear model):


 Funcţia de medie (mean function): f
 Funcţia de legătură (link function): f-1
 Distribuţia de probabilitate (probability distribution)

Mean function Link function Distribution


f(u)=u identity normal
f(u)=-1/u inverse exponential, gamma
f(u)=exp(u) Log Poisson Regresie
logistică
f(u)=1/(1+exp(-u)) Logit Bernoulli

Data Mining - curs 9 17


Regresie neliniară
Cum se abordează cazul în care dependenţa dintre variabila prezisă şi cele
predictor nu este liniară?

Sunt necesare alte modele Exemple:

 Arbori de regresie
 Reţele neuronale
y Set 4

x
Data Mining - curs 9 18
Regresie neliniară
Ideea principală:
 O dependenţă neliniară poate fi modelată prin mai multe funcţii liniare (câte
una pentru fiecare regiune)
 Procesul de regresie constă din două etape:

 Identificarea regiunilor prin partiţionarea spaţiului variabilelor


predictor
 Identificarea modelului de regresie (liniar) pt fiecare dintre regiuni
y

a b x
Data Mining - curs 9 19
Arbori de regresie
Reminder:
Arbori de decizie= arbore în care nodurile interne conţine condiţii referitoare la
variabilele predictor iar cele frunză sunt informaţii privind variabila predictor (în
cazul arborilor de clasificare variabila prezisă este discretă şi nodurile frunză
conţin indicatori de clasă)

Data Mining - curs 9 20


Arbori de regresie
Reminder:
Arbori de decizie= arbore în care nodurile interne conţine condiţii referitoare la
variabilele predictor iar cele frunză sunt informaţii privind variabila predictor (în
cazul arborilor de clasificare variabila prezisă este discretă şi nodurile frunză
conţin indicatori de clasă)

Intrebare:
 Dar dacă variabila prezisă este
continuă? (ex: în locul unui
răspuns de tipul da/nu în cazul
problemei “weather-play” ar fi o
valoare [0,1] care ar exprima un
nivel de decizie între 0 (nu) şi 1
(da)

Data Mining - curs 9 21


Arbori de regresie
Ideea principală:
 Se utilizează un proces similar de partiţionare a spaţiului de decizie ca şi în
cazul arborilor de clasificare
 Pt variabile predictor continue condiţia de ramificare este: variabila <
valoare sau variabila > valoare sau variabila in [min,max]
 Se deduce un model de regresie (de exemplu liniar) pt fiecare dintre
regiunile identificate prin procedura de ramificare
Exemplu foarte simplu -> model
liniar pe porţiuni
y
x<a

x<b

y=x+1
y=a+1 y=a+b+1-x

a b x
Data Mining - curs 9 22
Regresie neliniară
Dincolo de modelele de regresie liniară pe porţiuni:
 Se extinde modelul clasic de regresie liniară considerând atribute
transformate prin intermediul unor funcţii
y=w0+w1h1(x)+w2h2(x)+…+wmhm(x)
(x e un vector hi e o funcţie ce asociază un scalar sau un vector argumentului
său)
Caz particular 1. Modele polinomiale: y= w0+w1x+w2x2+…+wmxm
(x este un scalar) Caz particular 2.
Modele bazate pe funcţii nucleu (kernel
y
functions): hi sunt funcţii care iau valori
semnificative doar pr regiuni limitate din
spaţiul variabilelor predictor
 Dacă aceste funcţii au simetrie radială
(de exemplu funcţii gaussiene) se
ajunge la reţelele de tip RBF (un caz
particular de reţele neuronale)
x
Data Mining - curs 9 23
Rețele cu funcții radiale
• RBF - “Radial Basis Function”:
N K M
• Arhitectura:
C W
– Două nivele de unități
funcționale
centri ponderi

– Funcții de agregare: N
• Unități ascunse: distanța dintre G( X , C ) = X − C
k k
= ∑ i i)
( x − c k 2

vectorul de intrare și cel al i =1


ponderilor corespunzătoare
unității ascunse Funcții de transfer (activare):
- nivelul ascuns: funcții cu simetrie
• Unități de ieșire: suma radială
ponderată
- nivelul de ieșire: funcții liniare

Data Mining - curs 9 24


Rețele cu funcții radiale
Funcție sigmoidală
Diferența față de rețelele
feedforward clasice:

Funcții de transfer:
FF: funcții sigmoidale
RBF: funcții cu simetrie radială

Funcții cu simetrie radială


1

0.8

0.6

0.4

0.2

-3 -2 -1 1 2 3
Data Mining - curs 9 25
Rețele cu funcții radiale
Funcționare:
K
yi = ∑ wik g ( X − C k ) − wi 0 , i = 1, M
k =1
N K M
K
yi = ∑ wik z k − wi 0 , z k = g ( X − C k ) C W
k =1
Matrice centri Matrice ponderi

Parametrii Ck pot fi interpretați ca prototipuri (centri) asociați unităților


ascunse: vectorii de intrare X apropiați lui Ck vor conduce la o
valoarea de ieșire semnificativă pe când cei îndepărtați vor
conduce la o valoare de ieșire nesemnificativă; la construirea
răspunsului rețelei vor contribui doar unitățile a căror centri sunt
suficient de similari cu data de intrare

Data Mining - curs 9 26


Rețele cu funcții radiale
Exemple de funcții radiale: g3 (σ=1)
1

0.8

0.6 g2 (σ=1)
g1 (u ) = exp(−u 2 /(2σ 2 )) 0.4
g 2 (u ) = 1 /(u 2 + σ 2 ) 0.2

g 3 (u ) = 1 / u 2 + σ 2
-3 -2 -1 1 2 3

g1 (σ=1)

Data Mining - curs 9 27


Rețele cu funcții radiale
• Fiecare unitate ascunsă este
“sensibilă” la semnalele de intrare
provenite dintr-o regiune a spațiului de
intrare aflată în vecinatatea centrului.
Aceasta regiune este denumită câmp
receptiv
• Dimensiunea câmpului receptiv
depinde de σ

 u2 
1 g (u ) = exp − 2 
0.8
σ =1.5  2σ 
σ =1 0.6

0.4

0.2

-3 -2 -1 1 2 3

σ =0.5 Data Mining - curs 9 28


Rețele cu funcții radiale
 u2 
Influența lui σ: g (u ) = exp − 2 
1
 2σ 
0.8

0.6

0.4

0.2

-10 -7.5 -5 -2.5 2.5 5 7.5 10

subacoperire supraacoperire
Data Mining - curs 9 29
Rețele cu funcții radiale
• O bună acoperire a domeniului datelor Acoperire adecvată
de intrare de către câmpurile receptive
ale funcțiilor radiale de transfer este
esențială pentru calitatea aproximării
• Valori prea mici conduc la incapacitatea
de a produce rezultate pentru întreg
domeniul datelor
σ=1
• Valori prea mari nu surprind
variabilitatea datelor

σ=0.01

σ=100

Supraacoperire
Subacoperire Data Mining - curs 9 30
Rețele cu funcții radiale
Exemplu (caz particular) : rețea RBF pentru reprezentarea lui XOR
• 2 unități de intrare
• 4 unități ascunse
• 1 unitate de ieșire Centrii: Ponderi:
u.a. 1: (0,0) w1: 0
0 u.a. 2: (1,0) w2: 1
1 u.a. 3: (0,1) w3: 1
u.a. 4: (1,1) w4: 0
1
Funcție de activare:
0 g(u)=1 if u=0
g(u)=0 if u<>0

Aceasta abordare nu poate fi aplicată pentru probleme generale de


aproximare
Data Mining - curs 9 31
Rețele cu funcții radiale
Invățare:
Set de antrenare: {(x1,d1), …, (xL,dL)}

Etape:
(a) Stabilirea parametrilor corespunzatori nivelului ascuns: centrii
C și parametrii σ

(b) Determinarea parametrilor W (problemă de optimizare liniară)

Obs: Invățarea de tip RBF elimină o parte dintre dezavantajele


algoritmului BP: convergența lentă, blocarea în minime locale
(întrucât se ajunge la rezolvarea unei probleme mai simple de
optimizare) etc.

Data Mining - curs 9 32


Rețele cu funcții radiale
Invățare:
Set de antrenare: {(x1,d1), …, (xL,dL)}

(a) Stabilirea parametrilor corespunzători nivelului ascuns: centrii


C și parametrii σ
(a) K=L (nr centri = nr exemple), Ck=xk

(b) K<L : centrii se stabilesc


(a) prin selecție aleatoare dintre exemplele din setul de antrenare
(b) prin selecție sistematică dintre exemplele din setul de
antrenare (Orthogonal Least Squares)
(c) prin utilizarea unui algoritm de grupare (poate permite și
estimarea numărului de centri) – in acest caz centrii nu vor
face neapărat parte din setul de antrenare

Data Mining - curs 9 33


Rețele cu funcții radiale
Orthogonal Least Squares:

• Selecție incrementală a centrilor astfel încât eroarea să fie


micșorată cât mai mult

• Noul centru este ales astfel încât să fie ortogonal pe spațiul


generat de către centrii deja selectați (procesul este bazat pe
metoda de ortogonalizare Gram-Schmidt)

• Abordarea este corelată cu regresia de tip “ridge”

Data Mining - curs 9 34


Rețele cu funcții radiale
Grupare (clustering):

•Se urmărește identificarea a K clase în setul de date de antrenare


{X1,…,XL} astfel încât datele din fiecare clasă să fie suficient de
similare pe când datele din clase diferite să fie suficient de diferite

•Fiecare clasă va avea un reprezentant (e.g. media datelor din


clasă) care va fi considerat centrul clasei

•Algoritmii pentru determinarea reprezentanților clasei sunt


cunoscuți sub numele de algoritmi partiționali (realizează o
partiționare a spațiului de intrare)

Algoritm clasic: K-means

Data Mining - curs 9 35


Rețele cu funcții radiale
Varianta incrementală:
• Se pornește cu un număr mic de centri inițializați aleator

• Se parcurge setul de antrenare:


– Dacă există un centru suficient de similar cu data de intrare
atunci componentele centrului respectiv se modifică pentru
a asigura asimilarea datei de intrare în clasa aferentă
centrului.
– Dacă data de intrare este diferită semnificativ de toți centrii
atunci este adăugat un nou centru (echivalent cu adăugarea
unei noi unități ascunse) care este inițializat chiar cu data de
intrare analizată
Obs: necesită definirea unor valor prag care sa permită
cuantificarea pt suficient de similar/diferit
Data Mining - curs 9 36
Rețele cu funcții radiale
Antrenare incrementală pentru rețele RBF
K = K0
Cik = select ({ X 1i ,… ,X Li } ), i = 1.. N ; k = 1.. K
t=0
REPEAT
FOR l = 1, L DO
determina k * ∈ {1,..., K } astfel incat d ( X l , C k * ) ≤ d ( X l , C k ) pt orice k
IF d ( X l , C k * ) < δ THEN C k * := C k * + η ⋅ ( X l − C k * )
ELSE K = K + 1; C K = X l
t = t +1
η = η0t −α
UNTIL t > tmax OR η < ε

Data Mining - curs 9 37


Rețele cu funcții radiale
Estimarea lărgimilor câmpurilor receptive.

• Reguli euristice:
d max
σ= , d max = distanta maxima dintre centri
2K
σ k = γd (C k , C j ), C j = centrul cel mai apropiat de C k , γ ∈ [0.5,1]
m


1
σk = d (C k , C j ), C 1 ,..., C m : cei mai apropiati m centri de C j
m j =1

• Proces iterativ intercalat:


– Fixează valorile σ și optimizează valorile centrilor
– Fixează valorile centrilor și optimizează valorile σ

Data Mining - curs 9 38


Rețele cu funcții radiale
Determinarea ponderilor conexiunilor dintre nivelul ascuns și nivelul
de ieșire:
• Problema este similară cu cea a antrenării unei rețele cu un
singur nivel de unități cu funcții liniare de activare sau cu cea a
estimării parametrilor unui model liniar de regresie
2
1 L M
 l K
l 
E (W ) = ∑∑ 
2 l =1 i =1 
d i − ∑
k =1
wik k  , g k = g ( x − C )
g

l l k

2
1 L l 1 L l
E (W ) = ∑ d − Wg l = ∑ (d − Wg l )T (d l − Wg l )
2 l =1 2 l =1
L
∇E (W ) = −∑ ( g l )T (d l − Wg l ) = 0
l =1

G T GW = G T d
W = (G T G ) −1 G T d
Data Mining - curs 9 39
Rețele cu funcții radiale
Determinarea ponderilor conexiunilor dintre nivelul ascuns și nivelul de
ieșire:
• Problema este similară cu cea a antrenării unei rețele cu un singur
nivel de unități cu funcții liniare de activare
• Algoritm: Widrow-Hoff (caz particular al algoritmului BackPropagation)

 Initializare:
wij(0):=rand(-1,1) (ponderile sunt inițializate aleator în [-1,1]),
p:=0 (contor de iterații)
 Proces iterativ
REPEAT
FOR l:=1,L DO
Calculeaza yi(l) si deltai(l)=di(l)-yi(l), i=1,M
Ajusteaza ponderile: wik:=wik+eta*deltai(l)*zk(l)
ENDFOR
Calculează E(W) pentru noile valori ale ponderilor
p:=p+1
UNTIL E(W)<E* OR p>pmax
Data Mining - curs 9 40
Comparație: RBF vs. BP
Rețele de tip RBF: Rețele de tip
BackPropagation(BP):
• 1 nivel ascuns • Mai multe nivele ascunse
• Funcții de agregare bazate pe • Funcții de agregare bazate pe
distanțe (pt. nivelul ascuns) suma ponderată
• Funcții de activare cu simetrie • Funcții de activare sigmoidale
radială (pt. nivelul ascuns) (pt. nivelul ascuns)
• Unități de ieșire cu funcție • Unități de ieșire liniare sau
liniară neliniare
• Antrenare simultană a
• Antrenare separată a
parametrilor adaptivi
parametrilor adaptivi
• Similare cu tehnicile de
• Similare cu tehnicile de aproximare globală
aproximare locală

Data Mining - curs 9 41


Curs 10:

Analiza seriilor de timp

Data mining - Curs 10 1


Structura
 Motivaţie

 Pre-procesarea seriilor de timp

 Predicţie

 Identificare şabloane

 Grupare şi clasificare

 Detecţie anomalii

Data mining - Curs 10 2


Motivaţie
Problema: Se cunosc date săptămânale privind indexul Dow Jones şi se doreşte
identificarea acţiunilor pentru care creşterea de profit va fi cea mai mare în
săptămâna care urmează
Set date: Dow Jones Index (UCI Machine Learning, provided by (Brown, Pelosi
& Dirska, 2013) - 750 înregistrări, 16 atribute

Exemple de companii cotate şi pt care sunt înregistrate informaţii:

3M MMM Cisco Systems CSCO


American Express AXP Coca-Cola KO
Alcoa AA DuPont DD
AT&T T ExxonMobil XOM
Bank of America BAC General Electric GE
Boeing BA Hewlett-Packard HPQ
Caterpillar CAT The Home Depot HD
Chevron CVX Intel INTC
IBM
Data mining - Curs 10 3
Motivaţie
Problema: care acţiune va înregistra cea mai mare creştere în săptămâna care
urmează?

Exemplu [Dow Jones Index from http://archive.ics.uci.edu/ml/datasets.html]


16 atribute
quarter: the yearly quarter (1 = Jan-Mar; 2 = Apr-Jun).
stock: the stock symbol (lista de pe slide-ul anterior)
date: the last business day of the work (de obicei e Vineri)
open: the price of the stock at the beginning of the week
high: the highest price of the stock during the week
low: the lowest price of the stock during the week
close: the price of the stock at the end of the week
volume: the number of shares of stock that traded hands in the week
percent_change_price: the percentage change in price throughout the week
percent_change_volume_over_last_wek: the percentage change in the number of
shares of stock that traded hands for this week compared to the previous week
previous_weeks_volume: the number of shares of stock that traded hands in the
previous week Data mining - Curs 10 4
Motivaţie
Problema: care acţiune va înregistra cea mai mare creştere în săptămâna care
urmează?

Exemplu [Dow Jones Index from http://archive.ics.uci.edu/ml/datasets.html]


16 atribute

next_weeks_open: the opening price of the stock in the following week


next_weeks_close: the closing price of the stock in the following week
percent_change_next_weeks_price: the percentage change in price of the stock in
the following week
days_to_next_dividend: the number of days until the next dividend
percent_return_next_dividend: the percentage of return on the next dividend

Data mining - Curs 10 5


Motivaţie
Problema: care acţiune va înregistra cea mai mare creştere în săptămâna care
urmează?

Exemplu [Dow Jones Index de la http://archive.ics.uci.edu/ml/datasets.html]


16 atribute
percent_change_next_weeks_price: the percentage change in price of the stock in
the following week

IBM HP
Data mining - Curs 10 6
Motivaţie
Problema: care acţiune va înregistra cea mai mare creştere în săptămâna
care urmează?

Exemplu [Dow Jones Index de la http://archive.ics.uci.edu/ml/datasets.html]


16 atribute
percent_return_next_dividend: the percentage of return on the next dividend

IBM HP
Data mining - Curs 10 7
Motivaţie
Pe lângă datele financiare există o mulţime de alte surse de serii de timp:

 Senzori:
 Date de mediu colectate prin intermediul diferitelor tipuri de senzori
(temperatura, presiune, umiditate)

 Date medicale
 Electrocardiograma (ECG)
 Electroencefalograma (EEG)
 Date de monitorizare în timp reali a pacienţilor de la terapie intensivă

 Date de tip “web log” (clickstream data)


 Secvenţe indicând vizite ale unor pagini web

Data mining - Curs 10 8


Motivaţie
Pe lângă datele financiare există o mulţime de alte surse de serii de timp:
 Senzori:
 Date de mediu colectate prin intermediul diferitelor tipuri de senzori
(temperatura, presiune, umiditate)
Task: predicţie valori viitoare
 Date medicale
 Electrocardiograma (ECG)
 Electroencefalograma (EEG)
 Date de monitorizare în timp reali a pacienţilor de la terapie intensivă
Task: identificare comportament anormal

 Date de tip “web log” (clickstream data)


 Secvenţe indicând vizite ale unor pagini web

Task: identificare tipare de utilizare, profile de utilizatori

Data mining - Curs 10 9


Serii de timp
Exemplu 1 (percentage of return on the next dividend for first 10 weeks included in
Dow Jones Index dataset)

0.177, 0.172 ,0.169, 0.175, 0.168, 0.164, 0.164, 0.187, 0.187, 0.191

Momentul de timp nu apare ca variabilă explicită. Totuşi valorile specificate trebuie


interpretate în contextul unor momente de timp.

 Timpul este atribut contextual


 Valoarea înregistrată este atribut comportamental

Exemplu 2 (temperatura la prânz înregistrată în 7 zile consecutive)

21, 24, 23, 25, 22, 19, 20


Atributul contextual este timpul, cel comportamental este temperatura

Data mining - Curs 10 10


Serii de timp
Există diferite tipuri de serii de timp (temporale)

In raport cu domeniul de timp:


 Continue (e.g. EEG)
 Discrete (denumite secvenţe)

In raport cu atributele comportamentale


 Univariate (un atribut)
 Multivariate (mai multe atribute)

Data mining - Curs 10 11


Pre-procesarea seriilor de timp
Valori absente

Problema:
 Lipsesc valori corespunzătoare unor momente de timp (de exemplu din
cauza unor defecte ale senzorilor)
 In special când sunt mai multe atribute comportamentale )colectate de
senzori independenţi) ar trebui asigurată sincronizarea între serii, în special
prin completarea valorilor absente

Soluţie:
 Valoarea absentă este estimată folosind interpolare
 Caz simplu: interpolare liniară

Data mining - Curs 10 12


Pre-procesarea seriilor de timp
Imputarea valorilor absente prin interpolare liniară

Fie (y1,y2,….,yn) o serie de timp corespunzătoare momentelor (t1,t2,….,tn)

Presupunem ca lipseşte valoarea corespunzătoare momentului t cuprins între


ti şi ti+1. Preupunând că atributul comportamental y variază liniar cu t pe
intervalul [ti , ti+1 ] se poate estima valoarea lui y

t − ti
y = yi + ( yi +1 − yi )
ti +1 − ti

Data mining - Curs 10 13


Pre-procesarea seriilor de timp
Eliminarea zgomotului

Problema: dispozitivele utilizate pt colectarea datelor (senzorii) pot fi afectaţi


de bruiaje, a.î. Seria poate conţine valori generate în procesul de colectare a
datelor şi care nu reflectă comportamentul real al atributului înregistrat

Modalităţi de tratare a zgomotului

 Impachetare (Binning)
 Netezire (Moving-Average Smoothing)

Data mining - Curs 10 14


Pre-procesarea seriilor de timp
Binning
Idee:
 Intervalul de timp global [t1 , tn ] corespunzător seriei (y1,y2,….,yn) este divizat
în m subintervale conţinând fiecare câte elemente (m=n/k)
 Fiecare subinterval va fi asociat unei valori calculate ca medie a valorilor din
seria de timp ce corespunde momentelor incluse în subinterval
Observaţii:
 Se presupune că momentele de timp corespunzătoare seriei iniţiale sunt egal
distanţate
 Se reduce număarul de valori disponibile de k ori (este un tip de compresie cu
pierdere de informaţie)
(t1 , t2 ,..., tn ) → ((t1 ,..., tk ), (tk +1 ,..., t2 k ),..., (t( m −1) k +1 ,..., tmk )
( y1 , y2 ,..., yn ) → ( z1 , z2 ,..., zm )
1 k
zi = ∑ y( i −1) k + j , i = 1, m
k j =1
Data mining - Curs 10 15
Pre-procesarea seriilor de timp
Moving average smoothing
Idee: se reduce pierderea de informaţie cauzată de binning folosind “ferestre”
de mediere care se suprapun, adică media se calculează pentru elementele
ce aparţin unei ferestre mobile (se deplasează de-a lungul seriei)

(t1 , t2 ,..., tn ) → ((t1 ,..., tk ), (t2 ,..., tk +1 ),..., (t( m −1) k +1 ,..., tmk )
( y1 , y2 ,..., yn ) → ( z1 , z2 ,..., zm )
1 ( m −1) k +1
zi = ∑
k j =1
yi + j −1 , i = 1, m

Obs:
 Numărul de elemente din serie este redus de la n la n-k+1
 Variaţiile pe termen scurt pot fi pierdute prin mediere

Data mining - Curs 10 16


Pre-procesarea seriilor de timp
Exemplu (Moving average smoothing)

k=4 k=8

Serii netezite (negru)

Data mining - Curs 10 17


Pre-procesarea seriilor de timp
Netezire exponenţială
Idee: valoarea netezită se defineşte ca o combinaţie liniară a valorii curente
şi a valorii netezite anterioare

zi = α ⋅ yi + (1 − α ) ⋅ zi −1 , i = 1, m
z0 = y 1
i
zi = (1 − α ) z0 + α ∑ y j (1 − α )i − j , i = 1, m
i

j =1

Obs:
 Dacă α=1 atunci nu se aplică netezire; dacă α=1 toată seria este netezită
(va avea valoarea primului element)
 Netezirea exponenţială se bazează pe ideea că valorile mai recente sunt
mai importanta; influenţa valorilor anterioare este controlată prin α

Data mining - Curs 10 18


Pre-procesarea seriilor de timp
Exemplu (exponential smoothing)

α=0.75 α=0.5

Serii netezite (negru)

Data mining - Curs 10 19


Pre-procesarea seriilor de timp
Exemplu (exponential smoothing)
α=0.25
α=0.5

Serii netezite (negru)

Data mining - Curs 10 20


Pre-procesarea seriilor de timp
Normalizare – este utilă în special când se prelucrează mai multe serii de
timp)

Variante: Normalizare bazata pe domeniu


yi − min( y )
zi = , i = 1, m
max( y ) − min( y )

Standardizare
y − mean( y )
zi = i , i = 1, m
stdev( y )
Obs:
 min(y) şi max(y) reprezintă valoarea minimă respectiv cea maximă din serie
 mean(y) şi stdev(y) sunt valoarea medie respectiv abaterea standard

Data mining - Curs 10 21


Pre-procesarea seriilor de timp
Exemplu

normalizare standardizare

Obs:
 Normalizarea şi standardizarea conservă forma seriei dar schimbă
domeniul de valori
Data mining - Curs 10 22
Predicţie
Scop:
 Estimarea preţului viitor al unei acţiunii, predicţia vremii, estimarea evoluţiei
unor indicatori economici etc

Predicţie:
 Intrare: una sau mai multe serii de timo
 Ieşire: valori viitoare ale seriei

Cum poate fi abordată problema:


 Ca o problemă de regresie – se estimează explicit dependenţa dintre
atributele comportamentale şi timp

 Utilizând modele care exprimă relaţia dintre valori curente şi valori


anterioare ale seriei (modele autoregresive)

Data mining - Curs 10 23


Predicţie
Obs: modelele de predicţie funcţionează bine pentru seriile staţionare

Intuitiv, o serie staţionară se caracterizează prin faptul că proprietăţile sale


statistice (medie, varianţă, autocorelaţie) sunt constante în timp

Staţionaritate strictă: ditribuţia de probabilitate a valorilor din orice interval de


timp [a,b] este identică cu distribuţia de probabilitate a valorilor din intervalul
shiftat [a+h, b+h] (pentru un h>0 arbitrar)

Obs:
 Proprietăţile statistice bazate pe ferestre de timp pot fi estimate (se obţin
valori similare pt ferestre diferite)
 În cazul seriilor nestaţionare acest lucru nu mai este adevărat, deci înainte
de a aplica o tehnică de predicţie autoregresivă ar fi util ca o serie
nestaţionară să fie transformată într+una staţionară.

Data mining - Curs 10 24


Predicţie
Exemplu: serie artificial construită: yi=i+zgomot (zgomotul este generat
folosind o distribuţie normală de medie 0 şi abatere standard 2)

Data mining - Curs 10 25


Predicţie
Exemplu: serie artificial construită: yi=i+zgomot (zgomotul este generat
folosind o distribuţie normală de medie 0 şi abatere standard 2)
Obs:
 Aceasta este o serie nestaţionară întrucât mediile valorilor corespunzând
unor ferestre de timp diferite sunt diferite

Medie 2
(a doua fereastră)

Medie 1
(prima fereastră)

Data mining - Curs 10 26


Predicţie
Exemplu: serie artificial construită: yi=i+zgomot (zgomotul este generat
folosind o distribuţie normală de medie 0 şi abatere standard 2)
Obs. Sunt 2 componente: tendinţa (trend) şi zgomot (noise)

trend Seria (roşu)

noise
Cum pot fie extrase cele două componente din
seria iniţială?

Data mining - Curs 10 27


Predicţie
Extragerea tendinţei = eliminarea zgomotului
Cum: prin netezire

Netezire exponenţială
(α=0.25)

Tendinţa reală

Data mining - Curs 10 28


Predicţie
Extragerea zgomotului = eliminarea tendinţei
Cum: prin calcul diferenţă între elementele succesive din serie
Diferenţa

Zgomot estimat
Zgomot real (diferenţa)
zgomot real
Data mining - Curs 10 29
Predicţie
Extragerea zgomotului = eliminarea tendinţei
Cum: prin calcul diferenţă între elementele succesive din serie

Transformare prin calcul diferenţă: zi = yi − yi −1

Obs:
 Seria obţinută prin diferenţire este
staţionară

Întrebare:
• Poate fi reconstruită seria iniţială pornind
de la estimările tendinţei şi zgomotului?

Diferenţa

Data mining - Curs 10 30


Predicţie
Extragerea zgomotului = eliminarea tendinţei
Cum: prin calcul diferenţă între elementele succesive din serie

Alte variante:
 Eliminarea efectului sezonier z i = yi − yi − P

 La seriile cu creştere geometrică (de exemplu serii de preţuri în care


factorul de inflaţie e constant) poate fi utilă logaritmarea înainte de calculul
diferenţelor

Întrebare:
• Poate fi reconstruită seria iniţială pornind de la estimările tendinţei şi
zgomotului?

Data mining - Curs 10 31


Tendinţa şi zgomot
Reconstruire: suma dintre estimarea tendinţei şi estimarea zgomotului

original

reconstruit

original reconstruit

Data mining - Curs 10 32


Predicţie
Cum poate fi estimată (prezisă) o nouă valoare din serie?

 estimarea unei noi valori cf modelului de tendinţă (trend)


 Generarea unei noi valori cf modelului de zgomot
 Adunarea valorilor

Problema principală:
 Este necesară construirea unui model de trend (e.g. prin regresie)
 Este necesară identificarea unui model pt zgomot; dacă este zgomot alb
(valorile asociate unor momente diferite de timp sunt generate de variabile
aleatoare independente cu distribuţie normală şi medie nulă) atunci valorile
parametrilor (media şi abaterea standard pot fi uşor estimată)

Altă abordare: se utilizează autocorelaţia = corelaţia dintre valorile


corespunzătoare unor momente de timp învecinate

Data mining - Curs 10 33


Modele autoregresive
Ideea de bază: dacă valoarea autocorelaţiei este mare (în valoare absolută)
atunci valoarea corespunzătoare unui moment poate fi estimată pe baza
valorilor din vecinătate
Calcul autocorelaţie pt o serie staţionară, (y1,y2,….,yn), ca fiind corelaţia dintre
valori separate prin întârzierea L

1 n−L

n − L i =1
( yi − avg (Y ))( yi + L − avg (Y ))
Autocorrelation( L) =
var(Y )

L=3 y1 y2 y3 y4 y5 y6 y7 y8 y9 y10 y11 y12 y13 y14 y15 y16

y1 y2 y3 y4 y5 y6 y7 y8 y9 y10 y11 y12 y13 y14 y15 y16

Data mining - Curs 10 34


Modele autoregresive
Forma generală a unui model autoregresiv de ordin p: AR(p)
p
yt = ∑ ai yt −i + c + ε t
i =1

Obs:
 p este ordinul modelului şi poate fi ales analizând diferite valori posibile ale
întârzierii L:
 p se alege ca fiind prima valoare L (pornind cu L=1) pt care
valoarea absolută a auto-corelaţiei este suficient de mică

 a1, a2,…., ap şi c sunt parametri ai modelului şi se estimează folosind date


de antrenare şi metoda celor mai mici pătrate

 Ɛt reprezintă zgomotul

Data mining - Curs 10 35


Modele autoregresive
Modele de tip medie mobilă (Moving Average): MA(q)

Motivaţie:
 Modelele autoregresive simple nu pot explica toate variaţiile (în mod
particular schimbările bruşte, de tipul şocurilor)

Idee:
 Modelele de tip MA prezic valorile următoare pe baza deviaţiilor anterioare
ale valorilor reale faţă de cele prezise
q
yt = ∑ biε t −i + c + ε t
i =1
Obs:
 Presupunând că seria este staţionară şi zgomotul are medie 0 valoarea lui
c este media valorilor din serie
 Parametrii b1, b2,…., bq se estimează din date (problemă de fitare neliniară)

Data mining - Curs 10 36


Modele autoregresive
Modele autoregresive combinate: ARMA(p,q)

Motivaţie:
 Se combină capacitatea de predicţie a modelelor autoregresive şi a celor
bazate pe medie mobilă:
p q
yt = ∑ ai yt −i + ∑ biε t −i + c + ε t
i =1 i =1

Obs:
 Un aspect important este alegerea valorilor p şi q: ar trebui alese cele mai
mici valori care asigură o bună aproximare a datelor – nu este uşor de
identificat

Data mining - Curs 10 37


Descoperirea şabloanelor
Şablon (motiv) = structură ce apare frecvent în serie

Procesul de descoperire

Intrare:

 Cel puţin o serie


 Lungimea L a şablonului
 Măsură de similaritate/ disimilaritate
 Prag pentru similaritate/ disimilaritate

Ieşire: subsecvenţă de lungime L ce apare â


frecvent în serie

C. Aggarwal, Data Mining – the Textbook, 2015


Data mining - Curs 10 38
Descoperirea şabloanelor
Şablon (motiv) = structură ce apare frecvent în serie

Exemplu: Algoritm de tip forţă brută


FindMotif (y[1..n],L,eps)
countMax=0
FOR i=1,n-L+1 DO
candidate=y[i..i+L-1]
count=0
FOR j=1,n-L+1 DO
D=dist(y[i..i+L-1),y[j..j+L-1])
IF (i!=j) and (D<=eps) THEN count=count+1
ENDFOR
IF count[i]>countMax THEN best=i; countMax=count
ENDFOR
RETURN (y[best..best+L-1])
Data mining - Curs 10 39
Excepţii (anomalii)
Există două tipuri de excepţii (anomalii) într-o serie de date:

Excepţii (anomalii) punctuale:


 Deviaţie semnificativă de la valoarea prezisă
 Corespunde unei schimbări bruşte în seria de date

Excepţii (anomalii) în privinţa formei:


 O succesiune de valori poate reprezenta o anomalie chiar dacă valorile
individuale nu sunt neobişnuite A consecutive pattern of data points might
be an anomaly even is the individual values are not necessary unusual
 De exemplu, într-o electrocardiogramă o bătaie neregulată a inimii poate fi
considerată o anomalie

Data mining - Curs 10 40


Excepţii (anomalii)
Detecţia anomaliilor punctuale:

Step 1: se determină valorea prezisă (pe baza modelului construit valorile


anterioare) (zm,zm+1,…,zn)

Step 2: se construieşte seria deviaţiilor (dm,dm+1,…,dn) cu di=zi-yi

Step 3: se calculează deviaţiile standardizate (sm,sm+1,…,sn)


cu
si=(di-avg(d))/stdev(d)

Dacă valoarea absolută a lui si este mai mare decât un prag (e.g. 3) atunci se
consideră că este anomalie

Data mining - Curs 10 41


Excepţii (anomalii)
Detecţia anomaliilor de formă:

Step 1: se extrag toate subseriile corespunzătoare unui ferestre de


dimensiune W

Step 2: se calculează distanţa dintre fiecare subserie şi toate celelalte


corespunzătoare unor ferestre disjuncte

Step 3: Subseriile care diferă semnificativ de celelalte sunt considerate


excepţii potenţiale

Probleme:
 Alegerea lui W
 Alegerea pragului

Data mining - Curs 10 42


Curs 11:

Metode de tip ansamblu


(meta-modele)

Data mining - Curs 11 1


Structura
 Motivaţie

 Ideea modelelor de tip ansamblu

 Colecţii de modele (bucket of models)

 Colecţii de arbori aleatori (random forests)

 Strategii de agregare a modelelor


 Bagging
 Boosting
 Stacking

Data mining - Curs 11 2


Motivaţie
Reminder:
 Scopul unui clasificator este estimarea relaţiei dintre atributul de clasă şi
celelalte atribute
 construirea unui clasificator se bazează pe:
 Un set de antrenare
 Ipoteze asupra modelului de clasificare (de exemplu suprafaţa de
decizie este liniară sau liniară pe porţiuni)
 Notaţii

y=f(x)= clasa aferentă datei x


D={(x1,y1),(x2,y2),…,(xL,yL)} = setul de antrenare
g(x;D) = răspunsul estimat de către modelul construit pe baza setului de
antrenare
MSE = eroare medie pătratică

Extragerea modelului din date: estimarea parametrilor modelului astfel ca MSE


să fie minimizată
Data mining - Curs 11 3
Motivaţie
Componente ale erorii:
 Deplasare (Bias) = inabilitatea clasificatorului de a clasifica corect cauzată de
limitările modelului (e.g. modelul are suprafete de decizie liniare iar cele reale
sunt neliniare)
 Varianţa (Variance) = cauzată de volumul limitat de date de antrenare (e.g. doi
clasificatori bazati pe acelaşi model dar antrenate pe seturi diferite au
performanţe diferite)

Data mining - Curs 11 4


C. Aggarwal, Data Mining. The textbook, 2015
Motivaţie
 Deplasare (Bias) = inabilitatea clasificatorului de a clasifica corect cauzată de
limitările modelului (e.g. modelul are suprafete de decizie liniare iar cele reale
sunt neliniare)
 Varianţa (Variance) = cauzată de volumul limitat de date de antrenare (e.g.
doi clasificatori bazati pe acelaşi model dar antrenate pe seturi diferite au
performanţe diferite)

1 L 1 L 2
MSE = ∑ ( yi − g ( xi ; D )) = ∑ ( yi − 2 yi g ( xi ; D ) + g ( xi ; D )2 )
2

L i =1 L i =1
1 L 2
E D ( MSE ) = ∑ ( yi − 2 yi E D ( g ( xi ; D )) + E D ( g ( xi ; D )2 ) + ( E D ( g ( xi ; D ))) 2 − ( E D ( g ( xi ; D ))) 2 )
L i =1
1 L
= ∑ (( yi − E D ( g ( xi ; D ))) 2 + ( ED ( g ( xi ; D ) 2 ) − ( ED ( g ( xi ; D ))) 2 )
L i =1

deplasare Varianţa răspunsurilor produse de clasificatori


Antrenati pe diferite seturi de date
(influenţată de model) (influenţată de date)
Data mining - Curs 11 5
Motivaţie
 Deplasare (Bias) = inabilitatea clasificatorului de a clasifica corect cauzată de
limitările modelului (e.g. modelul are suprafete de decizie liniare iar cele reale
sunt neliniare)
 Varianţa (Variance) = cauzată de volumul limitat de date de antrenare (e.g.
doi clasificatori bazati pe acelaşi model dar antrenate pe seturi diferite au
performanţe diferite)

Obs:
 Un model cu valoare mare pt bias va genera erori chiar dacă se modifică setul
de antrenare
 Un model cu varianţă mare va produce rezultate inconsistente când este
antrenat pe diferite seturi de date

Cum se poate reduce eroarea?


 Reducând deplasarea sau reducând varianţa
 Este posibil să se reducă ambele? Cum?

Data mining - Curs 11 6


Motivaţie
Bias vs variance

 Modele simple (e.g. Modele liniare, modele bazate pe reguli simple, arbori de
decizie simpli, naïve Bayes)
 Deplasare mare (datorită faptului că suprafaţa de decizie este prea
simplă
 Varianţă mică (modelele simple sunt robuste în raport cu schimbările
din seturile de date; modelele simple suferă rar de supra-antrenare)

 Model complexe (e.g. Reţele neuronale/ arbori de decizie cu multe nivele)


 Deplasare mică (întrucât modelează bine suprafeţele de decizie)
 Varianţă mare (senzitive la modificările în setul de date; pot fi
afectate de supra-antrenare)

Dacă se utilizează un singur model este necesară găsirea unui compromis între
deplasare şi varianţă
Prin combinarea mai multor modele pot fi reduse simultan atât varianţa cât şi
deplasarea
Data mining - Curs 11 7
Motivaţie
Combinarea mai multor modele  model de tip ansamblu

Combinând 3 SVM-uri liniare se poate Combinând arbori de decizie antrenaţi


ajunge la suprafaţă neliniară pe seturi diferite se poate reduce varianţa
Data mining - Curs 11 8
C. Aggarwal, Data Mining. The textbook, 2015
Este util să se combine
modelele?
O analiza probabilistă simplă

 Considerăm 25 de clasificatori
 Fiecare clasificator are o anumită rată de eroare, ε = 0.35 (probabilitatea
să producă un răspuns eronat)
 Presupunem că cei 25 de clasificatori sunt independenţi
 Probabilitatea ca un ansamblu constituit din cei 25 de clasificatori (în
cazul unei reguli de agregare bazată pe regula majorităţii=:

25
 25  i
∑ 
 i ε (1 − ε ) 25−i
= 0.06
i =13  

Data mining - Curs 11 9


Modele de tip ansamblu
Cum se construiesc modelele de tip ansamblu?

 Prin construirea mai multor modele (pe baza unor diferite ipoteze structurale)
pornind de la acelaşi set de date - corespunde ansamblelor centrate pe modele

 Prin antrenarea aceluiaşi model folosind diferite seturi de date (extrase aleator
dintr-un set global de date) – aceasta corespunde ansamblelor centrate pe date

Cum se pot utiliza modelele de tip ansamblu?


 Pentru o anumită dată de intrare se aplică toate modelele din ansamblu iar
rezultatul final se obţine prin agregarea rezultatelor prin:
 Votare (cel mai frecvent răspuns) – în cazul problemelor de clasificare
 Mediere – în cazul problemelor de regresie

Data mining - Curs 11 10


Modele de tip ansamblu
Algoritm generic pt un model de tip ansamblu
 Input: set de date D; set de metode/ algoritmi {A1, A2, … Ar }
 Output: un model de tip ansamblu constând din K modele individuale {M1, M2,
…, MK }

REPEAT
 k=1
 select an algorithm A from the set {A1, A2, … Ar }
 create a training dataset Dk (by sampling from D)
 construct the model Mk by applying algorithm A to the dataset Dk
 k=k+1
 Evaluate the performance of the current ensemble {M1, M2, …, Mk } (for each
model the data not included in the corresponding training set are used)
UNTIL desired performance
Data mining - Curs 11 11
Modele de tip ansamblu
Algoritm generic pt un model de tip ansamblu
 Input: set de date D; set de metode/ algoritmi {A1, A2, … Ar }
 Output: un model de tip ansamblu constând din K modele individuale {M1, M2,
…, MK }

Cazuri particulare:
 Algoritmi diferiţi, un set de antrenare (e.g. Colecţie de modele - bucket of
models)

 Acelaşi algoritm, diferite seturi de antrenare


 Bagging
 Random forests
 Boosting

Data mining - Curs 11 12


Colecţii de modele – bucket of
models
Idee de bază: mai mulţi algoritmi, un set de date  un meta-model agregat
Varianta 1:
 Se antrenează diferite modele utilizând acelaşi set de date
 Rezultatele produse de modelele componente se agreghează prin:
 Regula majorităţii
 Medierea rezultatelor de la modelele componente
Varianta 2:
 Setul de date D se divide în două subseturi A şi B
 Se antrenează toate modelele folosind setul A
 Se selectează modelul cu cel mai bun comportament pentru subsetul B
 Se reantrenează modelul selectat pentru întregul set de date D
Obs:
 Reduce deplasarea întrucât pt diferite părţi ale setului de date ar putea fi diferite
modele mai adecvate

Data mining - Curs 11 13


Bagging
 Idee de bază: un algoritm, mai multe
seturi de date  mai mulţi clasificatori

Seturi de antrenare:
 Obţinute prin selecţie cu revenire din
setul complet de date D
 Dacă setul complet are L elemente atunci
probabilitatea ca un anumit element să
fie selectat este 1-(1 – 1/L)L ;

 Exemplu:

[Slides by Kumar/ Introduction


Data mining - Curs 11 to Data Mining, 2004] 14
Bagging
Impact bagging:

 Reduce varianţa

 Nu reduce deplasarea (întrucât acelaşi model este folosit pt toate seturile de


antrenare nu sunt eliminate limitările modelului)

Obs:
 Reducerea varianţei este asigurată doar dacă modelele din ansamblu sunt
independente
 Limitarea corelaţiei dintre modele se poate obţine prin introducerea unor
elemente aleatoare  random forests

Data mining - Curs 11 15


Random forests
Random forest = colecţie de arbori aleatori construiţi folosind tehnica de la
bagging (seturile de antrenare sunt construite prin selecţie aleatoare cu
revenire)

Construire random forest:


 Se construieşte un random tree pt fiecare set de antrenare

Utilizare random forest:

 Se aplică fiecare arbore datei de intrare


 Se selectează răspunsul dominant (schemă simplă de votare)

Data mining - Curs 11 16


Random forests
Random tree = arboire de decizie construt folosind random-split

Etape:
 Dacă numărul de exemple din setul de antrenare este L, atunci se
selectează L cazuri aleator – dar cu revenire. Acest set este folosit pt
construirea arborelui
 In cazul a M variabile de intrare se fixează un m<<M iar la ramificarea
fiecărui nod se selectează aleator m variable şi cea mai bună dintre ele
este folosită pt a ramifica nodul. Valoarea lui m este păstrată constantă
până la construirea arborelui
 Fiecare arbore este extins cât de mult se poate pt a asigura o valoare mică
a deplasării. Nu se foloseşte pruning.

[Leo Breiman
https://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm]
Data mining - Curs 11 17
Random forests
Obs: eroarea arborilor aleatori depinde de 2 elemente:

 Corelaţia dintre oricare 2 arbori – cu cât corelaţia este mai mare cu atât
eroarea este mai mare

 Puterea fiecărui arbore din pădure. Un arbore cu eroare mică are putere
mare Cu cât este mai mare puterea arborilor din pădure cu atât eroarea pe
ansamblu este mai mică

[Leo Breiman
https://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm]

Data mining - Curs 11 18


Random forests
Obs: Influenţa lui m (numărul de atribute selectate în procesul de ramificare)

 Reducerea lui m reduce atât corelaţia cât şi puterea.


 Creşterea lui m conduce la creşterea corelaţiei şi a puterii
 E necesar un compromis – se alege valoarea lui m care conduce la eroare
mică

Obs: estimarea calităţii se face folosind datele care nu au fost selectate la


construirea arborelui (nu e necesară validare încrucişată) – tehnica “out-of-
bag”

[Leo Breiman
https://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm]

Data mining - Curs 11 19


Boosting
Ideea de bază:
 Fiecare instanţă din setul de antrenare are o pondere care poate fi utilizată
 Direct în cadrul modelului (dacă acesta permite utilizare ponderilor)
 sau în definirea unor probabilităţi de selecţie
 Ponderile pot fi adaptive (instanţele clasificate incorect au asociate valori mai
mari ale ponderilor)
Abordare:
 La început toate instanţele au asociate aceleaşi
 Pe parcursul procesului de antrenare:
– Pt Instanţele clasificate incorect se măreşte valoarea ponderii
– Pt Instanţele clasificate corect se micşorează valoarea ponderii

Obs: Se presupune că principala componentă a erorii este deplasarea şi se


încearcă reducerea acesteia prin acordarea unei importanţe mai mari datelor
clasificate incorect
Data mining - Curs 11 20
AdaBoost
Algoritm de antrenare:

 Input: algoritm de clasificare de bază: A; set de date: D


 Output:
 Set de modele de clasificare (M1,…, MT)
 Set de ponderi corespunzătoare modelelor

 Ideea de bază

- La fiecare pas t al algoritmului, se obţine o componentă a ansamblului (Mt) –


vezi slide următor
- Clasificatorul de bază e de regulă un clasificator simplu fără putere prea mare de
discriminare (weak classifier)

Data mining - Curs 11 21


AdaBoost
AdaBoost (A,D)
t=1; initialize the weights of the training instances: w(t,i)=1/L for all i=1..L

REPEAT
t=t+1; construct Mt using the current values of the instances’ weights
compute the weighted error rate of model Mt on D (Ɛ(t))
compute the model weight α(t)=ln((1-Ɛ(t))/Ɛ(t))/2
FOR i=1,L DO
IF xi is wrongly classified THEN w(t+1,i)=w(t,i)*exp(α(t))
ELSE w(t+1,i)=w(t,i)*exp(-α(t))
FOR i=1,L DO w(t+1,i)=w(t+1,i)/sum(w(t+1,j),j=1..L)
UNTIL (t>=T) or (Ɛ(t)=0) or (Ɛ(t)>=0.5)

Obs: dacă la oricare dintre rundele intermediare rata de eroare este mai mare
decât 50% în loc să se oprească algoritmul se readuc ponderile la 1/L şi se repetă
procedura
Data mining - Curs 11 22
AdaBoost
Câteva detalii:

 Rată ponderată de eroare:

1 L
ε t = ∑ wiδ (M t ( xi ) ≠ yi )
L i =1
 Importanţa (pondere) unui model/
clasificator:

1  1 − εt 
αt = ln 
2  εt 

Data mining - Curs 11 23


AdaBoost
Etapa de clasificare
(în cazul clasificatorilor binari ce produc valori în {-1,1})

 Se aplică fiecare compnentele ansamblului (M1, M2,…, MT) şi se colectează


rezultatelr (r1,r2,…rT) (in {-1,1})

 Se agreghează rezultatele:

 calcul r=α1r1 + α2r2 +…+ αTrT


 IF r<0 THEN return -1 ELSE return +1

Data mining - Curs 11 24


AdaBoost

Initial weights for each data point Data points


for training

0.1 0.1 0.1


Original
Data +++ - - - - - ++

B1
0.0094 0.0094 0.4623
Boosting
Round 1 +++ - - - - - - - α = 1.9459

[Slides by Kumar/ Introduction


Data mining - Curs 11 to Data Mining, 2004] 25
B1
AdaBoost
0.0094 0.0094 0.4623
Boosting
Round 1 +++ - - - - - - - α = 1.9459

B2
0.3037 0.0009 0.0422
Boosting
Round 2 - - - - - - - - ++ α = 2.9323

B3
0.0276 0.1819 0.0038
Boosting
Round 3 +++ ++ ++ + ++ α = 3.8744

Overall +++ - - - - - ++
Data mining - Curs 11 26
Stacking
Idee de bază: două nivele de clasificare

Etape principale:
 Se divide setul de date D in două subseturi A şi B
 Primul nivel: se antrenează un ansamblu de k clasificatori bazaţi pe A (poate fi
o colecţie de clasificatori, se pot baza pe bagging sau pe k runde de boosting)
 Second level:
 Se determină k ieşiri (etichete ale claselor) ale clasificatorilor antrenaţi
la primul nivel pentru fiecare dintre instanţele subsetului B
 Se construieşte un set de date având ca atribute de intrare aceste k
ieşiri şi ca atribut de clasă eticheta corectă a instanţei
corespunzătoare din subsetul B
 Se antrenează un clasificator pe acest set nou de date

Data mining - Curs 11 27


Stacking
Obs:
 Rezultatul de la stacking este un set de k clasificatori de prim nivel şi un
clasificator combinat

 Pentru o instanţă de test, primul nivel de clasificatori este utilizat o nouă instanţă
k-dimensională pe când al doilea clasificator furnizează rezultatul corespunzător
instanţei transformate

 Atributele originale pot fi combinate cu noile atribute la construirea


clasificatorului corespunzător celui de al doilea nivel; este de asemenea posibil
ca cele k atribute noi să fie probabilităţi şi nu etichete de clase

 Tehnica stacking permite reducerea ambelor componente ale erorii (întrucât al


doilea nivel învaţă din erorile diferitelor componente ale ansamblului)

Data mining - Curs 11 28


Sumar
Impactul metodelor de tip ansamblu asupra componentelor erorii

 Bagging şi random forests au fost proiectate să reducă varianţa

 Boosting şi stacking au fost proiectate să reducă ambele componente

Extindere ideii de ansamblu în contextul tehnicilor de clustering

 Aceeaşi idee ca şi la clasificare:


 Aplică diferite metode de clustering (sau aceeaşi metodă dar folosind
diferite valori ale parametrilor)
 Agregare rezultate folosind algoritmi de clustering pt hipergrafuri
(datele reprezintă noduri şi fiecare cluster reprezintă o hipermuchie)

Data mining - Curs 11 29


Curs 12:

Analiza documentelor de tip text


(Text Mining)

Data Mining -Curs 12 (2017) 1


Structura
• Reminder: reprezentarea documentelor de tip text

• Analiza similarităţii între documente

• Particularităţi ale grupării documentelor

Data Mining -Curs 12 (2017) 2


Reminder
Extragerea caracteristicilor dintr-un document: (fişier text – date
nestructurate)

Abordarea bazată pe reprezentarea de tip bag-of-words:

“In document classification, a bag of words is a sparse vector of occurrence


counts of words; that is, a sparse histogram over the vocabulary. In computer
vision, a bag of visual words is a vector of occurrence counts of a vocabulary
of local image features.”

Data Mining -Curs 12 (2017) 3


Reminder
Extragerea caracteristicilor dintr-un document – fişier text: abordarea de tip
bag-of-words

a) Eliminarea cuvintelor de legătură (stop words)


“In document classification, a bag of words is a sparse vector of occurrence
counts of words; that is, a sparse histogram over the vocabulary. In computer
vision, a bag of visual words is a vector of occurrence counts of a vocabulary
of local image features.”

“document classification bag words sparse vector occurrence counts words


sparse histogram vocabulary computer vision bag visual words vector
occurrence counts vocabulary local image features.”

Data Mining -Curs 12 (2017) 4


Reminder
Extragerea caracteristicilor dintr-un document – fişier text: abordarea de tip
bag-of-words

b) Reducerea cuvintelor la rădăcina lor – stemming (algoritm Porter)

“document classification bag words sparse vector occurrence counts words


sparse histogram vocabulariy computer vision bag visual words vector
occurrence counts vocabulariy local image features”
[http://textanalysisonline.com/nltk-porter-stemmer]

“document classif bag word spars vector occurr count word spars histogram
vocabulari comput vision bag visual word vector occurr count vocabulari local
imag featur”

Data Mining -Curs 12 (2017) 5


Reminder
Extragerea caracteristicilor dintr-un document – fişier text: abordarea de tip
bag-of-words

c) Calculul frecvenţelor:

“document classif bag word spars vector occurr count word spars histogram
vocabulari comput vision bag visual word vector occurr count vocabulari local
imag featur”

Caracteristici extrase:
(bag,2), (classif,1), (comput,1), (count,2), (document,1), (featur,1),
(histogram,1), (imag,1), (local,1), (occurr,2), (spars,2), (vector,2), (vision,1),
(visual,1), (vocabulari,2), (word,3)

Data Mining -Curs 12 (2017) 6


Reminder
Extragerea caracteristicilor dintr-un document – fişier text: abordarea de tip
bag-of-words

c) Calculul frecvenţelor:

“document classif bag word spars vector occurr count word spars histogram
vocabulari comput vision bag visual word vector occurr count vocabulari local
imag featur”

Caracteristici extrase:
(bag,2), (classif,1), (comput,1), (count,2), (document,1), (featur,1),
(histogram,1), (imag,1), (local,1), (occurr,2), (spars,2), (vector,2), (vision,1),
(visual,1), (vocabulari,2), (word,3)

Data Mining -Curs 12 (2017) 7


Reprezentarea datelor
Concepte:

• Corpus - colecţia de documente disponibile


• Lexicon – setul de cuvinte (termeni) folosite – în varianta pre-procesată
(după stemming)

Notaţii:
• n - nr de documente
• d – nr de termeni în lexicon

Reprezentarea unui document:


• vector v cu d componente
• v(i) reprezintă
• numărul de apariţii ale termenului i din lexicon în cadrul documentului
• frecvenţa ajustată a termenului i (reprezentarea de tip TF-IDF)

Data Mining -Curs 12 (2017) 8


Reprezentarea datelor
Reprezentarea TF-IDF:

TF(i) = Term Frequency = numărul de apariţii ale termenului i în document

IDF(i) = Inverse Document Frequency = 1/numărul de documente care


conţine termenul i

v(i)=TF(i)*IDF(i)
Obs:
• Cu cât TF(i) este mai mare cu atât este mai reprezentativ termenul i pentru
document
• Cu cât IDF(i) este mai mare cu atât termenul i are putere mai mică de
discriminare (dacă un termen este comun mai multor documente atunci el nu
furnizează informaţie utilă pentru discriminarea între documente)

Data Mining -Curs 12 (2017) 9


Reprezentarea datelor
Variante ale reprezentării TF-IDF

• În calculul lui TF şi IDF se folosesc frecvenţe relative în locul frecvenţelor


absolute
rTF(i) = nr de apariţii ale termenului i în document / nr total de termeni din
document

rIDF(i) = nr total de documente/ nr de documente care conţine termenul i

v(i)=rTF(i)*rIDF(i)
Obs: în cazul în care un termen apare foarte frecvent într-un document atunci
contribuţia lui va fi dominantă în calculul măsurilor de similaritate sau
disimilaritate – pentru a limita acest lucru se aplica funcţii care atenuează
diferenţele între frecvenţe (ex: funcţia logaritmică, funcţia radical)
v(i)=log(TF(i))*log(IDF(i))

Data Mining -Curs 12 (2017) 10


Reprezentarea datelor
Caracteristici ale reprezentării de tip bag-of-words bazată pe frecvenţe
absolute sau pe TF-IDF:

• Reprezentare rară (sparsity): numărul de elemente nenule din vector este


mic (un document conţine puţine cuvinte din lexicon)

• Pozitivitate (non-negativity): toate componentele vectorului asociat unui


document sunt pozitive

• Informaţii adiţionale (side information): în anumite cazuri documentele au


ataşate metadate care pot fi incluse în analiză (de exemplu link-uri
asociate documentelor web)

Data Mining -Curs 12 (2017) 11


Măsuri de similaritate
Măsurile de similaritate sunt utile în:

• Algoritmii de grupare - atât pt cei partiţionali (bazaţi pe reprezentanţi) cât


şi pentru cei ierarhici

• Algoritmii de clasificare bazaţi pe criteriul celui mai apropiat vecin

Presupunem că u şi v sunt vectorii asociaţi unor documente

Măsura cosinus
• cos(u,v)= uTv/(||u|| ||v||)

Măsura Jaccard
• J(u,v)= uTv/(||u||2+ ||v||2- uTv)

Data Mining -Curs 12 (2017) 12


Adaptarea algoritmilor de clustering
Algoritmi partiţionali (kMeans, kMedoid)

• Reminder:
• Fiecare cluster are asociat un reprezentant (centroid)
• Asignarea unei date la un cluster se bazează pe analiza similarităţii
(se asignează la clusterul cu cel mai similar reprezentant)
• Reprezentantul se determină folosind media sau mediana
elementelor din cluster (sau cel mai apropiat element de medie)

• Elemente care trebuie adaptate:


• Măsura de similaritate (folosită la asignarea documentelor la un
cluster)
• Reprezentantul unui cluster se poate construi prin “concatenarea”
documentelor ce aparţin clusterului (în cazul reprezentării bazate pe
frecvenţe absolute este echivalentă cu adunarea vectorilor asociaţi)

Data Mining -Curs 12 (2017) 13


Adaptarea algoritmilor de clustering
Algoritmi ierarhici (aglomerativi)

• Reminder:
• Se construieşte matricea de similaritate
• Se asignează fiecare dată la un cluster
• La fiecare etapă se reunesc clusterele cele mai apropiate (similare)

• Elemente componente care trebuie adaptate:


• Măsura de similaritate între documente (folosită la construirea matricii de
similaritate)
• Măsura de similaritate între clustere
– se identifică termenii cei mai reprezentativi (frecvenţa cea mai mare)
din documentele aflate în fiecare cluster (topical words); două clustere sunt
considerate similare dacă există suprapunere mare între seturile de termeni
reprezentativi

Data Mining -Curs 12 (2017) 14


Adaptarea algoritmilor de clustering
Algoritmi probabilişti (algoritmul EM - Expectation Maximization)

• Reminder:
• Fiecare dată este generată de o distribuţie de probabilitate (tipul de
distribuţie depinde de natura datelor)
• În procesul de generare a datelor fiecare dintre distribuţiile de
probabilitate este selectată la rândul ei cu o anumită probabilitate

• Elemente componente care trebuie adaptate:


• Distribuţia de probabilitate
• Binomială – pt vectori cu elemente binare (indicatori de prezenţă)
• Multinomială – pt vectori de frecvenţe

Data Mining -Curs 12 (2017) 15

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