GeeksforGeeks (Svenska)

K-närmaste grannar är en av de mest grundläggande men ändå väsentliga klassificeringsalgoritmerna i maskininlärning. Det tillhör den övervakade inlärningsdomänen och hittar intensiv tillämpning i mönsterigenkänning, datautvinning och upptäckt av intrång.

Det är allmänt disponibelt i verkliga scenarier eftersom det inte är parametriskt, vilket betyder att det inte gör eventuella underliggande antaganden om datadistribution (i motsats till andra algoritmer som GMM, som antar en Gaussisk fördelning av den givna datan).

Vi får några tidigare data (även kallade träningsdata), som klassificerar koordinater i grupper som identifierats av ett attribut.

Som ett exempel kan du överväga följande tabell med datapunkter som innehåller två funktioner:

Nu får du en annan uppsättning datapunkter ( även kallad testdata), fördela dessa poäng en grupp genom att analysera träningssatsen. Observera att de oklassificerade punkterna är markerade som ”vita”.

Intuition
Om vi plottar dessa punkter i en graf kan vi kanske hitta några kluster eller grupper. Nu, med en oklassificerad punkt, kan vi tilldela den till en grupp genom att observera vilken grupp dess närmaste grannar tillhör. Det betyder att en punkt nära ett kluster av punkter som klassificeras som Röd har högre sannolikhet att bli klassificerad som Röd.

Intuitivt kan vi se att den första punkten (2.5, 7) bör vara klassificerad som Grön och den andra punkten (5.5, 4.5) bör klassificeras som Röd.

Algoritm
Låt m vara antalet träningsdataprov. Låt p vara en okänd punkt.

  1. Lagra träningsproverna i en uppsättning datapunkter arr. Detta betyder att varje element i denna matris representerar en tupel (x, y).
  2. for i=0 to m: Calculate Euclidean distance d(arr, p).
  3. Gör uppsättning S av K minsta avstånd som erhållits . Var och en av dessa avstånd motsvarar en redan klassificerad datapunkt.
  4. Returnera majoritetsetiketten bland S.

K kan hållas som ett udda tal så att vi kan beräkna en klar majoritet om endast två grupper är möjliga (t.ex. röd / blå). Med ökande K får vi jämnare, mer definierade gränser över olika klassificeringar. Noggrannheten för ovanstående klassificerare ökar när vi ökar antalet datapunkter i träningsuppsättningen.

Exempel på program
Antag 0 och 1 som de två klassificeringarna (grupperna).

Output:

The value classified to unknown point is 0.

Den här artikeln har bidragit av Anannya Uberoi. Om du gillar GeeksforGeeks och vill bidra kan du också skriva en artikel med bidrag.geeksforgeeks.org eller skicka din artikel till [email protected]. Se din artikel som visas på GeeksforGeeks huvudsida och hjälp andra Geeks.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *