GeeksforGeeks (Română)
K-Near Neighbours este unul dintre cei mai de bază, dar esențiali algoritmi de clasificare în Machine Learning. Aparține domeniului de învățare supravegheat și găsește o aplicație intensă în recunoașterea modelelor, extragerea datelor și detectarea intruziunilor.
Este de unică folosință în scenarii din viața reală, deoarece este non-parametric, orice presupuneri subiacente cu privire la distribuția datelor (spre deosebire de alți algoritmi, cum ar fi GMM, care presupun o distribuție gaussiană a datelor date).
Ni se oferă câteva date anterioare (numite și date de antrenament), care clasifică coordonatele în grupuri identificate printr-un atribut.
De exemplu, luați în considerare următorul tabel de puncte de date care conține două caracteristici:
Acum, având în vedere un alt set de puncte de date ( numite și date de testare), alocați aceste puncte un grup analizând setul de instruire. Rețineți că punctele neclasificate sunt marcate ca „Alb”.
Intuiție
Dacă trasăm aceste puncte pe un grafic, este posibil să putem localiza unele grupuri sau grupuri. Acum, având în vedere un punct neclasificat, îl putem atribui unui grup observând la ce grup aparțin cei mai apropiați vecini. Aceasta înseamnă că un punct apropiat de un grup de puncte clasificate ca „Roșu” are o probabilitate mai mare de a fi clasificat ca „Roșu”.
Intuitiv, putem vedea că primul punct (2.5, 7) ar trebui să fie clasificat ca „Verde” și al doilea punct (5.5, 4.5) ar trebui clasificat ca „Roșu”.
Algoritm
Fie m numărul de eșantioane de date de antrenament. Fie p un punct necunoscut.
- Stocați mostrele de instruire într-o serie de puncte de date arr. Aceasta înseamnă că fiecare element al acestei matrice reprezintă un tuplu (x, y).
-
for i=0 to m: Calculate Euclidean distance d(arr, p).
- Faceți setul S de K la distanțe mici obținute . Fiecare dintre aceste distanțe corespunde unui punct de date deja clasificat.
- Returnați eticheta majorității printre S.
K poate fi păstrat ca număr impar, astfel încât să putem calcula o majoritate clară în cazul în care sunt posibile doar două grupuri (de ex. Roșu / Albastru). Odată cu creșterea K, obținem limite mai fine și mai definite în diferite clasificări. De asemenea, acuratețea clasificatorului de mai sus crește pe măsură ce creștem numărul de puncte de date din setul de antrenament.
Program de exemplu
Să presupunem 0 și 1 ca cei doi clasificatori (grupuri).
Ieșire:
The value classified to unknown point is 0.
Acest articol este contribuit de Anannya Uberoi. Dacă vă place GeeksforGeeks și doriți să contribuiți, puteți scrie, de asemenea, un articol folosind contributie.geeksforgeeks.org sau puteți trimite articolul dvs. prin e-mail la [email protected]. Vedeți articolul dvs. care apare pe pagina principală GeeksforGeeks și ajutați alți Geeks.