K-Nearest Neighbours (KNN): Ce este și cum este utilizat în învățarea automată

Publicat: 2024-12-18

K-nearest neighbors (KNN) este o tehnică de bază în învățarea automată (ML). Acest ghid vă va ajuta să înțelegeți KNN, cum funcționează și aplicațiile, beneficiile și provocările sale.

Cuprins

Care este algoritmul k-nearest neighbors?

Cum funcționează KNN?

Diferența dintre k-cei mai apropiați vecini și alți algoritmi

Cum este utilizat KNN în învățarea automată?

Aplicații ale KNN

Avantajele KNN

Dezavantajele KNN

Care este algoritmul k-nearest neighbors?

Algoritmul k-nearest neighbors (KNN) este o tehnică de învățare supravegheată utilizată atât pentru clasificare, cât și pentru regresie. KNN determină eticheta (clasificarea) sau valoarea prezisă (regresia) a unui anumit punct de date prin evaluarea punctelor de date din apropiere din setul de date.

Lucrați mai inteligent cu Grammarly
Partenerul de scriere AI pentru oricine are de lucru

Cum funcționează KNN?

KNN se bazează pe premisa că punctele de date care sunt spațial apropiate unul de celălalt într-un set de date tind să aibă valori similare sau să aparțină unor categorii similare. KNN folosește această idee simplă, dar puternică pentru a clasifica un nou punct de date prin găsirea unui număr prestabilit (hiperparametrul k) de puncte de date învecinate în setul de date de antrenament etichetat. Această valoare, k, este unul dintre hiperparametrii KNN, care sunt variabile de configurare prestabilite pe care practicienii ML le folosesc pentru a controla modul în care algoritmul învață.

Apoi, algoritmul determină care dintre valorile învecinate sunt cele mai apropiate de noul punct de date și îi atribuie aceeași etichetă sau categorie ca vecinii săi. Valoarea aleasă a lui k afectează performanța modelului. Valorile mai mici cresc sensibilitatea la zgomot, în timp ce valorile mai mari măresc robustețea, dar pot determina KNN să rateze modelele locale.

Apropierea sau distanța dintre punctele de date este calculată folosind metrici dezvoltate inițial pentru a măsura asemănarea punctelor dintr-un spațiu matematic. Valorile comune includ distanța euclidiană, distanța Manhattan și distanța Minkowski. Performanța KNN este afectată de metrica aleasă, iar diferitele valori funcționează mai bine cu diferite tipuri și dimensiuni de date.

De exemplu, numărul de parametri din date, care sunt atribute individuale care descriu fiecare punct de date, poate afecta performanța valorii. Indiferent de metrica de distanță aleasă, scopul este de a clasifica sau prezice un nou punct de date pe baza distanței acestuia față de alte puncte de date.

  • Distanța euclidianăeste distanța de-a lungul unei linii drepte dintre două puncte din spațiu și este metrica cel mai frecvent utilizată. Este cel mai bine utilizat pentru date cu un număr mai mic de dimensiuni și fără valori aberante semnificative.
  • Distanța Manhattaneste suma diferențelor absolute dintre coordonatele punctelor de date măsurate. Această măsurătoare este utilă atunci când datele au dimensiuni mari sau când punctele de date formează o structură asemănătoare grilei.
  • Distanța Minkowskieste o metrică reglabilă care poate acționa fie ca distanța Euclidiană, fie ca distanța Manhattan, în funcție de valoarea unui parametru reglabil. Ajustarea acestui parametru controlează modul în care este calculată distanța, ceea ce este util pentru adaptarea KNN la diferite tipuri de date.

Alte valori, mai puțin obișnuite, includ distanțe Chebyshev, Hamming și Mahalanobis. Aceste valori sunt mai specializate și sunt potrivite pentru anumite tipuri de date și distribuții. De exemplu, distanța Mahalanobis măsoară distanța unui punct de o distribuție de puncte, ținând cont de relațiile dintre variabile. Ca atare, distanța Mahalanobis este potrivită pentru lucrul cu date în care caracteristicile folosesc scale diferite.

KNN este adesea numit algoritm de învățare „leneș”, deoarece nu are nevoie de antrenament, spre deosebire de mulți alți algoritmi. În schimb, KNN stochează date și le folosește pentru a lua decizii numai atunci când punctele noi de date necesită regresie sau clasificare. Cu toate acestea, aceasta înseamnă că predicțiile au adesea cerințe de calcul ridicate, deoarece întregul set de date este evaluat pentru fiecare predicție. ∫

Diferența dintre k-cei mai apropiați vecini și alți algoritmi

KNN face parte dintr-o familie mai mare de tehnici ML supravegheate orientate spre clasificare și regresie, care include arbori de decizie / păduri aleatorii, regresie logistică și mașini de suport vector (SVMs). Cu toate acestea, KNN diferă de aceste tehnici datorită simplității și abordării directe a manipulării datelor, printre alți factori.

Arbori de decizie și păduri aleatorii

La fel ca KNN, arborii de decizie și pădurile aleatorii sunt utilizați pentru clasificare și regresie. Cu toate acestea, acești algoritmi folosesc reguli explicite învățate din datele în timpul antrenamentului, spre deosebire de abordarea KNN bazată pe distanță. Arborele de decizie și pădurile aleatorii tind să aibă viteze de predicție mai mari, deoarece au reguli pre-întregite. Aceasta înseamnă că sunt mai potrivite decât KNN pentru sarcini de predicție în timp real și pentru manipularea seturi de date mari.

Regresia logistică

Regresia logistică presupune că datele sunt distribuite liniar și clasifică datele folosind o linie dreaptă sau un hiperplan (o limită care separă punctele de date în spații de dimensiuni mai mari) pentru a separa datele în categorii. KNN, pe de altă parte, nu presupune o anumită distribuție a datelor. Ca atare, KNN se poate adapta mai ușor la date complexe sau neliniare, în timp ce regresia logistică este utilizată cel mai bine cu date liniare.

Suport mașini vectoriale

În loc să se uite la distanțe dintre puncte precum KNN, mașinile vectoriale de suport (SVM) se concentrează pe crearea unei linii de divizare clară între grupuri de puncte de date, adesea cu scopul de a face decalajul dintre ele cât mai mare posibil. SVM este excelent la manipularea seturilor de date complexe cu multe caracteristici sau atunci când este necesară o separare clară între grupurile de puncte de date. În comparație, KNN este mai simplu de utilizat și de înțeles, dar nu funcționează la fel de bine pe seturi de date mari.

Cum este utilizat KNN în învățarea automată?

Mulți algoritmi ML pot gestiona un singur tip de sarcină. KNN se remarcă prin capacitatea sa de a gestiona nu unul, ci două cazuri comune de utilizare: clasificare și regresie.

Clasificare

KNN clasifică punctele de date utilizând o metrică de distanță pentru a determina cei mai apropiați k vecini și atribuind o etichetă noului punct de date pe baza etichetelor vecinilor. Cazurile de utilizare obișnuite ale clasificării KNN includ clasificarea spam-ului prin e-mail, gruparea clienților în categorii pe baza istoricului achizițiilor și recunoașterea numerelor scrise de mână.

Regresia

KNN efectuează regresia prin estimarea valorii unui punct de date pe baza mediei (sau a mediei ponderate) a celor mai apropiați k vecini ai săi. De exemplu, KNN poate prezice prețurile caselor pe baza proprietăților similare din vecinătate, prețurile acțiunilor pe baza datelor istorice pentru stocuri similare sau temperatura pe baza datelor meteo istorice din locații similare.

Aplicații ale algoritmului KNN în ML

Datorită simplității sale relative și capacității de a efectua atât clasificarea, cât și regresia, KNN are o gamă largă de aplicații. Acestea includ recunoașterea imaginilor, sistemele de recomandare și clasificarea textului.

Recunoașterea imaginii

Recunoașterea imaginilor este una dintre cele mai comune aplicații ale KNN datorită abilităților sale de clasificare. KNN efectuează recunoașterea imaginii comparând caracteristicile din imaginea necunoscută, cum ar fi culorile și formele, cu caracteristicile dintr-un set de date de imagine etichetat. Acest lucru face ca KNN să fie util în domenii precum viziunea computerizată.

Sisteme de recomandare

KNN poate recomanda produse sau conținut utilizatorilor comparând datele lor de preferințe cu datele utilizatorilor similari. De exemplu, dacă un utilizator a ascultat mai multe melodii clasice de jazz, KNN poate găsi utilizatori cu preferințe similare și poate recomanda melodii de care aceștia le-au plăcut. Ca atare, KNN poate ajuta la personalizarea experienței utilizatorului, recomandând produse sau conținut pe baza unor date similare.

Clasificarea textelor

Clasificarea textului urmărește să clasifice textul necategorisit pe baza asemănării sale cu textul pre-categorizat. Capacitatea KNN de a evalua apropierea tiparelor de cuvinte îl face un instrument eficient pentru acest caz de utilizare. Clasificarea textelor este utilă în special pentru sarcini precum analiza sentimentelor, în care textele sunt clasificate ca pozitive, negative sau neutre sau pentru determinarea categoriei unui articol de știri.

Avantajele algoritmului KNN în ML

KNN are mai multe beneficii notabile, inclusiv simplitatea, versatilitatea și lipsa unei faze de antrenament.

Simplitate

În comparație cu mulți alți algoritmi ML, KNN este ușor de înțeles și de utilizat. Logica din spatele KNN este intuitivă - clasifică sau prezice (regresie) noi puncte de date pe baza valorilor punctelor de date din apropiere - făcându-l o alegere populară pentru practicanții ML, în special pentru începători. În plus, în afară de alegerea unei valori pentru k, este necesară reglarea minimă a hiperparametrului pentru a utiliza KNN.

Versatilitate

KNN poate fi folosit atât pentru sarcini de clasificare, cât și de regresie, ceea ce înseamnă că poate fi aplicat la o gamă largă de probleme și tipuri de date, de la recunoașterea imaginii până la predicția valorii numerice. Spre deosebire de algoritmii specializați limitați la un singur tip de sarcină, KNN poate fi aplicat oricărui set de date etichetat structurat corespunzător.

Faza de antrenament explicită

Multe modele ML necesită o fază de antrenament intensivă în timp și resurse înainte de a deveni utile. KNN, pe de altă parte, stochează pur și simplu datele de antrenament și le folosește direct la momentul predicției. Ca atare, KNN poate fi actualizat cu date noi, care sunt imediat disponibile pentru utilizare în predicție. Acest lucru face ca KNN să fie deosebit de atrăgător pentru seturile de date mici.

Dezavantajele algoritmului KNN în ML

În ciuda punctelor sale forte, KNN vine și cu mai multe provocări. Acestea includ costuri mari de calcul și de memorie, sensibilitate la zgomot și caracteristici irelevante și „blestemul dimensionalității”.

Costul de calcul al predicției

Deoarece KNN calculează distanța dintre un nou punct de date și fiecare punct de date din setul de date de antrenament general de fiecare dată când face o predicție, costul de calcul al predicției crește rapid pe măsură ce setul de date crește. Acest lucru poate duce la previziuni lente atunci când setul de date este mare sau KNN rulează pe hardware insuficient.

Blestemul dimensionalității

KNN suferă de așa-numitul „blestem al dimensionalității”, care îi limitează capacitatea de a gestiona date cu dimensiuni mari. Pe măsură ce numărul de caracteristici dintr-un set de date crește, majoritatea punctelor de date devin rare și aproape echidistante unele de altele. Ca atare, valorile distanței devin mai puțin utile, ceea ce face dificil pentru KNN să găsească vecini în seturi de date cu dimensiuni mari care sunt cu adevărat în apropiere.

Memorie intensivă

O caracteristică unică a KNN este că stochează întregul set de date de antrenament în memorie pentru a fi utilizat la momentul predicției. Când aveți de-a face cu memorie limitată sau seturi de date mari, acest lucru poate fi problematic și impractic. Alți algoritmi ML evită această provocare prin condensarea și distilarea datelor de antrenament în caracteristici învățate prin antrenamentul modelului și optimizarea parametrilor. KNN, pe de altă parte, trebuie să rețină fiecare punct de date, ceea ce înseamnă că memoria crește liniar odată cu dimensiunea setului de date de antrenament.

Sensibilitate la zgomot și caracteristici irelevante

Puterea KNN constă în calculul său simplu și intuitiv al distanței. Cu toate acestea, acest lucru înseamnă, de asemenea, că caracteristicile neimportante sau zgomotul pot cauza calcule înșelătoare ale distanței, afectând negativ acuratețea predicției. Ca atare, tehnicile de selecție a caracteristicilor sau de reducere a dimensionalității, cum ar fi analiza componentelor principale (PCA), sunt adesea folosite cu KNN pentru a se asigura că caracteristicile importante au cea mai mare influență asupra predicției.