Algoritmul K-Nearest Neighbours în R [Ghid final cu exemple]

Publicat: 2020-03-20

Algoritmul KNN în R este destul de popular datorită versatilității și funcționalității sale. Deci trebuie să fi auzit de numele său din când în când dacă studiezi învățarea automată. Și trebuie să te-ai întrebat: „Ce este KNN în R?” sau „Cum funcționează?”.

În acest articol, vom găsi răspunsuri la aceste întrebări și vă vom ajuta să înțelegeți temeinic acest subiect. Așa că, fără alte prelungiri, să ne aruncăm.

Cuprins

Ce este algoritmul KNN?

KNN înseamnă K Nearest Neighbor. Este un algoritm de învățare automată supravegheat care clasifică punctele de date în clase țintă în funcție de caracteristicile punctelor de date adiacente ale punctelor.

Să presupunem că doriți ca aparatul dvs. să identifice imaginile cu mere și portocale și să facă distincția între ele. Pentru a face asta, va trebui să introduceți un set de date de imagini cu măr și portocaliu. Apoi, va trebui să-ți antrenezi modelul de date permițându-l să detecteze fiecare fruct prin caracteristicile lor unice. De exemplu, ar putea recunoaște merele prin culoarea roșie și portocalele prin culoarea lor.

După ce v-ați antrenat modelul de date, îl puteți testa oferindu-i un nou set de date cu alte imagini cu mere și portocale. Acum, algoritmul KNN va separa merele și portocalele prin clasificarea lor în funcție de caracteristicile pe care le-a observat în modelul de antrenament.

Ar compara caracteristicile unui punct de date cu cele vecine pentru a vedea cât de asemănătoare sunt. Și le va clasifica în funcție de aceste constatări.

În multe cazuri, veți reprezenta punctele pe un grafic. Și pentru a calcula distanța dintre două puncte, va trebui să utilizați formule diferite. Cea mai comună metodă de calcul a distanței dintre două puncte de date este distanța euclidiană. Acesta calculează distanța, indiferent de proprietățile sau atributele prezente în puncte.

Caracteristicile algoritmului KNN

Următoarele sunt caracteristicile algoritmului KNN în R:

  • Este un algoritm de învățare supravegheată. Aceasta înseamnă că folosește date de intrare etichetate pentru a face predicții despre ieșirea datelor.
  • Este un algoritm simplu de învățare automată
  • Puteți utiliza algoritmul KNN pentru mai multe tipuri de probleme
  • Este un model neparametric. Aceasta înseamnă că nu face nicio presupunere cu privire la date, ceea ce face că este destul de utilă rezolvarea problemelor legate de datele reale.
  • Clasifică datele comparând punctele de date cu cele învecinate. Cu cuvinte simple, funcționarea algoritmului KNN se bazează pe asemănarea atributelor.
  • Se încadrează în categoria algoritmilor leneși. Un algoritm leneș memorează datele de antrenament în loc să învețe funcția de discriminare din ele. Aflați mai multe despre tipurile de algoritmi de învățare automată.
  • Puteți utiliza KNN pentru a rezolva probleme de regresie, precum și de clasificare.

Algoritmul KNN este imparțial și, datorită caracteristicilor discutate mai sus, este o alegere preferată pentru multe probleme. Cu toate acestea, totul are problemele sale, iar KNN nu este o excepție.

Acest algoritm nu este util pentru rezolvarea unor probleme prea complexe. Modelul său nu are nici un proces de abstractizare. Pentru un model adecvat, veți avea nevoie de date de înaltă calitate, deoarece uneori pot pierde informații valoroase, deoarece este un algoritm leneș. Este rapid, dar va trebui să petreceți o cantitate substanțială de timp în curățarea datelor.

Cum functioneazã?

Pentru a înțelege cum funcționează KNN în R, vom arunca o privire la un alt exemplu.

Să presupunem că setul dvs. de date are două clase. Clasa 1 are dreptunghiuri, în timp ce clasa 2 are cercuri. Trebuie să atribuiți noul punct de date pe care l-ați introdus uneia dintre aceste două clase utilizând acest algoritm. Pentru a face acest lucru, mai întâi va trebui să definiți valoarea lui „K” pentru algoritmul dvs. K denotă numărul de puncte vecine cele mai apropiate pe care algoritmul le va lua în considerare.

Considerați că introduceți K ca 4 în acest exemplu. Și pentru K = 4, vecinii sunt trei cercuri și un dreptunghi. În acest caz, veți clasifica punctul de date în clasa 2, deoarece numărul de cercuri din jurul punctului este mai mare decât dreptunghiuri.

Dacă vecinii ar fi trei dreptunghiuri și un cerc, l-ați fi clasificat în clasa 1. Am discutat deja despre modul în care algoritmul KNN calculează distanța dintre două puncte pentru a determina cine este cel mai apropiat vecin. Utilizează formula euclidiană a distanței în acest scop.

Formula pentru distanța euclidiană este următoarea:

d(p,q) = d(q,p) = ( q 1 p 1 ) 2 +( q 2 p 2 ) 2 … ( q n p n ) 2

Aici, p = (p1, p2, p3, …. pn) și q = (q1, q2, q3, … qn). În această ecuație, „d” denotă distanța euclidiană dintre punctele p și q.

După cum puteți vedea, este destul de simplu. Iar simplitatea sa îl face extrem de versatil, datorită căruia este unul dintre cei mai populari algoritmi. Îl puteți folosi pentru o varietate de probleme.

Exemplu de KNN în R

S-ar putea să vă întrebați unde vedem aplicațiile algoritmilor KNN în viața reală. Pentru asta, trebuie să te uiți la Amazon.

Succesul uriaș al Amazon depinde de o mulțime de factori, dar unul proeminent dintre aceștia este utilizarea tehnologiilor avansate. Una dintre aceste tehnologii este învățarea automată. Sistemul lor de recomandare i-a ajutat să genereze sute de milioane de venituri. Și acest sistem de recomandare folosește algoritmul KNN în acest scop.

Citește și: Idei de proiecte de învățare automată

Să presupunem că cumpărați un blugi Wrangler negri cu o jachetă de piele de pe Amazon. Câteva săptămâni mai târziu, o altă persoană cumpără aceiași blugi de la Amazon, dar nu cumpără acea geacă de piele. Amazon va recomanda acestei persoane să cumpere jacheta, deoarece a arătat un model de cumpărare similar cu al tău.

Deci, sistemul de recomandare al Amazon funcționează pe baza tiparelor de cumpărare ale oamenilor. Și pentru a înțelege această similitudine, puteți utiliza algoritmul KNN, deoarece se bazează pe acest principiu. Acum cunoașteți elementele de bază ale acestui algoritm, precum și aplicația sa în lumea reală. Există multe alte exemple de utilizare a acestuia, dar deocamdată, să rămânem la acesta.

Învață cursuri de știință a datelor de la cele mai bune universități din lume. Câștigă programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

Gânduri de încheiere

Algoritmul KNN în R are multe utilizări. Și după ce am citit acest articol, suntem siguri că ești familiarizat cu acest algoritm. Dacă doriți să aflați mai multe despre astfel de algoritmi de învățare automată, ar trebui să aruncați o privire la Cursul nostru detaliat de învățare automată .

Veți ajunge să învățați multe despre învățarea automată și despre diferiții algoritmi utilizați în ea, în afară de celelalte aspecte ale acesteia.

Pentru ce este folosit limbajul de programare R?

Limbajul de programare R a fost creat pentru calcule care implică statistici și vizualizarea datelor. Astăzi, R este utilizat pe scară largă de către statisticieni, oamenii de știință de date, analiștii de date și de afaceri. Nucleul lui R vine cu multe funcționalități statistice încorporate, astfel încât bibliotecile terță parte nu sunt necesare pentru o mare parte din analiza datelor de bază pe care R o poate realiza. Spre deosebire de multe alte limbaje de programare, R nu este un limbaj de uz general. Deci, este folosit în esență pentru a realiza funcționalități specifice pe care le face excepțional de bine. Cu toate acestea, R este utilizat pe scară largă de companii din toate industriile pentru a obține informații utile din volume masive de date zilnice generate de utilizatori.

Care sunt avantajele programării cu R?

Limbajul de programare R oferă diverse avantaje atât programatorilor începători, cât și experților. Principalele sale beneficii includ caracteristicile și ușurința pe care o oferă pentru a construi modele statistice, de calcul. În continuare, R este un limbaj de programare open-source care acceptă calculul distribuit paralel. Oricine îl poate folosi fără a fi nevoie să achiziționeze licențe sau taxe de utilizare. În plus, vine cu o bibliotecă masivă pentru a suporta diferite funcționalități, iar cadrul său independent de platformă adaugă, de asemenea, confort. R poate fi, de asemenea, utilizat pentru curățarea eficientă a datelor, scraping web și funcții de zbatere a datelor și este folosit în mod popular pentru a dezvolta modele de învățare automată.

De ce este KNN numit algoritmul pentru învățare leneșă?

Algoritmul K-Nearest Neighbors este unul dintre cei mai simpli algoritmi utilizați în învățarea automată. Cu toate acestea, este adesea numit elevul leneș. Motivul pentru aceasta este că atunci când furnizați toate datele legate de antrenament acestui algoritm, nu funcționează să se antreneze singur. În loc să învețe funcții discriminatorii, a memorat întregul set de date de antrenament. Cu fiecare adăugare a unui nou punct de date, acest algoritm caută vecinii săi cei mai apropiați din întregul set de antrenament, ceea ce crește invariabil timpul necesar pentru a face predicții. Acest lucru îl face adesea costisitor din punct de vedere computațional și consuma mult timp.