GeeksforGeeks (Dansk)

K-nærmeste naboer er en af de mest basale, men alligevel vigtige klassificeringsalgoritmer i Machine Learning. Det tilhører det overvågede læringsdomæne og finder intens anvendelse i mønstergenkendelse, dataudvinding og detektion af indtrængen.

Det er bredt engangsbrug i virkelige scenarier, da det er ikke-parametrisk, hvilket betyder, det gør det ikke eventuelle underliggende antagelser om distribution af data (i modsætning til andre algoritmer som GMM, der antager en gaussisk fordeling af de givne data).

Vi får nogle tidligere data (også kaldet træningsdata), som klassificerer koordinater i grupper, der er identificeret af en attribut.

Som et eksempel kan du overveje følgende tabel med datapunkter, der indeholder to funktioner:

Nu får du et andet sæt datapunkter ( også kaldet testdata), tildel disse punkter en gruppe ved at analysere træningssættet. Bemærk, at de uklassificerede punkter er markeret som Hvide.

Intuition
Hvis vi tegner disse punkter i en graf, kan vi muligvis finde nogle klynger eller grupper. Nu, givet et uklassificeret punkt, kan vi tildele det til en gruppe ved at observere, hvilken gruppe dens nærmeste naboer tilhører. Dette betyder, at et punkt tæt på en klynge af punkter klassificeret som Rød har en højere sandsynlighed for at blive klassificeret som Rød.

Intuitivt kan vi se, at det første punkt (2.5, 7) skal være klassificeret som Grøn og det andet punkt (5.5, 4.5) skal klassificeres som Rødt.

Algoritme
Lad m være antallet af træningsdataprøver. Lad p være et ukendt punkt.

  1. Gem træningseksemplerne i en række datapunkter arr. Dette betyder, at hvert element i denne matrix repræsenterer en tuple (x, y).
  2. for i=0 to m: Calculate Euclidean distance d(arr, p).
  3. Lav sæt S af K mindste opnåede afstande . Hver af disse afstande svarer til et allerede klassificeret datapunkt.
  4. Returner majoritetsmærket blandt S.

K kan holdes som et ulige tal, så vi kan beregne et klart flertal i tilfælde, hvor kun to grupper er mulige (f.eks. rød / blå). Med stigende K får vi glattere, mere definerede grænser på tværs af forskellige klassifikationer. Også nøjagtigheden af ovenstående klassifikator øges, når vi øger antallet af datapunkter i træningssættet.

Eksempel på program
Antag 0 og 1 som de to klassifikatorer (grupper).

Output:

The value classified to unknown point is 0.

Denne artikel er bidraget af Anannya Uberoi. Hvis du kan lide GeeksforGeeks og gerne vil bidrage, kan du også skrive en artikel ved hjælp afribute.geeksforgeeks.org eller sende din artikel til [email protected]. Se din artikel, der vises på GeeksforGeeks-hovedsiden, og hjælp andre nørder.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *