Sunteți pe pagina 1din 18

Învățarea automată

(Machine Learning)
Curs 2
Obiective
• Prezentarea conceptelor care definesc clasificatorul bazat pe cei mai
apropiați vecini (k-NN).
• Argumentele pentru care acest clasificator este considerat leneș
(metoda de clasificare este considerată lentă).
• Prezentarea metodelor de măsurare a similarității utilizând distanța.
• Exemplificarea utilizării k-NN pentru diagnosticarea cancerului la sân.
Clasificarea utilizând cei mai apropiați vecini
”Cine se aseamănă se adună” (proverb românesc)
”Birds of a feather flocks together” (English saying)
• k-Nearest Neighbors (k-NN)
• clasifică noi exemple, neetichetate, prin atribuirea clasei exemplelor cele mai
asemănătoare, deja etichetate.
• sunt potriviți pentru sarcini de clasificare în care relațiile dintre atribute și
clase sunt numeroase, complicate, destul de dificil de înțeles dar totuși,
articolele din clase similare tind să fie destul de omogene
(Interpretare: Dacă un concept este dificil de definit dar poate fi ușor
recunoscut, atunci când este văzut, metoda celor mai apropiați vecini este
recomandată. În caz contrar, dacă nu există o distincție clară între grupuri,
algoritmul nu este potrivit pentru identificarea frontierelor ce separă clasele.)
Aplicații ale k-NN
• Aplicații de vedere artificială (inclusiv recunoașterea optică a
caracterelor atât în imagini statice cât și video).
• Predicția dacă unei persoane îi va place un film care i-a fost
recomandat (vezi Netflix).
• Identificarea tiparelor în datele genetice pentru identificarea
anumitor proteine sau boli.
• Diagnosticarea cancerului la sân utilizând informații despre aspectul și
forma celulelor anormale din biopsii.
• Etc.
Avantaje și dezavantaje k-NN
• Avantaje: • Dezavantaje:
• Este foarte simplu și eficient. • Nu produce un model în
• Nu face nicio presupunere privind adevăratul sens al cuvântului ceea
distribuția datelor de antrenare. ce îi limitează posibilitatea de a
• Etapa de antrenare este extrem de descoperi relații între atribute.
rapidă (mai precis, nu există o • Fază de clasificare este lentă (se
etapă de antrenare propriu-zisă). rezumă la o căutarea în setul de
date de antrenare).
• Poate necesita volume mari de
memorie.
• Atributele nominale și cele cu
valori lipsă necesită procesare
suplimentare.
Calcularea distanței
• Localizarea celor mai apropiați vecini este necesară o funcție distanță
sau o formulă care să măsoare similaritatea între două instanțe.
• Exemple de funcții distanță pentru variabile cu valori numerice:
• distanța euclidiană
!"#$ %, ' = %) − ') + +. . . + %. − '. +

• distanța Manhattan
!"#$ %, ' = %) − ') +. . . + %. − '.
• distanța Minkowski
/
!"#$ %, ' = %) − ') 0 +. . . + %. − '. 0

• etc.
Exemplu de utilizare k-NN (1)
Exemplu de utilizare k-NN (2)
Exemplu de utilizare k-NN (3)
Alegerea unei valori potrivite pentru k (1)
• Numărul de vecini care trebuie să fie
utilizați pentru k-NN determină cât de
bine va generaliza mai departe
modelul pe date noi.
• Un k prea mare reduce impactul variației
cauzat de zgomotul din date dar poate
duce la ignorarea unor tipare mici și
importante.
• Un k prea mic poate duce la supra-
antrenare și permite ca zgomotul din
date sau datele extreme să influențeze
rezultatul.
• Ideal, trebuie găsit echilibrul
(compromisul) între variație și tendință
(bias – variance tradeoff).
• În practică, depinde de complexitatea
conceptului ce trebuie învățat
Alegerea unei valori potrivite pentru k (1)
• Euristici utilizate în practică pentru alegerea numărului de vecini:
• se preferă valori între 3 și 10
• se alege rădăcina pătrată din numărul de exemple de antrenare
• se testează mai multe valori diferite pe diverse date de test
• se începe cu o valoare mare și se aplică un vot ponderat cu inversul distanței
până la vecini
• Observație: În general, pentru seturi de date mai mari și mai
reprezentative, alegerea lui k este mai puțin importantă.
(Deoarece chiar și cele mai subtile concepte au un bazin suficient de exemple
care să voteze ca cei mai apropiați vecini.)
Pregătirea datelor înainte de utilizarea k-NN
• Normalizarea min-max
• aducerea valorilor atributelor între 0 și 1
! − '() !
!"#$ =
'*+ ! − '() !
• Standardizarea z-score
• evaluează câte deviații standard se află deasupra sau dedesubtul valorii medii
! − , ! − ./*) !
!"#$ = =
- 0123/4 !
• Tratarea atributelor cu valori simbolice
• introducerea de atribute suplimentare, în cazul atributelor categoriale
1, (9+ = '*5/
'*5/ = 6
0, ;1ℎ/=>(?/
• numerotarea nivelurilor, în cazul atributelor cu valori ordinale
De ce algoritmul k-NN este considerat leneș?
• Metoda k-NN nu respectă definiția învățării:
• nu se realizează nicio abstractizare
• nu se construiește niciun model al datelor (învățare non-parametrică)
• se stochează datele de antrenare așa cum apar (învățare bazată pe instanțe
sau învățare pe de rost)
• Avantaj: pasul de antrenare să se desfășoare foarte rapid
• Dezavantaj: procesul de realizare a predicției să se desfășoare relativ încet (este un
proces de căutare)
Utilizarea k-NN în diagnosticarea cancerului la
sân (1)
• Pasul 1 – colectarea datelor
• Se utilizează setul de date ”Breast Cancer Wisconsin Diagnostic” din depozitul de date UCI
Machine Learning Repository (http://archive.ics.uci.edu/ml).
• Aceste date au fost donate de cercetătorii de la Universitatea din Wisconsin și includ
măsurătorile din imaginile digitizate ale biopsiilor unor țesuturi anormale.
• Valorile reprezintă caracteristici ale nucleelor celulelor prezente în imagine.
• Pasul 2 – explorarea și pregătirea datelor
• Descărcarea și importarea fișierului cu date în format CSV (wisc_bc_data.csv)
• Se elimină coloana ID
• Transformarea – normalizarea datelor
• se definește funcția de normalizare și se aplică pe atributele numerice
> normalize <- function(x) {
return ((x-min(x))/(max(x)-min(x)))
}
• Pregătirea datelor – crearea seturilor de date de antrenare și test
> wbcd_train <- wbcd_n[1:469, ]
> wbcd_test <- wbcd_n[470:569, ]
> wbcd_train_labels <- wbcd[1:469, 1]
> wbcd_test_labels <- wbcd[470:569, 1]
Utilizarea k-NN în diagnosticarea cancerului la
sân (2)
• Pasul 3 – ”antrenarea” unui model
• Pentru algoritmul k-NN, faza de antrenare nu implică de fapt construcția
niciunui model – procesul de antrenare al unui clasificator leneș cum ar fi
k-NN implică stocarea intrării într-un format structurat de date.
• Din moment ce datele de antrenare includ 469 de exemple, stabilim k = 21,
cel mai apropiat număr impar de radical din 469. Utilizarea unui număr impar
va reduce șansa apariției balotajului.
• Se va utiliza implementarea k-NN din pachetul class, care furnizează un set de
funcții de clasificare de bază:
> wbcd_test_pred <- knn(train=wbcd_train_, test=wbcd_test, cl = wbncd_train_labels, k=21)
Utilizarea k-NN în diagnosticarea cancerului la
sân (3)
• Pasul 4 – evaluarea
performanței modelului
• Se utilizează funcția CrossTable
din pachetul gmodels.
Cross_Table(x=wbcd_test_labels, y =
wbcd_test_pred, prop.chisq=FALSE)

• TN = true – negative
• TP = true – positive
• FN = false – negative
• FP = false - positive
Utilizarea k-NN în diagnosticarea cancerului la
sân (4)
• Pasul 5 – îmbunătățirea
performanțelor modelului
• Transformarea prin standardizare
z-score
• deoarece z-score nu are margini
predefinite pentru minim și maxim
permite o evidențiere mai bună a
valorilor extreme
• Testarea altor valori pentru k
Bibliografie
• Tom Mitchell, Machine Learning, McGraw-Hill, 1997
• Max Kuhn, Kjell Johnson, Applied Predictive Modeling, Springer, 2013
• Brett Lantz, Machine Learning with R, Packt Publishing, 2013
• Pawel Cichocz, Data Mining Algorthims Explained Using R, Wiley,
2015
• Michaels Berthold, David J. Hands (Eds.), Intelligent Data Analysis,
Springer, 2003
• ***, Manual R, https://cran.r-project.org/doc/manuals/r-release/R-
intro.html

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