AI 101
Wat is een KNN (K-Nearest Neighbours)?
Wat is K-Nearest Neighbours (KNN)?
K-Nearest Neighbours is een machine learning-techniek en -algoritme dat kan worden gebruikt voor zowel regressie- als classificatietaken. K-dichtstbijzijnde buren onderzoekt de labels van een gekozen aantal datapunten rondom een ​​doeldatapunt, om een ​​voorspelling te doen over de klasse waarin het datapunt valt. K-Nearest Neighbors (KNN) is een conceptueel eenvoudig maar zeer krachtig algoritme, en om die redenen is het een van de populairste machine learning-algoritmen. Laten we eens diep in het KNN-algoritme duiken en precies zien hoe het werkt. Als je goed begrijpt hoe KNN werkt, kun je de beste en slechtste use cases voor KNN waarderen.
Overzicht van K-Nearest Neighbours (KNN)

Foto: Antti Ajanki AnAj via Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:KnnClassification.svg)
Laten we een dataset op een 2D-vlak visualiseren. Stel je een aantal gegevenspunten op een grafiek voor, verspreid langs de grafiek in kleine clusters. KNN onderzoekt de verdeling van de datapunten en verdeelt, afhankelijk van de aan het model gegeven argumenten, de datapunten in groepen. Deze groepen krijgen dan een label toegewezen. De primaire veronderstelling die een KNN-model maakt, is dat datapunten/instanties die dicht bij elkaar staan ​​sterk op elkaar lijken, terwijl als een datapunt ver weg is van een andere groep, het niet gelijk is aan die datapunten.
Een KNN-model berekent overeenkomst met behulp van de afstand tussen twee punten in een grafiek. Hoe groter de afstand tussen de punten, hoe minder ze op elkaar lijken. Er zijn meerdere manieren om de afstand tussen punten te berekenen, maar de meest gebruikelijke afstandsmetriek is gewoon de Euclidische afstand (de afstand tussen twee punten in een rechte lijn).
KNN is een algoritme voor leren onder toezicht, wat betekent dat de voorbeelden in de dataset labels moeten krijgen/dat hun klassen bekend moeten zijn. Er zijn nog twee andere belangrijke dingen die u moet weten over KNN. Ten eerste is KNN een niet-parametrisch algoritme. Dit betekent dat er bij het gebruik van het model geen aannames worden gedaan over de dataset. Integendeel, het model is volledig opgebouwd uit de verstrekte gegevens. Ten tweede is er geen opsplitsing van de dataset in trainings- en testsets bij gebruik van KNN. KNN maakt geen generalisaties tussen een trainings- en testset, dus alle trainingsgegevens worden ook gebruikt wanneer het model wordt gevraagd om voorspellingen te doen.
Hoe een KNN-algoritme werkt
Een KNN-algoritme doorloopt drie hoofdfasen terwijl het wordt uitgevoerd:
- K instellen op het gekozen aantal buren.
- Berekenen van de afstand tussen een aangeleverd/testvoorbeeld en de datasetvoorbeelden.
- Sorteren van de berekende afstanden.
- De labels krijgen van de beste K-inzendingen.
- Een voorspelling over het testvoorbeeld retourneren.
In de eerste stap wordt K gekozen door de gebruiker en vertelt het algoritme met hoeveel buren (hoeveel omringende datapunten) rekening moet worden gehouden bij het beoordelen van de groep waartoe het doelvoorbeeld behoort. Houd er in de tweede stap rekening mee dat het model de afstand tussen het doelvoorbeeld en elk voorbeeld in de dataset controleert. De afstanden worden vervolgens toegevoegd aan een lijst en gesorteerd. Daarna wordt de gesorteerde lijst gecontroleerd en worden de labels voor de bovenste K-elementen geretourneerd. Met andere woorden, als K is ingesteld op 5, controleert het model de labels van de top 5 gegevenspunten die het dichtst bij het doelgegevenspunt liggen. Bij het maken van een voorspelling over het doelgegevenspunt, maakt het uit of de taak een regressie or classificatie taak. Voor een regressietaak wordt het gemiddelde van de bovenste K-labels gebruikt, terwijl de modus van de bovenste K-labels wordt gebruikt in het geval van classificatie.
De exacte wiskundige bewerkingen die worden gebruikt om KNN uit te voeren, verschillen afhankelijk van de gekozen afstandsmetriek. Als u meer wilt weten over hoe de statistieken worden berekend, kunt u lezen over enkele van de meest voorkomende afstandsstatistieken, zoals Euclidische, Manhattanen Minkowski.
Waarom de waarde van K ertoe doet
De belangrijkste beperking bij het gebruik van KNN is dat er een onjuiste waarde van K (het verkeerde aantal buren dat in aanmerking moet worden genomen) kan worden gekozen. Als dit gebeurt, kunnen de geretourneerde voorspellingen aanzienlijk afwijken. Het is erg belangrijk dat bij het gebruik van een KNN-algoritme de juiste waarde voor K wordt gekozen. U wilt een waarde voor K kiezen die het vermogen van het model maximaliseert om voorspellingen te doen over ongeziene gegevens, terwijl het aantal gemaakte fouten wordt verminderd.

Foto: Agor153 via Wikimedia Commons, CC BY SA 3.0 (https://en.wikipedia.org/wiki/File:Map1NN.png)
Lagere waarden van K betekenen dat de voorspellingen van de KNN minder stabiel en betrouwbaar zijn. Om een ​​idee te krijgen waarom dit zo is, kunnen we een geval beschouwen waarin we 7 buren rond een doeldatapunt hebben. Laten we aannemen dat het KNN-model werkt met een K-waarde van 2 (we vragen het om naar de twee naaste buren te kijken om een ​​voorspelling te doen). Als de overgrote meerderheid van de buren (vijf van de zeven) tot de Blue-klasse behoort, maar de twee naaste buren toevallig Red zijn, zal het model voorspellen dat het queryvoorbeeld Red is. Ondanks de gok van het model, zou in zo'n scenario Blauw een betere gok zijn.
Als dit het geval is, waarom kiezen we dan niet gewoon de hoogst mogelijke K-waarde? Dit komt omdat het vertellen van het model om rekening te houden met te veel buren ook de nauwkeurigheid zal verminderen. Naarmate de straal die het KNN-model in overweging neemt, toeneemt, zal het uiteindelijk datapunten gaan overwegen die dichter bij andere groepen liggen dan het beoogde datapunt en zal er een verkeerde classificatie optreden. Zelfs als het aanvankelijk gekozen punt in een van de bovenstaande rode gebieden lag, zou het model, als K te hoog was ingesteld, naar de andere gebieden reiken om punten te overwegen. Bij gebruik van een KNN-model worden verschillende waarden van K geprobeerd om te zien welke waarde het model de beste prestatie geeft.
KNN voors en tegens
Laten we eens kijken naar enkele van de voor- en nadelen van het KNN-model.
Voors:
KNN kan worden gebruikt voor zowel regressie- als classificatietaken, in tegenstelling tot sommige andere algoritmen voor leren onder toezicht.
KNN is zeer nauwkeurig en eenvoudig te gebruiken. Het is gemakkelijk te interpreteren, te begrijpen en te implementeren.
KNN doet geen aannames over de gegevens, wat betekent dat ze voor een breed scala aan problemen kunnen worden gebruikt.
nadelen:
KNN slaat de meeste of alle gegevens op, wat betekent dat het model veel geheugen nodig heeft en rekenkundig duur is. Grote datasets kunnen er ook voor zorgen dat voorspellingen lang op zich laten wachten.
KNN blijkt erg gevoelig te zijn voor de schaal van de dataset en kan in vergelijking met andere modellen vrij gemakkelijk worden weggegooid door irrelevante kenmerken.
Samenvatting van K-dichtstbijzijnde buren (KNN)
K-Nearest Neighbours is een van de eenvoudigste machine learning-algoritmen. Ondanks hoe eenvoudig KNN is, is het in concept ook een krachtig algoritme dat voor de meeste problemen een vrij hoge nauwkeurigheid geeft. Wanneer u KNN gebruikt, moet u experimenteren met verschillende waarden van K om het getal te vinden dat de hoogste nauwkeurigheid biedt.