Sunteți pe pagina 1din 18

Algoritmul K-Nearest

Neighbors
REALIZAT DE FLORINA TOFAN
Informatii generale

 Este utilizat pentru clasificări sau pentru predicţii (în


cazul rezultatelor numerice);
 Pentru a clasifica sau prezice o noua dată, metoda se
bazează pe găsirea altor înregistrări similare în datele
de antrenament. Aceşti “vecini” sunt apoi folosiţi
pentru a deriva o clasificare/ predicţie pentru noul
obiect prin votare (pentru clasificare) sau printr-o
medie (pentru predicţie).
Determinarea vecinilor

 Algoritmul K-NN este o metodă de clasificare care nu


ţine cont de relaţiile dintre membrii sau atributele
claselor, ci se foloseşte de informaţiile extrase din
similitudinile dintre valorile atributelor înregistrărilor.
Vecinii sunt aleşi dintr-un set de obiecte pentru care se
cunoaşte clasificarea corectă. Ei pot fi consideraţi ca
fiind echivalentul datelor de învăţare, deşi nu există o
etapă specifică de antrenare.
Reguli de clasificare

 După calcularea distanţei dintre obiectul care trebuie


clasificat şi celelate înregistrări, este necesară o regulă de
asociere a acestuia la una din clasele primilor k vecini cu
cea mai mică distanţă.
 Există mai multe tehnici de clasificare a noului vector la o
clasă particulară, cea mai utilizată fiind adăugarea acestuia
la clasa predominantă a celor k vecini.
 Pentru alegerea unui k potrivit se pot utiliza diferite metode
euristice (de exemplu, crossvalidation- validarea
încrucişată).
Avantaje

 Principalul avantaj al K-NN este simplitatea şi lipsa


presupunerilor parametrizate. De asemenea, în cazul unui
set mare de date, algoritmul are rezultate foarte bune.
 Un alt factor care influenţează performanţa algoritmului este
caracterizarea unei clase prin multilple combinaţii de
atribute. Spre exemplu, având o bază de date de
imobiliare, există o probabilitate mai mare ca multiple
combinaţii între {tipul locuinţei, numărul de camere, cartier,
preţ} să caracterizeze locuinţele care se vând repede versus
cele care rămân pe piaţă o perioada mai mare de timp.
Dezavantaje

 Dificultăţile observate au în vedere faptul că precizia algoritmului


KNN este afectată de existenţa caracteristicilor irelevante.
 O alta problemă sesizată se referă la durata găsirii celui mai
apropiat vecin, care este destul de mare, mai ales în cazul unui set
de date de antrenament voluminos.
 Ultimul dezavantaj observat se referă la numărul mare de atribute.
Pentru un cub lungimea diagonalei este √3, dar pentru un
hipercub cu 100 de dimensiuni, lungimea e egala cu 100. Cu cât
numărul de atribute este mai mare, cu atât datele din acel spatiu
sunt mai rare şi este cu atat mai greu de realizat un model de
clasificare precis.
Exemplu

 Luam ca exemplu repartizarea angajatilor in birouri astfel incat sa


fie in cel mai bun loc pentru ei.
 Să zicem că avem o companie cu 3 angajati și 3 birouri. Vrem să
recrutăm încă trei angajati, cu condiția ca fiecare angajat să intre
într-un birou. La final, vom avea 6 angajati la companie, câte doi
in fiecare birou.
 Vom folosi algoritmul K-Nearest Neighbor pentru a distribui
angajatii noi în biroul care le va corespunde.
Date

 În primul rând, vom avea nevoie de un set de date. M-am


gândit să obțin aceste date din relațiile dintre persoane
cu caracteristici diferite (religie, rădăcini, detalii personale
etc.).
 În acest exemplu, luăm 3 atribute pentru a calcula
distanța: situația familiară, rădăcinile și interesele.
Distanta

 Vom folosi un tabel care are distanțe bazate pe înțelegere între


două caracteristici ale angajatilor. Acest tabel va avea 0 în
diagonală, deoarece 2 angajați care au aceeași caracteristică
sunt apropiați, aceste valori pot fi schimbate din când în când și
extrase de la acțiuni din viața reală, cum ar fi dacă rasismul este
mare într-o țară A față de țara B, distanța dintre un angajat de la A
și altul de la B va fi lungă.
 Vom utiliza suma distanțelor în locul distanței euclidiene în KNN.
Lista angajatilor
Tabelele distantelor

 Notă: Numerele de pe tabele


sunt numere aleatorii, nu se
bazează pe nimic.

 Notă: ar trebui să utilizați cât


mai multe atribute pentru a
obține rezultate bune.
Situatia initiala a companiei:

Vom clasifica cei 3


angajati noi care
sunt: Chris, Jordan și
Adam.
Trebuie să punem fiecare
angajat in fiecare birou,
deci trebuie să calculăm
distanța dintre fiecare
nou angajat și fiecare
angajat vechi.
Calcularea distanțelor:

 Pentru Chris:
D (Chris, Jake) = D (Single, Căsătorit) + D (Africa, America) + D (Sport, Artă)=1+1.1+0.9=3
D (Chris, Carly) = D (Single, Căsătorit) + D (Africa, Asia) + D (Sport, Sport)=1+1+0=2
D (Chris, Ariana) = D (Single, Divorțat) + D (Africa, Europa) + D (sport, călătorii)=2+1.8+0.6=4.4
 Pentru Iordania:
D (Iordania, Jake) = D (căsătorit, căsătorit) + D (Africa, America) + D (artă, artă)=0+1.1+0=1.1
D (Iordania, Carly) = D (căsătorit, căsătorit) + D (Africa, Asia) + D (artă, sport)=0+1+0.9=1.9
D (Iordania, Ariana) = D (Căsătorit, Divorțat) + D (Africa, Europa) + D (Art, Călătorii)=1.5+1.8+1.2=4.5
 Pentru Adam:
D (Adam, Jake) = D (Single, Căsătorit) + D (Arab, America) + D (Sport, Artă)=1+2+0.9=3.9
D (Adam, Carly) = D (Single, Căsătorit) + D (Arab, Asia) + D (Sport, Sport)=1+0.9+0=1.9
D (Adam, Ariana) = D (Single, Divorțat) + D (Arab, Asia) + D (Sport, Sport)=1.5+0.9+0=2.4
Rezultate după calcularea distanțelor

Din tabel și grafic putem


clasifica astfel cei 3 angajați
noi:
Chris va fi la biroul numărul 2
cu Carly.
Jordan va fi la biroul numărul
1 împreună cu Jake.
Adam va fi în biroul numărul 3
cu Ariana.
Situatia finala a companiei
Concluzie

 Am reușit să evităm clasificarea aleatorie a noilor


angajati într-o companie, avem acum ceva pe care să
ne bazăm când un angajat nou intră într-o companie și
vrem să-l punem în locul potrivit pentru o productivitate
mai bună din partea angajaților, și mai puține conflicte
în companie.
Referinte

 http://www.cs.ubbcluj.ro/~gabis/DocDiplome/Instance
BasedL/Morariu%20Alina%20Bianca-
%20Lucrare%20de%20licenta.pdf

 https://towardsdatascience.com/use-k-nearest-
neighbor-knn-for-a-better-company-35b343ed2050

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