GeeksforGeeks
K-Dichtstbijzijnde Buren is een van de meest elementaire maar essentiële classificatie-algoritmen in Machine Learning. Het behoort tot het bewaakte leerdomein en wordt intensief toegepast in patroonherkenning, datamining en indringingsdetectie.
Het is breed inzetbaar in real-life scenarios omdat het niet-parametrisch is, wat betekent dat het niet eventuele onderliggende aannames over de distributie van gegevens (in tegenstelling tot andere algoritmen zoals GMM, die uitgaan van een Gaussiaanse verdeling van de gegeven gegevens).
We krijgen enkele eerdere gegevens (ook wel trainingsgegevens genoemd), die classificeert coördinaten in groepen geïdentificeerd door een attribuut.
Beschouw als voorbeeld de volgende tabel met gegevenspunten die twee kenmerken bevatten:
Nu, gegeven een andere set gegevenspunten ( ook wel testgegevens genoemd), wijs deze punten toe aan een groep door de trainingsset te analyseren. Merk op dat de niet-geclassificeerde punten zijn gemarkeerd als ‘Wit’.
Intuïtie
Als we deze punten in een grafiek uitzetten, kunnen we mogelijk enkele clusters of groepen lokaliseren. Nu, gegeven een niet-geclassificeerd punt, kunnen we het aan een groep toewijzen door te observeren tot welke groep de naaste buren behoren. Dit betekent dat een punt in de buurt van een cluster van punten geclassificeerd als Rood een grotere kans heeft om geclassificeerd te worden als Rood.
Intuïtief kunnen we zien dat het eerste punt (2.5, 7) zou moeten zijn geclassificeerd als Groen en het tweede punt (5.5, 4.5) moet worden geclassificeerd als Rood.
Algoritme
Laat m het aantal monsters van trainingsgegevens zijn. Laat p een onbekend punt zijn.
- Sla de trainingsvoorbeelden op in een reeks datapunten arr. Dit betekent dat elk element van deze array een tupel (x, y) vertegenwoordigt.
-
for i=0 to m: Calculate Euclidean distance d(arr, p).
- Maak set S van K de kleinste verkregen afstanden . Elk van deze afstanden komt overeen met een reeds geclassificeerd gegevenspunt.
- Geef het meerderheidslabel terug onder S.
K kan als een oneven getal worden gehouden, zodat we kunnen berekenen een duidelijke meerderheid in het geval waarin slechts twee groepen mogelijk zijn (bv. rood / blauw). Met toenemende K krijgen we vloeiendere, meer gedefinieerde grenzen tussen verschillende classificaties. Ook neemt de nauwkeurigheid van de bovenstaande classificator toe naarmate het aantal gegevenspunten in de trainingsset toeneemt.
Voorbeeldprogramma
Veronderstel 0 en 1 als de twee classificaties (groepen).
Output:
The value classified to unknown point is 0.
Dit artikel is bijgedragen door Anannya Uberoi. Als je GeeksforGeeks leuk vindt en zou willen bijdragen, kun je ook een artikel schrijven via contribut.geeksforgeeks.org of je artikel mailen naar [email protected]. Zie uw artikel verschijnen op de hoofdpagina van GeeksforGeeks en help andere Geeks.