KNN, de la k-nearest neighbours, produce o estimare folosind exemplele apropiate de un caz nou într-un spațiu de caracteristici definit. Pentru clasificare agregă etichetele vecinilor; pentru regresie agregă valori continue. Apropierea este calculată printr-o distanță, nu stabilită prin asemănarea vizuală a fișelor din interfață sau prin intuiția operatorului.

Metoda este ușor de urmărit într-un desen, dar o aplicație utilă cere alegeri concrete: ce reprezintă fiecare câmp, cum comparăm unitățile, câți vecini consultăm și cum verificăm rezultatul pe cazuri noi. Păstrarea unor exemple nu elimină pregătirea, configurarea sau evaluarea. Nici nu acordă utilizatorului acces automat la toate înregistrările apropiate.

Ghidul folosește coordonate, clase și durate inventate exclusiv pentru explicație. Nu sunt un set de date comercial, un model evaluat sau rezultate obținute de WebHat. Fotografiile autentice ilustrează evidențe de depozit și dezvoltare web; persoana și codul vizibil nu reprezintă o implementare KNN ori un client al agenției.

Persoană consultând un clipboard lângă rafturi cu cutii într-un depozit
Tima Miroshnichenko

Ce este algoritmul KNN și ce problemă rezolvă?

Învățare din exemple păstrate, nu reguli scrise pentru fiecare caz

Documentația scikit-learn descrie metodele cu vecini apropiați pentru clasificare și regresie. În forma discutată aici, păstrăm exemple cu ținte cunoscute, găsim vecinii unei intrări noi și agregăm țintele lor. Această descriere nu înseamnă că metoda poate lucra numai cu înregistrări deja văzute: tocmai intrarea nouă este cea pentru care calculăm rezultatul.

Aceiași vecini, două tipuri de rezultat

  1. Exemple păstrate

    Fiecare caz are intrări definite și o țintă cunoscută.

  2. Caz nou

    Aplicăm aceeași transformare și calculăm distanțele.

  3. Clasificare

    Agregăm etichetele vecinilor potrivit regulii de vot.

  4. Regresie

    Agregăm valorile continue potrivit regulii de ponderare.

Schemă originală a metodei. Numărul vecinilor, distanța și ponderile sunt alegeri evaluate pentru problema concretă.

Într-o aplicație demonstrativă, am putea propune direcționarea unor solicitări către o echipă pe baza câmpurilor autorizate din cazuri anterioare. Un rezultat este o categorie de lucru, nu identitatea expeditorului și nici o aprobare comercială. Definim ce anume trebuie recomandat înainte să alegem cum se măsoară apropierea dintre solicitări.

În harta tipurilor de inteligență artificială, KNN este o metodă distinctă de un model lingvistic. Nu are nevoie de conversație liberă pentru a produce o clasă sau o valoare. Poate deveni o componentă într-o aplicație cu formulare, rapoarte și reguli explicite, evaluată pentru acea sarcină.

Ce informații intră în comparația dintre cazuri?

Caracteristicile trebuie să aibă o semnificație operațională

Fiecare exemplu este reprezentat prin câmpuri comparabile. Pentru solicitările propuse, documentăm ce informație există la primire și ce apare numai după rezolvare. Eticheta echipei care a închis cazul nu devine automat o intrare permisă la momentul inițial. Altfel, am evalua o situație diferită de cea în care aplicația trebuie să răspundă.

În învățarea supervizată, ținta cunoscută susține comparația și evaluarea. Calitatea etichetelor rămâne importantă chiar dacă algoritmul nu ajustează o ecuație cu coeficienți ca regresia liniară. O rutare istorică greșită nu devine un răspuns corect doar fiindcă este păstrată în baza de date și găsită rapid.

Nu introducem automat fiecare coloană disponibilă. Identificatorii interni, codurile fără ordine numerică și datele introduse ulterior au roluri diferite. O diferență aritmetică între identificatori nu descrie implicit asemănarea comercială a cazurilor. Pentru lipsuri definim o regulă de tratare; absența unei informații nu este transformată în zero fără justificare.

Cum găsește KNN vecinii apropiați?

O distanță trebuie definită înainte să desenăm vecinătatea

Exemplul următor are două axe abstracte, fără unități de business, și folosește distanța euclidiană. Alegem punctul nou Q = (2,2) și patru exemple etichetate. Coordonatele sunt inventate de noi, nu măsurători ale unei persoane ori reprezentări extrase dintr-un model. Desenul păstrează aceeași scară pe ambele axe pentru comparația vizuală.

Un caz nou Q și patru exemple, în coordonate inventate

Axa verticală: y ↑ · Axa orizontală: x →

A=(1,2), B=(2,4), C=(4,3), D=(5,5), Q=(2,2). A și C sunt albastru; B și D sunt roșu. Literele și coordonatele completează culorile. Schemă originală, nu date sau predicții reale.

Față de Q, distanțele sunt 1 pentru A, 2 pentru B, √5 pentru C și √18 pentru D. De exemplu, între Q și C diferențele pe axe sunt 2 și 1; pătratele lor se însumează, apoi calculăm rădăcina. Alegerea unei alte distanțe sau transformarea axelor poate modifica ordinea vecinilor.

Într-un proiect real, verificăm dacă această apropiere corespunde întrebării utile. Două cazuri apropiate numeric pot avea contexte operaționale diferite. Alegerea metricii este o parte a modelului evaluat, nu o proprietate universală a datelor și nici o dovadă că toate cazurile din vecinătate sunt interschimbabile pentru firmă.

Cum produce KNN o clasă prin vot?

Numărul vecinilor și ponderarea schimbă agregarea

Fixăm k = 3 și vot uniform pentru demonstrație. Vecinii selectați sunt A, B și C, în ordinea distanțelor. D rămâne în afara selecției. Două etichete sunt albastru, una este roșu, deci regula majorității alege albastru. Nu avem egalitate de distanță la limita selecției în acest exemplu.

Ordinea vecinilor pentru Q, în demonstrația cu k = 3

  1. A · primul

    Distanță 1; clasa albastru.

  2. B · al doilea

    Distanță 2; clasa roșu.

  3. C · al treilea

    Distanță √5 ≈ 2,236; clasa albastru.

  4. D · în afara selecției

    Distanță √18 ≈ 4,243; clasa roșu.

Vot uniform pentru A/B/C: 2 albastru și 1 roșu. Coordonatele sunt inventate; rezultatul nu este o probabilitate calibrată sau o clasificare de client.

Există și agregări în care vecinii apropiați primesc ponderi diferite. Acestea definesc alt calcul și trebuie comparate prin evaluare. Dacă apar distanțe egale, voturi egale sau exemple identice cu etichete contradictorii, configurația și regula de departajare contează. Documentăm comportamentul implementării înainte de utilizarea sa într-un flux de lucru.

Fracția voturilor nu este automat probabilitatea calibrată că decizia este corectă. În exemplu descriem doar numărătoarea etichetelor vecine. Pentru operator, propunerea trebuie însoțită de sensul ei: categorie recomandată după regula aleasă, nu certitudine și nu autorizare pentru o operațiune care are propriile condiții de aprobare.

Cum diferă regresia KNN de clasificare?

Agregăm valori continue în loc să numărăm clase

Pentru regresie, țintele vecinilor sunt valori numerice cu unități relevante. Păstrăm vecinii A, B și C, dar le atribuim durate inventate de 24, 30 și 36 de minute. Cu ponderare uniformă, media este 30 de minute. Nu votăm pentru o etichetă numită „30”; calculăm o valoare continuă prin regula declarată.

Regresie demonstrativă: valorile înlocuiesc etichetele

  1. Vecinul A

    Țintă continuă inventată: 24 de minute.

  2. Vecinul B

    Țintă continuă inventată: 30 de minute.

  3. Vecinul C

    Țintă continuă inventată: 36 de minute.

  4. Medie uniformă

    (24 + 30 + 36) / 3 = 30 de minute.

Calcul didactic, nu durată măsurată, model antrenat sau rezultat WebHat. Alte ponderi ar defini alt calcul, care trebuie evaluat separat.

Ghidul despre regresie liniară multiplă și multivariată explică o altă abordare pentru valori continue. KNN nu aplică automat aceeași ecuație liniară peste toate cazurile. Comparația utilă privește aceeași țintă și aceleași date de evaluare, cu indicatori în unitatea procesului, nu preferința pentru o denumire.

Legătura cu modelele predictive și AI generativă este obiectivul: estimăm ceva definit, nu generăm automat un document sau o imagine. Aplicația păstrează separat estimarea și valoarea observată ulterior. O medie a vecinilor nu devine retrospectiv un fapt confirmat doar pentru că este afișată într-un raport.

Cum alegem numărul k fără să optimizăm pe test?

Configurația se selectează pe datele potrivite

Numărul vecinilor influențează sensibilitatea rezultatului la exemplele locale. Nu există un k universal bun pentru orice firmă, volum sau reprezentare. Comparăm variante pe setul de validare ori într-un protocol de validare adecvat, apoi folosim testul păstrat separat. Demonstrația cu trei vecini nu este o recomandare pentru configurația unei aplicații reale.

Nu confundăm numărul vecinilor cu numărul partițiilor unei validări încrucișate. Sunt două alegeri cu roluri diferite. În comparație păstrăm metricile, loturile și transformările aplicate, astfel încât o schimbare de rezultat să poată fi atribuită configurației evaluate. Refolosirea repetată a testului pentru selecție îl transformă într-o parte a deciziei.

Un număr mai mare de vecini poate include cazuri din regiuni mai largi ale spațiului definit. Un număr mai mic pune accent pe o vecinătate restrânsă. Efectul util se verifică pe sarcina proiectului, inclusiv pe clase și contexte relevante. Nu alegem k doar ca să obținem un procent favorabil pe exemplele păstrate pentru demonstrație.

De ce contează scara câmpurilor și distanța aleasă?

Unitățile pot modifica apropierea numerică

Un câmp cu valori numeric mari poate domina o distanță calculată direct față de alt câmp cu valori mai mici. Documentația scikit-learn despre scalare ilustrează această dependență. Nu interpretăm dominanța numerică drept importanță comercială. În proiect verificăm unitățile, transformarea și semnificația comparației înainte de a accepta lista vecinilor drept dovadă utilă.

Transformarea se ajustează numai pe datele de antrenare permise, apoi se aplică în aceeași formă cazurilor evaluate și intrărilor noi. Dacă ajustăm scara folosind și testul, schimbăm protocolul. Dacă refacem independent transformarea pentru fiecare solicitare, cazurile nu mai sunt comparate în aceeași reprezentare care a fost verificată anterior.

Adăugarea de caracteristici poate schimba distanțele și cerințele de resurse fără să aducă informație relevantă. Nu stabilim un prag universal de dimensiuni după care metoda devine inutilă. Comparăm reprezentările candidate, costul căutării și erorile pe același obiectiv. Fiecare câmp suplimentar trebuie să aibă un rol documentat și un drept de folosire.

Cum pregătim datele pentru o evaluare corectă?

Duplicatele și momentul disponibilității schimbă testul

Înregistrările repetate ale aceleiași solicitări nu trebuie să treacă necontrolat în loturi diferite. Altfel, un vecin foarte apropiat poate fi de fapt o copie a cazului testat. Grupăm potrivit întrebării: solicitări noi, firme noi ori perioade ulterioare. Instrucțiunea de validare trebuie să reflecte cum va fi folosită aplicația, nu doar comoditatea împărțirii.

Pentru estimări despre perioade viitoare, ghidul despre date secvențiale și evaluare în timp ajută la delimitarea informației cunoscute. KNN nu necesită o rețea recurentă pentru această regulă. Verificăm când au existat câmpurile și etichetele, astfel încât testul să nu consulte informații apărute după momentul deciziei simulate.

Păstrăm versiunile loturilor și ale regulilor de etichetare. O schimbare de proces poate face ca o categorie istorică să nu mai descrie aceeași activitate. Actualizarea exemplelor este o schimbare a sistemului evaluat, chiar dacă nu există o nouă ecuație vizibilă. Ea trece prin verificare, nu este publicată automat după fiecare corectură a operatorului.

Mână la tastatura unui laptop cu un editor de cod web pe ecran
Lukas Blazek

Cum măsurăm rezultatul și timpul necesar răspunsului?

Calitatea predicției și costul căutării se raportează separat

Pentru clasificare analizăm erorile pe clase și distribuția acestora, nu numai scorul agregat. Pentru regresie păstrăm erorile în unitățile țintei. Comparăm și o referință simplă pe aceleași cazuri. Un rezultat bun pe înregistrările folosite la ajustare nu descrie singur comportamentul pe solicitări noi și nu înlocuiește testul separat.

Metoda poate consulta multe exemple, iar alegerea căutării depinde de date și configurație. Structurile de indexare nu sunt automat mai rapide în orice problemă. Măsurăm timpul complet: pregătirea intrării, căutarea, agregarea, transferul și afișarea. Volumul și numărul de cereri simultane intră în testul aplicației, nu doar o solicitare izolată pe calculatorul dezvoltatorului.

Definim ce se întâmplă când toate cazurile sunt îndepărtate după regula aleasă ori când informația este incompletă. Existența unui vecin „cel mai apropiat” nu arată singură că el este relevant operațional. O cale de revizuire poate separa astfel de intrări de cele acceptate, cu criterii evaluate și un mesaj clar pentru utilizator.

Raportul notează și ce exemple au fost excluse înaintea căutării. Un caz arhivat, o etichetă retrasă sau o înregistrare neeligibilă pentru scopul curent poate schimba vecinătatea disponibilă. Stabilim ce face aplicația când nu există suficiente exemple permise pentru configurație: oprește propunerea și cere revizuire conform cerinței, în loc să modifice tăcut numărul vecinilor. Astfel, comparația între versiuni păstrează atât regula matematică, cât și colecția de exemple asupra căreia a fost aplicată.

Cum folosim vecinii fără să expunem date sau să automatizăm greșit?

În interfața propusă, operatorul vede categoria recomandată și explicația permisă de proiect. Nu afișăm automat fișele complete ale vecinilor. Un exemplu apropiat poate aparține altei echipe sau poate conține informații care nu trebuie dezvăluite. Accesul la dovadă este verificat separat de calculul care a folosit reprezentarea.

Flux propus pentru o recomandare bazată pe cazuri

  1. Cerință

    Definim eticheta ori valoarea, intrările și momentul estimării.

  2. Pregătire

    Verificăm drepturile, duplicatele, loturile și transformările.

  3. Selecție

    Comparăm configurațiile pe validare și păstrăm testul separat.

  4. Integrare

    Afișăm propunerea și dovezile permise, cu revizuire.

  5. Operare

    Gestionăm versiuni, latență, cazuri îndepărtate și corecturi.

Flux original de proiectare, nu implementare de client. Similaritatea dintre înregistrări nu acordă drepturi de acces sau autoritatea de a executa o operațiune.

Într-o integrare care folosește date într-o aplicație AI, specificăm ce se păstrează, cine consultă rezultatele și cum sunt gestionate corecturile. O clasificare nu oferă dreptul de a șterge, trimite sau modifica o înregistrare. Regulile aplicației și aprobările se execută pe server înaintea operațiunii efective.

Salvăm identificatorul solicitării și versiunea configurației. Dacă un răspuns întârzie, nu îl atribuim cazului deschis între timp. La indisponibilitate, aplicația afișează starea și calea de lucru convenită, nu reutilizează tăcut un rezultat anterior. Distincția dintre rezultat valid, lipsă de rezultat și corectură umană rămâne vizibilă în evidență.

Cum pregătim o aplicație KNN cu WebHat?

Pentru dezvoltare software personalizată, începem cu ținta, câmpurile disponibile și decizia asistată. Construim comparația cu o referință și un test separat. Alegerea metodei urmează analiza: uneori o regulă explicită este suficientă, alteori o metodă bazată pe cazuri merită evaluată împreună cu alternative potrivite.

Într-un dashboard business cu rapoarte automate, putem separa propunerile, corecturile și rezultatele observate. Raportul păstrează lotul, unitățile și versiunea, nu o singură cifră numită generic performanță AI. Proiectarea arată cine verifică diferențele și ce schimbare trebuie reevaluată înainte de activare.

Pentru discuția inițială pregătiți definiția câmpurilor, exemple demonstrative și criteriul de acceptare. Nu este necesar un export necontrolat cu date comerciale pentru a descrie problema. Stabilim întâi drepturile, responsabilitățile și infrastructura, apoi pilotul arată dacă apropierea dintre cazuri produce o funcție utilizabilă în procesul concret al firmei.

Întrebări frecvente despre KNN

KNN nu are deloc etapă de pregătire sau ajustare?

Păstrarea exemplelor nu elimină configurarea, verificarea țintelor și transformările învățate din datele permise. Implementarea poate construi și structuri de căutare. Evaluăm întregul traseu, nu descriem metoda ca pe o listă de fișe care devine automat un sistem corect.

Ce reprezintă k în acest algoritm?

Numărul vecinilor folosiți la agregare în configurația discutată. Nu este numărul partițiilor validării încrucișate. Îl alegem prin evaluare împreună cu distanța și ponderile, fără a transforma numărul din exemplul didactic într-o regulă universală de implementare.

Voturile vecinilor sunt probabilități certe?

Fracția etichetelor descrie agregarea vecinilor conform configurației. Nu este automat o probabilitate calibrată a corectitudinii și nu înlocuiește evaluarea pe cazuri noi. Interfața trebuie să explice ce reprezintă scorul și ce acțiune este permisă după el.

Putem folosi KNN și pentru estimarea unor durate?

Regresia KNN agregă ținte continue ale vecinilor. Duratele trebuie definite și măsurate consecvent, iar erorile evaluate în unitățile relevante. Media demonstrativă din ghid este un calcul inventat, nu un predictor validat pentru un proces real sau pentru un client.

Adăugarea tuturor câmpurilor îmbunătățește automat rezultatul?

Fiecare caracteristică poate modifica distanța, scara și costul căutării. Verificăm relevanța, disponibilitatea și dreptul de folosire, apoi comparăm configurațiile. Nu introducem coloane doar fiindcă există în baza de date sau fiindcă dau impresia unei analize mai complexe.

Trebuie să afișăm utilizatorului exemplele complete găsite?

Nu rezultă această obligație din algoritm. Definim dovezile utile și permisiunile de consultare. Cazurile apropiate pot susține o recomandare fără expunerea necontrolată a documentelor ori a datelor altor clienți, iar aprobarea operațională rămâne o regulă separată a aplicației.