ciot Ce este un KNN (K-Nearest Neighbours)? - Unite.AI
Conectează-te cu noi
Masterclass AI:

AI 101

Ce este un KNN (K-Nearest Neighbours)?

mm
Actualizat on

Ce este K-Nearest Neighbours (KNN)?

K-Nearest Neighbours este o tehnică de învățare automată și un algoritm care poate fi folosit atât pentru sarcini de regresie, cât și de clasificare. K-Cei mai apropiati vecini examinate etichetele unui număr ales de puncte de date care înconjoară un punct de date țintă, pentru a face o predicție despre clasa în care se încadrează punctul de date. K-Nearest Neighbors (KNN) este un algoritm conceptual simplu, dar foarte puternic și, din aceste motive, este unul dintre cei mai populari algoritmi de învățare automată. Să aruncăm o privire profundă în algoritmul KNN și să vedem exact cum funcționează. O bună înțelegere a modului în care funcționează KNN vă va permite să apreciați cele mai bune și cele mai rele cazuri de utilizare pentru KNN.

Prezentare generală a K-Nearest Neighbours (KNN)

Foto: Antti Ajanki AnAj prin Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:KnnClassification.svg)

Să vizualizăm un set de date pe un plan 2D. Imaginează-ți o grămadă de puncte de date pe un grafic, răspândite de-a lungul graficului în grupuri mici. KNN examinează distribuția punctelor de date și, în funcție de argumentele date modelului, separă punctele de date în grupuri. Aceste grupuri li se atribuie apoi o etichetă. Presupunerea principală pe care o face un model KNN este că punctele/instanțele de date care există în imediata apropiere unele de altele sunt foarte asemănătoare, în timp ce dacă un punct de date este departe de alt grup, este diferit de acele puncte de date.

Un model KNN calculează similaritatea folosind distanța dintre două puncte dintr-un grafic. Cu cât distanța dintre puncte este mai mare, cu atât acestea sunt mai puțin asemănătoare. Există mai multe moduri de a calcula distanța dintre puncte, dar cea mai comună măsurătoare a distanței este doar distanța euclidiană (distanța dintre două puncte într-o linie dreaptă).

KNN este un algoritm de învățare supravegheată, ceea ce înseamnă că exemplele din setul de date trebuie să aibă etichete atribuite lor/clasele lor trebuie să fie cunoscute. Mai sunt două lucruri importante de știut despre KNN. În primul rând, KNN este un algoritm non-parametric. Aceasta înseamnă că nu se fac ipoteze despre setul de date atunci când este utilizat modelul. Mai degrabă, modelul este construit în întregime din datele furnizate. În al doilea rând, nu există o împărțire a setului de date în seturi de antrenament și de testare atunci când se utilizează KNN. KNN nu face generalizări între un set de antrenament și un set de testare, astfel încât toate datele de antrenament sunt folosite și atunci când modelului i se cere să facă predicții.

Cum funcționează un algoritm KNN

Un algoritm KNN trece prin trei faze principale pe măsură ce este realizat:

  1. Setarea K la numărul ales de vecini.
  2. Calcularea distanței dintre un exemplu furnizat/test și exemplele de seturi de date.
  3. Sortarea distantelor calculate.
  4. Obținerea etichetelor primelor K intrări.
  5. Se returnează o predicție despre exemplul de testare.

În primul pas, K este ales de utilizator și îi spune algoritmului câți vecini (câte puncte de date din jur) ar trebui să fie luați în considerare atunci când se pronunță o judecată despre grupul căruia îi aparține exemplul țintă. În al doilea pas, rețineți că modelul verifică distanța dintre exemplul țintă și fiecare exemplu din setul de date. Distanțele sunt apoi adăugate într-o listă și sortate. Ulterior, lista sortată este verificată și etichetele pentru primele K elemente sunt returnate. Cu alte cuvinte, dacă K este setat la 5, modelul verifică etichetele primelor 5 puncte de date cele mai apropiate de punctul de date țintă. Când redați o predicție despre punctul de date țintă, contează dacă sarcina este a regres or clasificare sarcină. Pentru o sarcină de regresie, se folosește media etichetelor K de sus, în timp ce în cazul clasificării se folosește modul K etichetelor de sus.

Operațiile matematice exacte utilizate pentru a efectua KNN diferă în funcție de metrica distanței aleasă. Dacă doriți să aflați mai multe despre modul în care sunt calculate valorile, puteți citi despre unele dintre cele mai comune valori ale distanței, cum ar fi euclidiană, Manhattan, și Minkowski.

De ce contează valoarea lui K

Principala limitare atunci când se utilizează KNN este că într-o valoare necorespunzătoare a lui K (numărul greșit de vecini care trebuie luat în considerare) poate fi ales. Dacă se întâmplă acest lucru, previziunile care sunt returnate pot fi dezactivate substanțial. Este foarte important ca, atunci când se folosește un algoritm KNN, să fie aleasă valoarea potrivită pentru K. Doriți să alegeți o valoare pentru K care să maximizeze capacitatea modelului de a face predicții asupra datelor nevăzute, reducând în același timp numărul de erori pe care le face.

Foto: Agor153 prin Wikimedia Commons, CC BY SA 3.0 (https://en.wikipedia.org/wiki/File:Map1NN.png)

Valorile mai mici ale lui K înseamnă că predicțiile oferite de KNN sunt mai puțin stabile și mai puțin fiabile. Pentru a obține o intuiție de ce este așa, luați în considerare un caz în care avem 7 vecini în jurul unui punct de date țintă. Să presupunem că modelul KNN funcționează cu o valoare K de 2 (îi cerem să se uite la cei mai apropiați doi vecini pentru a face o predicție). Dacă marea majoritate a vecinilor (cinci din șapte) aparțin clasei Albastru, dar cei mai apropiați doi vecini se întâmplă să fie roșii, modelul va prezice că exemplul de interogare este roșu. În ciuda presupunerii modelului, într-un astfel de scenariu Albastrul ar fi o presupunere mai bună.

Dacă acesta este cazul, de ce nu alegem pur și simplu cea mai mare valoare K pe care o putem? Acest lucru se datorează faptului că a-i spune modelului să ia în considerare prea mulți vecini va reduce, de asemenea, precizia. Pe măsură ce raza pe care modelul KNN o consideră crește, în cele din urmă va începe să ia în considerare punctele de date care sunt mai aproape de alte grupuri decât sunt punctul de date țintă și va începe să apară clasificarea greșită. De exemplu, chiar dacă punctul care a fost ales inițial se afla într-una dintre regiunile roșii de mai sus, dacă K a fost setat prea mare, modelul ar ajunge în celelalte regiuni pentru a lua în considerare punctele. Când se utilizează un model KNN, se încearcă diferite valori ale lui K pentru a vedea care valoare oferă modelului cea mai bună performanță.

Avantaje și dezavantaje KNN

Să examinăm câteva dintre avantajele și dezavantajele modelului KNN.

Pro-uri:

KNN poate fi folosit atât pentru sarcini de regresie, cât și pentru sarcini de clasificare, spre deosebire de alți algoritmi de învățare supravegheată.

KNN este foarte precis și simplu de utilizat. Este ușor de interpretat, înțeles și implementat.

KNN nu face nicio presupunere cu privire la date, ceea ce înseamnă că pot fi utilizate pentru o mare varietate de probleme.

Contra:

KNN stochează majoritatea sau toate datele, ceea ce înseamnă că modelul necesită multă memorie și este costisitor din punct de vedere computațional. Seturile mari de date pot determina, de asemenea, ca predicțiile să dureze mult.

KNN se dovedește a fi foarte sensibil la scara setului de date și poate fi eliminat de caracteristici irelevante destul de ușor în comparație cu alte modele.

Rezumatul K-Nearest Neighbours (KNN)

K-Nearest Neighbours este unul dintre cei mai simpli algoritmi de învățare automată. În ciuda cât de simplu este KNN, în concept, este și un algoritm puternic care oferă o precizie destul de mare în majoritatea problemelor. Când utilizați KNN, asigurați-vă că experimentați cu diferite valori ale lui K pentru a găsi numărul care oferă cea mai mare acuratețe.

Blogger și programator cu specialități în Invatare mecanica și Invatare profunda subiecte. Daniel speră să-i ajute pe alții să folosească puterea AI pentru binele social.