Wat is het k-nearest neighbors-algoritme? Het k-nearest neighbors-algoritme (KNN) is een begeleide machine-learningmethode voor classificatie en regressie. Het wijst labels toe op basis van de 'k' dichtstbijzijnde gegevenspunten in de trainingsset en is een van de meest gebruikte classificeerders in machine learning. Demo AI
Wat je moet weten over synthetische gegevens
Wat zijn vectoren en vectorzoekopdrachten? Waarvoor wordt het KNN-algoritme gebruikt? Welke afstandsmeetwaarden? Hoe moet de waarde van 'k' worden gedefinieerd? Waarom is het KNN-algoritme belangrijk? Wat zijn de voordelen? Wat zijn de nadelen? Hoe werkt het KNN-algoritme? Wat zijn de verschillende manieren? Het KNN-algoritme gebruiken

In machine learning en artificial intelligence is gegevensclassificatie een fundamenteel proces. Het doel is om labels toe te wijzen aan gegevenspunten op basis van hun kenmerken. Dit omvat het analyseren van bekende gegevens (trainingsgegevens) waarbij elk voorbeeld is gelabeld met een categorie of waarde. Labels helpen patronen en relaties binnen de gegevens vast te stellen, waardoor het model nauwkeurige voorspellingen kan doen over nieuwe, ongeziene gegevenspunten. Helaas brengt het werken met gelabelde gegevens zijn eigen problemen met zich mee. De handmatige processen voor het labelen van gegevens kunnen tijdrovend en moeilijk zijn en voor sommige organisaties zijn de benodigde investeringen in resources niet haalbaar. 

Het k-nearest neighbors-algoritme (KNN) biedt een eenvoudige en efficiënte oplossing voor dit probleem. KNN vereist geen complexe berekeningen vooraf, maar slaat alle gegevens op en doet vervolgens voorspellingen voor nieuwe gegevens op basis van hoe vergelijkbaar deze zijn met bestaande gegevens. Daardoor kan KNN nauwkeurige voorspellingen doen zonder dat er uitgebreide verfijning nodig is en dat is vooral nuttig bij het werken met kleinere gegevenssets en beperkte rekenkracht.

Alles uitvouwen Alles samenvouwen Wat zijn vectoren en vectorzoekopdrachten in KNN?

Vectoren vormen een integraal onderdeel van de functionaliteit van het k-nearest neighbors-algoritme. Een vector is een reeks getallen die een punt in een multidimensionale ruimte vertegenwoordigt. Machine learning-modellen moeten ruwe, ongestructureerde gegevens kunnen omzetten in deze numerieke weergaven, die inbeddingen genoemd worden. Inbeddingen leggen de semantische of structurele essentie van de invoergegevens vast, waarbij de relaties tussen inbeddingen worden weergegeven als hun ruimtelijke nabijheid (hoe dicht of ver ze van elkaar verwijderd zijn) in de vectorruimte.

KNN gebruikt deze ruimtelijke ordening door de 'buren' van een querypunt te identificeren: andere inbeddingen die dicht in de multidimensionale ruimte zijn geplaatst. Deze buren geven gegevenspunten met gedeelde of vergelijkbare kenmerken weer.

Zo zullen twee documenten met soortgelijke thema's inbeddingen hebben die dichter bij elkaar liggen, waardoor KNN de overeenkomsten en associaties kan herkennen, zodat het nieuwe gegevens kan classificeren of resultaten kan voorspellen op basis van deze relaties.

Maak kennis met Now Intelligence Ontdek hoe ServiceNow analyses en AI in de praktijk toepast om de manier waarop bedrijven werken te transformeren en de digitale transformatie te versnellen. Download het e-book
Waarvoor wordt het KNN-algoritme gebruikt? 

Het k-nearest neighbors-algoritme werkt door vectoren te gebruiken om de 'k' (dichtstbijzijnde gegevenspunten of buren) tot een nieuw gegevenspunt te identificeren en voorspellingen te doen op basis van deze buren. Als het doel bijvoorbeeld is om e-mails als spam of geen spam te classificeren, dan kijkt KNN naar de 'k' meest vergelijkbare e-mails en classificeert de nieuwe e-mail op basis van de classificatiemeerderheid van deze buren.

Of neem een organisatie die gegevens heeft over verschillende klanten, met kenmerken zoals leeftijd, interesses en aankoopgeschiedenis. KNN kan deze klanten groeperen in categorieën zoals frequente kopers, incidentele kopers en kijkers door hun kenmerken te vergelijken. Als een nieuwe klant de website bezoekt, kan KNN diens winkelgedrag voorspellen door te bepalen op welke groep deze klant het meest lijkt. 

Het aanpassingsvermogen van het algoritme wordt zelfs nog groter bij gebruik met multimodale gegevenssets. Hier wordt informatie uit meerdere bronnen, zoals tekst, afbeeldingen of audio, tegelijk gecombineerd. KNN kan deze inbeddingen analyseren in een gedeelde vectorruimte, waarbij overeenkomsten tussen verschillende modaliteiten worden geïdentificeerd. Door KNN toe te passen op multimodale gegevens kan het de meest vergelijkbare buur vinden, ongeacht het gegevenstype. Dit maakt KNN tot een veelzijdig algoritme voor het verwerken van steeds complexere en gevarieerde gegevensscenario's.

  • Patroonherkenning

KNN wordt veel gebruikt in patroonherkenningstaken, zoals beeld- en handschriftherkenning. Door nieuwe afbeeldingen of voorbeelden te vergelijken met een gelabelde gegevensset, kan KNN objecten, tekens of gezichten nauwkeurig classificeren op basis van overeenkomsten met bekende patronen. 

  • Gegevensverwerking 

KNN is effectief bij het voorverwerken van gegevens, zoals het toerekenen van ontbrekende waarden of het detecteren van uitschieters. Door de naaste buren te analyseren, kan KNN ontbrekende waarden schatten op basis van de meest vergelijkbare gegevenspunten, waardoor de kwaliteit en de consistentie van de gegevens worden verbeterd. 

  • Aanbevelingsengines 

KNN helpt bij het opzetten van aanbevelingssystemen door gebruikersgedrag en -voorkeuren te analyseren. Door gebruikers met vergelijkbare interesses te vinden, kan KNN producten, films of content voorstellen die anderen met vergelijkbare profielen leuk vonden, waardoor de gebruikerservaring en -betrokkenheid worden verbeterd. 

  • Transformatie van afbeelding naar tekst 

KNN wordt in toenemende mate gebruikt bij het transformeren van afbeeldingen naar tekst binnen multimodale systemen. Door inbeddingen van afbeeldingen te vergelijken met die van tekstuele beschrijvingen, kunnen AI-systemen met KNN complexe taken uitvoeren, zoals geautomatiseerde ondertiteling, waarbij de dichtstbijzijnde overeenkomsten contextueel passende tekst voor een bepaald beeld opleveren. 

Welke afstandsmeetwaarden worden gebruikt in KNN?

Bij elke hierboven vermelde benadering is de nauwkeurigheid van KNN-voorspellingen sterk afhankelijk van de afstandsmeetwaarden die worden gebruikt om de overeenkomsten van de gegevens te meten. Afstandsmeetwaarden in KNN meten de gelijkenis tussen gegevenspunten, wat cruciaal is voor nauwkeurige voorspellingen. Deze meetwaarden bepalen hoe het algoritme de 'nabijheid' van gegevenspunten berekent om nieuwe gegevenspunten effectief te classificeren of te voorspellen.

Euclidische afstand 

De euclidische afstand is de meest gebruikte meetwaarde in KNN, waarbij de afstand in rechte lijn tussen twee punten in de Euclidische ruimte wordt berekend. Denk aan een kaart en een liniaal om het kortste pad tussen twee locaties te meten. Hoe korter de afstand, des te vergelijkbaarder de punten worden beschouwd. Zo kan bij het vergelijken van de lengte en het gewicht van verschillende personen de Euclidische afstand helpen bepalen welke personen het meest vergelijkbaar zijn op basis van deze twee kenmerken met de kortste Euclidische afstand. 

 

Manhattan-afstand 

De Manhattan-afstand meet de absolute verschillen tussen punten langs elke dimensie, zoals navigeren door een raster van straten in een stad. Stel je een stadstraject voor waarin verplaatsing alleen via de straten mogelijk is (en niet diagonaal door gebouwen heen). Deze meetwaarde is handig wanneer gegevenspunten gestructureerd zijn in een rasterachtig patroon, zoals bij het vergelijken van bezorgroutes of stedelijke planningsscenario's.

Minkowski-afstand  

De Minkowski-afstand is een generalisatie van Euclidische en Manhattan-afstanden. Door een parameter 'p' aan te passen, kan deze zich gedragen als elk van beide meetwaarden. Zie de Minkowski-afstand als een flexibele tool die zich kan aanpassen aan verschillende scenario's op basis van de specifieke behoeften van de gegevensanalyse. Als iemand bijvoorbeeld objecten met verschillende dimensies (zoals prijs, oppervlakte en aantal kamers) wil vergelijken, krijgen bepaalde dimensies door het aanpassen van de 'p'-waarde meer nadruk dan andere. Daardoor is dit een veelzijdige meetwaarde voor verschillende soorten gegevensvergelijkingen. 

Hoe moet de waarde van 'k' worden gedefinieerd? 

Als voor 'k' niet de juiste waarde gedefinieerd wordt, functioneert het KNN-algoritme niet goed. Bij een te kleine waarde voor 'k' kunnen voorspellingen overgevoelig zijn voor ruis in de gegevens, wat leidt tot grote variantie en minder stabiele voorspellingen. Een te grote waarde daarentegen kan de voorspellingen egaliseren, maar kan het model ook te algemeen maken waardoor het specifieke patronen mist.

Om de optimale waarde voor 'k' te vinden, gebruiken beoefenaars gewoonlijk kruisvalidatie (een techniek waarbij de gegevensset meerdere keren wordt verdeeld in trainings- en validatiesets om verschillende 'k'-waarden te testen). Dit helpt bij het identificeren van een 'k' die voorspellingsfouten minimaliseert terwijl de generalisatiemogelijkheden van het algoritme behouden blijven.

Voor dit proces kan een aantal keer proberen en corrigeren nodig zijn. Voor het vinden van de juiste 'k' moeten diverse waarden getest worden om te waarborgen dat het model goed presteert op zowel zichtbare als onzichtbare gegevens, waardoor een optimale balans van stabiliteit en specificiteit wordt bereikt.

Waarom is het KNN-algoritme belangrijk? 
Het KNN-algoritme is een waardevolle tool in verschillende scenario's waar de relaties tussen gegevenspunten niet direct duidelijk zijn, waarbij de overeenkomsten tussen gegevenspunten worden benut om nauwkeurige voorspellingen te doen zonder uitgebreide modeltraining. Dit is met name handig op gebieden zoals beeldherkenning, waar visuele overeenkomsten cruciaal kunnen zijn voor het identificeren van objecten, of in klantsegmentatie, waar gedragspatronen helpen om gebruikers te categoriseren in betekenisvolle groepen. 
Wat zijn de voordelen van het KNN-algoritme? 

Het algemene doel van het k-nearest neighbors-algoritme is het vaststellen van verbindingen, overeenkomsten en relaties tussen gegevenspunten. Het zijn de extra voordelen die dit model zo populair maken bij organisaties. De voordelen van KNN zijn onder meer:

Eenvoudige implementatie 

KNN is eenvoudig te implementeren en te begrijpen, zelfs voor beginners in machine learning. Er is geen complexe trainingsfase nodig: het algoritme onthoudt de trainingsgegevensset en gebruikt die direct om voorspellingen te doen.

Aanpasbaarheid 

Of het nu wordt gebruikt voor classificatie- of regressietaken, KNN kan de verschillende gegevensstructuren en relaties beheren die nodig zijn om gegevenspunten te groeperen. Dankzij deze flexibiliteit kan het worden toegepast op verschillende gebieden. zoals bijvoorbeeld financiën, gezondheidszorg en e-commerce.

Minder complexiteit

KNN vereist slechts enkele hyperparameters, primair de waarde van 'k' en de afstandsmeetwaarde. Dit vermindert de complexiteit van modelafstemming in vergelijking met andere algoritmen waarvoor uitgebreide parameteroptimalisatie nodig kan zijn. Het vereenvoudigt het gehele ontwikkelingsproces van het model en maakt het makkelijker om superieure prestaties te bereiken met minimale aanpassingen.

Wat zijn de nadelen van het gebruik van het KNN-algoritme? 

Hoewel het KNN-algoritme allerlei voordelen biedt, heeft het ook enkele duidelijke zwakke punten. Denk bijvoorbeeld aan: 

Problemen met hoge dimensionaliteit 

Hoge dimensionaliteit is de exponentiële toename van gegevens die nodig zijn om hetzelfde prestatieniveau te handhaven als het aantal kenmerken (of dimensies) stijgt. In hoogdimensionale ruimten wordt de afstand tussen gegevenspunten minder betekenisvol, waardoor het voor KNN moeilijk is om echt 'dichtstbijzijnde' buren te identificeren. Dit probleem kan de nauwkeurigheid en effectiviteit van het algoritme in gegevenssets met veel kenmerken aanzienlijk verminderen. 

Gevoeligheid voor overfitting 

KNN kan negatief worden beïnvloed door ruis en uitschieters in de gegevensset, vooral als de waarde van 'k' klein is. Deze gevoeligheid kan leiden tot overfitting, waarbij het algoritme ruis en afwijkingen vastlegt alsof het echte patronen zijn. Overfitting leidt tot slechte generalisatie van nieuwe, onzichtbare gegevens, waardoor de voorspellende prestaties van het model afnemen. 

Moeite met opschalen 

De computationele complexiteit neemt toe met de omvang van de gegevensset, waardoor KNN inefficiënt is voor te grote gegevenssets. Voor elke voorspelling moet de afstand tussen het nieuwe gegevenspunt en alle bestaande punten in de trainingsset worden berekend, wat leidt tot een hoog geheugengebruik en lange berekeningstijden. Dit gebrek aan schaalbaarheid beperkt de toepasbaarheid van KNN in scenario's met grote hoeveelheden gegevens. 

Hoe werkt het KNN-algoritme? 

Zoals eerder gezegd classificeert het KNN-algoritme gegevenspunten op basis van hun nabijheid tot andere gegevenspunten in de gegevensset. Hiervoor moet het algoritme een specifieke reeks stappen volgen:

1. Het aantal buren (k) kiezen 

Definieer de waarde van 'k' waarmee rekening moet worden gehouden bij het maken van de classificatie of regressie. Deze waarde is van invloed op de manier waarop het algoritme de gelijkenis tussen gegevenspunten evalueert.

2. De afstand berekenen 

Bereken voor elk gegevenspunt in de trainingsset de afstand tussen dit punt en het nieuwe gegevenspunt met behulp van een van de standaard afstandsmeetwaarden (Euclidische, Manhattan- of Minkowski-afstand). Deze afstandsmeting helpt te bepalen wat moet worden beschouwd als de dichtstbijzijnde buren tot het nieuwe gegevenspunt.

3. De dichtstbijzijnde buren identificeren 

Sorteer de in stap 2 berekende afstanden en bepaal de 'k' dichtstbijzijnde buren. Deze buren zijn de gegevenspunten die zich het dichtst bij het nieuwe gegevenspunt bevinden op basis van de gekozen afstandsmeetwaarde. 

4. Een voorspelling doen 

Wijs voor classificatietaken het nieuwe gegevenspunt toe aan de klasse die het meest voorkomt onder de 'k' dichtstbijzijnde buren. Bereken voor regressietaken de gemiddelde of mediaanwaarde van de 'k' dichtstbijzijnde buren en gebruik die waarde als voorspelling voor het nieuwe gegevenspunt.

5. Het model evalueren

Beoordeel de nauwkeurigheid en prestaties van het KNN-model met behulp van kruisvalidatietechnieken. Pas de waarde van 'k' en de afstandsmeetwaarde indien nodig aan om de voorspellingen van het model te optimaliseren. 

Wat zijn de verschillende manieren om KNN uit te voeren? 

Er zijn verschillende methoden om het k-nearest neighbors-algoritme (KNN) uit te voeren, elk met hun eigen voordelen en geschikte toepassingen. De volgende methoden optimaliseren het proces van het vinden van de dichtstbijzijnde buren, waardoor KNN een efficiënte optie is voor verschillende soorten gegevenssets.  

  • Brute force 

De brute force-methode berekent de afstand tussen het querypunt en alle andere punten in de gegevensset. Het is eenvoudige methode die veel rekenkracht vereist en daardoor het meest geschikt is voor kleine gegevenssets 

  • K-dimensionale structuur (k-d-structuur)

Een k-d-structuur organiseert punten in een k-dimensionale ruimte door de ruimte recursief te verdelen in hyperrechthoeken. Het vermindert het aantal afstandsberekeningen en versnelt KNN-zoekopdrachten voor matig hoge-dimensionale gegevens. 

  • Bollenstructuur

Een bollenstructuur verdeelt de ruimte in geneste hyperbollen, waardoor efficiënte zoekopdrachten naar de dichtstbijzijnde buren mogelijk zijn door irrelevante delen van de gegevensset te elimineren. Dit is vooral effectief voor hoogdimensionale gegevens en presteert in zulke scenario's vaak beter dan k-d-structuren. 

Prijzen van ServiceNow ServiceNow biedt concurrerende productpakketten die met je meegroeien naarmate je bedrijf groeit en je behoeften veranderen. Bekijk prijzen
Het k-nearest neighbors-algoritme gebruiken met ServiceNow 

Het k-nearest neighbors-algoritme is van onschatbare waarde vanwege de mogelijkheid om gegevenspunten te classificeren en relaties voor AI-systemen te kwantificeren. ServiceNow, een leider op het gebied van IT-oplossingen voor ondernemingen, integreert geavanceerde AI en KNN om krachtige tools te leveren voor digitale transformatie. Het bekroonde Now Platform® van ServiceNow maakt gebruik van AI en machine learning om workflows te automatiseren, optimaliseren en moderniseren voor alle zakelijke functies, waardoor intelligente optimalisatie binnen het hele bedrijf mogelijk is. 

Dankzij de integratie van KNN en andere geavanceerde algoritmen stelt ServiceNow organisaties in staat AI te benutten voor betere besluitvorming, kortere doorlooptijden en een efficiëntere bedrijfsvoering. Ontdek de transformatieve kracht van AI en het Now Platform: probeer de demo van ServiceNow vandaag nog! 

Alt
AI-workflows verkennen Ontdek hoe je met het ServiceNow-platform bruikbare AI binnen je hele bedrijf aan het werk zet. Ontdek GenAI Neem contact met ons op
Resources Artikelen Wat is AI? Wat is GenAI? Onderzoeksrapporten IDC-infobrief: Maximaliseer AI-waarde met een digitaal platform Generatieve AI in IT-activiteiten Implementatie van GenAI in de telecommunicatiebranche Datasheets AI-zoeken Voorspel en voorkom onderbrekingen met ServiceNow® Voorspellende AIOps Resourcebeheer E-books Moderniseer IT-services en -activiteiten met AI GenAI: is het echt zo belangrijk? Ontketen bedrijfsproductiviteit met GenAI Whitepapers Enterprise AI Maturity Index GenAI voor Telco