Documente Academic
Documente Profesional
Documente Cultură
1. Analiza datelor
2. Explorarea datelor
3. Exploatarea datelor
5. Mineritul datelor
• Categorii de date
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:
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
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 …)
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
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ă)
Exemplu subset date (SMS spam collection dataset from UCI Machine
Learning Repository)
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)
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ă)
Ce se urmăreşte?
10
5
5 0 5 10 15
Ce se urmăreşte ?
• Identificarea unui model care corespunde comportamentului
normal
• 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
Ce se urmăreşte?
• Să se gasească un model care să permită estimarea prezenţei
unui obiect în ipoteza prezenţei altor obiecte
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ă)
• I.H. Witte, E. Frank, M.A. Hall. Data Mining – Practical Machine Learning
Tools and Techniques, Morgan Kaufmann Publishers, 2011
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)
Clustering
Aplicaţie
Task (acţiune)
Metoda (algoritm)
Elemente cheie:
Pre-procesarea datelor
• Extragerea caracteristicilor
• Tipuri de atribute
• Curatirea datelor
• Transformarea caracteristicilor
Extragere
cunoştinţe
analiză
transformare
curăţire
colectare
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ă)
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
<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
“document classif bag word spars vector occurr count word spars histogram
vocabulari comput vision bag visual word vector occurr count vocabulari local
imag featur”
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)
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
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
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)
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:
Valoare eronată
Date inconsistente
Data Mining -Curs 2 (2017) 24
Curătirea datelor
Descoperirea şi corecţia valorilor eronate:
Excepţii,
valori atipice
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)
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:
Atribute numerice
n
Sij ( A) = exp(−αd ( xi , x j )), d ( xi , x j ) = ∑ (x
k =1
ik − x jk ) 2
k =1
∑ k ik i
n ( µ − µ ) 2
F ( Ai ) = k =1
K
∑n ρ
k =1
k
2
ik
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
Variante:
• Scalare
• Standardizare
• Normalizare
• Proiecţie – analiza componentelor principale (Principal Component Analysis)
PCA visualization:
http://setosa.io/ev/principal-component-analysis/
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 selectează vectorii proprii care corespund celor mai mari m valori proprii
( 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
∑λ i
Proportia variantelor : R = i =1
n
∑λ
i =1
i
Concepte de bază
Clasificatori
Vot simplu (ZeroR)
Reguli cu un atribut(OneR)
Clasificatori bazaţi pe instanţe (kNN)
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:
Clasificare
Grupare
Regresie
Asociere
Detecție anomalii
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ă)
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)
Cunoaștere apriori
Model
Inducție Deducție
Răspuns
Date
(predicție)
Transducție
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}
Validation set V
Classification Classification
Model Model
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
@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
….
@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)
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
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
F-measure=2*precision*recall/(precision+recall)
Care este cel mai simplu clasificator care satisface această cerinţă?
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?
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
Outlook: err=4
sunny: 2 yes/ 3 no ( no)
overcast: 4 yes/ 0 no ( yes)
rainy: 3 yes/2 no (yes)
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)
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)
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
Etapa de clasificare:
• Altă zi: (outlook=rainy, temperature=cool, humidity=high, windy=false)
• Răspuns: Yes
–c
–c
–c
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
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)
Atribute numerice:
Câştig informaţional =
Entropia(distribuţia datelor înainte de partiţionare) –
EntropiaMedie distribuţia datelor după partiţionare)
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:
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
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
Temperature
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
Humidity
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
Windy
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
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
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
overcast
humidity yes/no(3,2)
Yes/no(0/3) Yes/no(2/0)
IG(temperature)=0.97-2/5=0.57
IG(humidity)=0.97-0=0.97
IG(windy)=0.97-0.95=0.02
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
Arbore : error = 0
Arbore simplificat: error = 4/14
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:
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 )|
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:
1
Ce se întâmplă însă dacă aceste
C1 proprietăţi nu sunt satisfăcute?
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
Particularităţi:
Ordonare bazată pe clase: clasele sunt selectate crescător după
dimensiune (clasele rare sunt selectate prima dată)
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
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
Obs:
Tipul atributelor
Numărul de atribute
Distribuţia datelor
Distanţa euclidiană d p ( A, B ) =
i =1
p
∑ i i (Minkowski, Lp )
( a − b ) p
Distanţa Manhattan
Obs: n
dimensiunii (dimensionality curse): d ( A, B ) =
Puterea de discriminara a acestor
p
p
∑ i i (Minkowski, Lp )
( a
i =1
− b ) p
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
Distanta Mahalanobis
d Mah ( A, B) = ( A − B)T C −1 ( A − B)
C −1 = inversa matricii de covarianta
Aggarwal,
Data Mining - CursData Mining Textbook, 2015
3-4 (2017) 71
Măsuri de similaritate/ disimilaritate
Aspecte practice – impactul distribuţiei datelor
Distanţa geodesică:
Data2015
Aggarwal, Data Mining Textbook, Mining - Curs 3-4 (2017) 72
Măsuri de similaritate/ disimilaritate
Atribute numerice – măsură de similaritate
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))
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 )
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
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
Presupunem că se cunosc:
Ideea principală
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)
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
- 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
• Alegerea arhitecturii:
– număr de nivele
– număr de unități pe fiecare nivel
– mod de interconectare (topologie)
– funcții de activare
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
− 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
activare: y=f(p*u) -6 -4 -2 2 4 6
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
Problema liniar
OR
separabilă – e suficientă
o rețea uninivel
Problema neliniar
separabilă – e necesară
XOR o rețea multinivel
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))))
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)
2 l =1 i =1 k =0
j =0
• Scopul antrenării: minimizarea funcției de eroare
• Metoda de minimizare: metoda gradientului
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
/ * 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 *
/ * 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
/ * 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 *
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
Exemplu: γ=0.05
∆wij ( p + 1) = ηδ i y j + α∆wij ( p )
α = 0.9
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):
∆ 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
E( r ) (W ) = E (W ) + λ ∑i, j
wij2
Ajustarea va fi:
∆(ijr ) = ∆ ij − 2λwij
∂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
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
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
• Strategie incrementală:
• Strategie decrementală:
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)
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
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
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
in loc de α i ≥ 0 se introduce 0 ≤ α i ≤ C
K ( x, x' ) = ( xT ⋅ x'+1) d
x − x'
2
K ( x, x' ) = exp(− )
2σ 2
Spider [http://www.kyb.tue.mpg.de/bs/people/spider/tutorial.html]:
implementare Matlab
Concepte de bază
Evaluarea calităţii grupării
Algoritmi partiţionali
kMeans
fuzzy cMeans
Algoritmi ierarhici
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
Gruparea permite:
sumarizarea şi/sau vizualizarea datelor în alt mod cu scopul de a înţelege mai
bine datele
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)
Intra = ∑ d (x , x ) / card ( P)
( xi , x j )∈P
i j
Inter = ∑ d (x , x ) / card (Q )
( xi , x j )∈Q
i j
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>
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)
Soluţii:
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)
i = 1, n, j = 1, K
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
7 9
1
3
2 6
4 5
1 2 3 4 5 6 7 8 9
7 9
1
3
2 6
4 5
1 2 3 4 5 6 7 8 9
Deondrograma rezultată
8
7 9
1
3
2 6
4 5
1 2 3 4 5 6 7 8 9
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ă
4 5
Partition:
C1={1,2,3,4}
C2={5,6} 1 2 3 4 5 6 7 8 9
C3={7,8,9}
1
3
2 6
4 5
C1 C2
1
3
2 6
4 5
C1 C2
1
3
2 6
4 5
C1 C2
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>
DBSCAN
DENCLUE
Metode probabiliste
EM - Expectation Maximization
Problema principală:
Cum se estimează densitatea?
Date
Clustere
Specific:
• Permite identificarea clusterelor de diferite forme
• Robust Data mining - Curs 7 10
DBSCAN
(MinPts=4, Eps=9.75).
Original Points
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 σ
σ=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)
σ=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
Reguli de asociere
Concepte de bază
Suport (support), încredere (confidence)
Seturi frecvente (frequent itemset)
Algoritmul Apriori
Exemplu:
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
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
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)
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)
Î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
{bread} supp({bread})=0.75
{butter} supp({butter})=0.25
{meat} supp({meat})=0.5
{milk} supp({milk})=0.25
{water} supp({water})=1
{bread} supp({bread})=0.75
{butter} supp({butter})=0.25
{meat} supp({meat})=0.5
{milk} supp({milk})=0.25
{water} supp({water})=1
3-itemset-uri
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}
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ă?
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
ABCDE
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
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
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})
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)
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
Modele de regresie
Regresie liniară
Modele neliniare
Arbori de regresie
Reţele RBF
x
x
y Ce se poate spune despre datele
Set 2 din fiecare set?
x
x
y Set 1: datele par să fie corelate pozitiv
Set 2 = dacă x creşte atunci şi y creşte
x
x
y Set 2: datele par să fie corelate negaitiv
Set 2 = dacă x creşte atunci y scade
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ă?
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ă
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)
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”)
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:
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ă)
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)
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
Funcții de transfer:
FF: funcții sigmoidale
RBF: funcții cu simetrie radială
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
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)
0.4
0.2
-3 -2 -1 1 2 3
0.6
0.4
0.2
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
Etape:
(a) Stabilirea parametrilor corespunzatori nivelului ascuns: centrii
C și parametrii σ
• 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
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ă
Predicţie
Identificare şabloane
Grupare şi clasificare
Detecţie anomalii
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ă?
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ă
0.177, 0.172 ,0.169, 0.175, 0.168, 0.164, 0.164, 0.187, 0.187, 0.191
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ă
t − ti
y = yi + ( yi +1 − yi )
ti +1 − ti
Impachetare (Binning)
Netezire (Moving-Average Smoothing)
(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
k=4 k=8
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 α
α=0.75 α=0.5
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
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
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ă.
Medie 2
(a doua fereastră)
Medie 1
(prima fereastră)
noise
Cum pot fie extrase cele două componente din
seria iniţială?
Netezire exponenţială
(α=0.25)
Tendinţa reală
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
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
Alte variante:
Eliminarea efectului sezonier z i = yi − yi − P
Întrebare:
• Poate fi reconstruită seria iniţială pornind de la estimările tendinţei şi
zgomotului?
original
reconstruit
original reconstruit
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ă)
1 n−L
∑
n − L i =1
( yi − avg (Y ))( yi + L − avg (Y ))
Autocorrelation( L) =
var(Y )
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ă
Ɛt reprezintă zgomotul
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ă)
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
Procesul de descoperire
Intrare:
Dacă valoarea absolută a lui si este mai mare decât un prag (e.g. 3) atunci se
consideră că este anomalie
Probleme:
Alegerea lui W
Alegerea pragului
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
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
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)
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
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
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
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)
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:
Reduce varianţa
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
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]
[Leo Breiman
https://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm]
Ideea de bază
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:
1 L
ε t = ∑ wiδ (M t ( xi ) ≠ yi )
L i =1
Importanţa (pondere) unui model/
clasificator:
1 1 − εt
αt = ln
2 εt
Se agreghează rezultatele:
B1
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
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
“document classif bag word spars vector occurr count word spars histogram
vocabulari comput vision bag visual word vector occurr count vocabulari local
imag featur”
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)
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)
Notaţii:
• n - nr de documente
• d – nr de termeni în lexicon
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)
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))
Măsura cosinus
• cos(u,v)= uTv/(||u|| ||v||)
Măsura Jaccard
• J(u,v)= uTv/(||u||2+ ||v||2- uTv)
• 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)
• Reminder:
• Se construieşte matricea de similaritate
• Se asignează fiecare dată la un cluster
• La fiecare etapă se reunesc clusterele cele mai apropiate (similare)
• 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