Sunteți pe pagina 1din 9

PAP1913

ALGORITMUL
KNN
Realizat de Dombrovschi Iulia
Introducere în algoritmul KNN

Algoritmul lui K Near Neighbour, cunoscut sub


numele de KNN este algoritmul de bază
pentru învățarea mașinii. Înțelegerea acestui
algoritm este un loc foarte bun pentru a
începe învățarea învățării automate, deoarece
logica din spatele acestui algoritm este
încorporată în multe alte modele de învățare
automată. Algoritmul K Near Neighbour intră
în partea de clasificare în învățarea
supravegheată.
Ce este învățarea supravegheată?

Algoritmul de învățare supravegheat


este un fel de algoritm în care se
bazează pe o intrare etichetată pentru a
învăța și prezice pe baza funcției atunci
când sunt furnizate date fără etichetare.
Deoarece am înțeles ce învățare
supravegheată este să vedem ce este
clasificarea, algoritmul de clasificare dă
o valoare discretă ca o ieșire, nu ca valori
continue.
Pașii algoritmului KNN:
1. Se stabilește valoarea lui k în raport cu numărul de exemple de antrenament pe
care le avem la dispoziție.
2. Pentru fiecare exemplu din setul de testare se stabilește clasa acestuia astfel:
3. Se calculează similaritatea dintre exemplul de testare și toate exemplele avute
în setul de antrenare. Pentru calculul similarității se pot folosi oricare dintre
metricile de similaritate descrise mai jos.
4. Se iau primele k exemple dintre cele de antrenare care sunt cele mai similare cu
exemplul curent de testare și pe baza lor se stabilește clasa exemplului de testare
folosind votul majoritar.
5. Se verifică dacă clasificarea este sau nu corectă pe baza informaților deținute în
fișierul de testare.
6. Atâta timp cât mai sunt exemple de testare se reia de la pasul 3.
7. Se evaluează calitatea clasificării pentru valoarea lui k curenta, folosind
metricile externe de evaluare a algoritmilor de învățare cum ar fi acuratețea de
clasificare, precizia, recall, true negative rate etc…).
Acestea sunt diagramele aceluiași set de date cu
valori K diferite, valoarea K este 1 pentru complotul
din colțul din stânga sus și cel mai mare pentru
parcela din colțul din dreapta jos. Dacă examinăm cu
atenție, putem înțelege că limita algoritmului de
clasificare devine lină pe măsură ce valoarea lui K
crește. Aceasta este valoarea lui K este direct
proporțională cu netezimea graniței. Prin urmare,
putem înțelege că dacă valoarea K este setată la 1,
atunci modelul de instruire va potrivi datele și dacă
valoarea K este setată la un număr mare, atunci
acestea vor potrivi datele. Pentru a alege o valoare
optimă de K trebuie să verificăm eroarea de validare
cu mai multe valori K și să alegem una cu eroarea
minimă.
Cum funcționează algoritmul
KNN?
În setarea clasificării, algoritmul cel mai
apropiat de vecinul K se rezumă, în esență,
la formarea unui vot majoritar între cele
mai multe instanțe K similare cu o
observație „nevăzută” dată. Asemănarea
este definită în funcție de metrica
distanței dintre două puncte de date. Una
populară este metoda distanței euclidiene
Puține idei despre alegerea unei valori pentru „ K ‘
Nu există nicio metodă structurată pentru a găsi cea mai bună valoare pentru „K”. Trebuie să aflăm
cu diferite valori prin încercare și eroare și presupunând că datele de antrenament sunt
necunoscute.
Alegerea unor valori mai mici pentru K poate fi zgomotoasă și va avea o influență mai mare asupra
rezultatului.
3) Valorile mai mari ale lui K vor avea limite de decizie mai fine, ceea ce înseamnă o varianță mai
mică, dar a crescut prejudecată. De asemenea, scump din punct de vedere al calculului.

4) O altă modalitate de a alege K este prin validare încrucișată. O modalitate de a selecta setul de
date de validare încrucișată din setul de date de antrenament. Luați partea mică din setul de date
de antrenament și numiți-l set de date de validare, apoi folosiți același lucru pentru a evalua
diferite valori posibile ale lui K. Astfel vom prezice eticheta pentru fiecare instanță din setul de
validare folosind cu K este egal cu 1, K este egal cu 2, K este egal cu 3 .. și apoi ne uităm la ce
valoare a lui K ne oferă cea mai bună performanță pe setul de validare și atunci putem lua acea
valoare și folosiți acest lucru ca setare finală a algoritmului nostru, astfel încât să minimalizăm
eroarea de validare. mostre în setul de date de antrenament.

6) Încercați să păstrați valoarea lui k impar pentru a evita confuzia între două clase de date
VERSIUNEA NAIVĂ A ALGORITMULUI ESTE UȘOR DE
IMPLEMENTAT PRIN CALCULUL DISTANȚELOR DE LA EXEMPLUL
DE TESTARE LA TOATE EXEMPLELE STOCATE, DAR ESTE
INTENSIVĂ DIN PUNCT DE VEDERE COMPUTAȚIONAL PENTRU
SETURI MARI DE ANTRENAMENT. FOLOSIREA UNUI ALGORITM
DE CĂUTARE APROXIMATIV PENTRU CEL MAI APROPIAT VECIN
FACE CA K-NN SĂ FIE TRATABIL DIN PUNCT DE VEDERE
COMPUTAȚIONAL CHIAR ȘI PENTRU SETURI MARI DE DATE.
MULȚI ALGORITMI DE CĂUTARE A VECINILOR APROPIATI AU
FOST PROPUȘI DE-A LUNGUL ANILOR; ACESTEA URMĂRESC ÎN
GENERAL SĂ REDUCĂ NUMĂRUL DE EVALUĂRI LA DISTANȚĂ
EFECTUATE EFECTIV.

K-NN ARE UNELE REZULTATE PUTERNICE DE CONSISTENȚĂ. PE


MĂSURĂ CE CANTITATEA DE DATE SE APROPIE DE INFINIT,
ALGORITMUL K-NN CU DOUĂ CLASE ESTE GARANTAT PENTRU A
PRODUCE O RATĂ DE EROARE NU MAI MICĂ DE DOUĂ ORI RATA
DE EROARE BAYES (RATA DE EROARE MINIMĂ REALIZABILĂ
AVÂND ÎN VEDERE DISTRIBUȚIA DATELOR). SUNT POSIBILE
DIFERITE ÎMBUNĂTĂȚIRI ALE VITEZEI K-NN PRIN UTILIZAREA
GRAFICELOR DE PROXIMITATE.
Multumesc pentru atentie!

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