stub Hvad er en KNN (K-Nearest Neighbors)? - Unite.AI
Følg os

AI 101

Hvad er en KNN (K-Nearest Neighbors)?

mm
Opdateret on

Hvad er K-Nearest Neighbours (KNN)?

K-Nearest Neighbors er en maskinlæringsteknik og algoritme, der kan bruges til både regressions- og klassifikationsopgaver. K-Nærmeste Naboer undersøgt etiketterne for et valgt antal datapunkter omkring et måldatapunkt for at lave en forudsigelse om den klasse, som datapunktet falder ind under. K-Nearest Neighbors (KNN) er en konceptuelt simpel, men meget kraftfuld algoritme, og af disse grunde er det en af ​​de mest populære maskinlæringsalgoritmer. Lad os tage et dybt dyk ned i KNN-algoritmen og se præcis, hvordan den fungerer. At have en god forståelse af, hvordan KNN fungerer, vil lade dig værdsætte de bedste og værste use cases for KNN.

Oversigt over K-Nearest Neighbors (KNN)

Foto: Antti Ajanki AnAj via Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:KnnClassification.svg)

Lad os visualisere et datasæt på et 2D-plan. Forestil dig en masse datapunkter på en graf, spredt ud langs grafen i små klynger. KNN undersøger fordelingen af ​​datapunkterne og adskiller datapunkterne i grupper, afhængigt af argumenterne til modellen. Disse grupper tildeles derefter en etiket. Den primære antagelse, som en KNN-model gør, er, at datapunkter/forekomster, der eksisterer i umiddelbar nærhed af hinanden, er meget ens, mens hvis et datapunkt er langt væk fra en anden gruppe, er det forskelligt fra disse datapunkter.

En KNN-model beregner lighed ved hjælp af afstanden mellem to punkter på en graf. Jo større afstanden er mellem punkterne, jo mindre ens er de. Der er flere måder at beregne afstanden mellem punkter på, men den mest almindelige afstandsmetrik er kun euklidisk afstand (afstanden mellem to punkter i en lige linje).

KNN er en overvåget læringsalgoritme, hvilket betyder, at eksemplerne i datasættet skal have etiketter tildelt dem/deres klasser skal være kendt. Der er to andre vigtige ting at vide om KNN. For det første er KNN en ikke-parametrisk algoritme. Det betyder, at der ikke laves antagelser om datasættet, når modellen anvendes. I stedet er modellen konstrueret udelukkende ud fra de leverede data. For det andet er der ingen opdeling af datasættet i trænings- og testsæt ved brug af KNN. KNN laver ingen generaliseringer mellem et trænings- og testsæt, så alle træningsdata bruges også, når modellen bliver bedt om at lave forudsigelser.

Sådan fungerer en KNN-algoritme

En KNN-algoritme gennemgår tre hovedfaser, når den udføres:

  1. Indstilling af K til det valgte antal naboer.
  2. Beregning af afstanden mellem et givet/testeksempel og datasæteksemplerne.
  3. Sortering af de beregnede afstande.
  4. Hent etiketterne for de øverste K-poster.
  5. Returnerer en forudsigelse om testeksemplet.

I det første trin vælges K af brugeren, og den fortæller algoritmen, hvor mange naboer (hvor mange omgivende datapunkter), der skal tages i betragtning, når der afsiges en dom om den gruppe, måleksemplet tilhører. I det andet trin skal du bemærke, at modellen kontrollerer afstanden mellem måleksemplet og hvert eksempel i datasættet. Afstandene tilføjes derefter til en liste og sorteres. Derefter kontrolleres den sorterede liste, og etiketterne for de øverste K-elementer returneres. Med andre ord, hvis K er sat til 5, kontrollerer modellen etiketterne for de øverste 5 nærmeste datapunkter til måldatapunktet. Når du afgiver en forudsigelse om måldatapunktet, har det betydning, om opgaven er en regression or klassificering opgave. Til en regressionsopgave bruges middelværdien af ​​de øverste K-etiketter, mens tilstanden for de øverste K-etiketter bruges i tilfælde af klassificering.

De nøjagtige matematiske operationer, der bruges til at udføre KNN, varierer afhængigt af den valgte afstandsmetrik. Hvis du gerne vil vide mere om, hvordan metrikken udregnes, kan du læse om nogle af de mest almindelige afstandsmålinger, som f.eks. Euklidisk, Manhattanog Minkowski.

Hvorfor K's værdi betyder noget

Hovedbegrænsningen ved brug af KNN er, at der kan vælges en forkert værdi på K (det forkerte antal naboer, der skal tages i betragtning). Hvis dette sker, kan de forudsigelser, der returneres, være væsentligt slået fra. Det er meget vigtigt, når du bruger en KNN-algoritme, at den korrekte værdi for K vælges. Du vil vælge en værdi for K, der maksimerer modellens evne til at lave forudsigelser på usete data og samtidig reducere antallet af fejl, den laver.

Foto: Agor153 via Wikimedia Commons, CC BY SA 3.0 (https://en.wikipedia.org/wiki/File:Map1NN.png)

Lavere værdier af K betyder, at forudsigelserne fra KNN er mindre stabile og pålidelige. For at få en intuition af, hvorfor det er sådan, skal du overveje et tilfælde, hvor vi har 7 naboer omkring et måldatapunkt. Lad os antage, at KNN-modellen arbejder med en K-værdi på 2 (vi beder den om at se på de to nærmeste naboer for at lave en forudsigelse). Hvis langt størstedelen af ​​naboerne (fem ud af syv) tilhører den blå klasse, men de to nærmeste naboer tilfældigvis er røde, vil modellen forudsige, at forespørgselseksemplet er rødt. På trods af modellens gæt ville Blue i et sådant scenarie være et bedre gæt.

Hvis dette er tilfældet, hvorfor så ikke bare vælge den højeste K-værdi, vi kan? Dette skyldes, at det også reducerer nøjagtigheden, hvis modellen skal tage hensyn til for mange naboer. Efterhånden som den radius, som KNN-modellen betragter, stiger, vil den i sidste ende begynde at overveje datapunkter, der er tættere på andre grupper, end de er måldatapunktet, og fejlklassificering vil begynde at forekomme. For eksempel, selvom det punkt, der oprindeligt blev valgt, var i et af de røde områder ovenfor, hvis K var sat for højt, ville modellen nå ind i de andre områder for at overveje punkter. Ved brug af en KNN-model forsøges forskellige værdier af K for at se, hvilken værdi der giver modellen den bedste ydeevne.

KNN fordele og ulemper

Lad os undersøge nogle af fordele og ulemper ved KNN-modellen.

Fordele:

KNN kan bruges til både regressions- og klassifikationsopgaver i modsætning til nogle andre overvågede læringsalgoritmer.

KNN er meget nøjagtig og enkel at bruge. Det er nemt at fortolke, forstå og implementere.

KNN gør ingen antagelser om dataene, hvilket betyder, at de kan bruges til en lang række problemer.

Ulemper:

KNN gemmer de fleste eller alle data, hvilket betyder, at modellen kræver meget hukommelse og dens beregningsmæssigt dyre. Store datasæt kan også få forudsigelser til at tage lang tid.

KNN viser sig at være meget følsom over for datasættets skala, og det kan ret nemt blive kastet ud af irrelevante funktioner i sammenligning med andre modeller.

Oversigt over K-Nærmeste Naboer (KNN)

K-Nearest Neighbors er en af ​​de enkleste maskinlæringsalgoritmer. På trods af hvor simpelt KNN er i konceptet, er det også en kraftfuld algoritme, der giver ret høj nøjagtighed på de fleste problemer. Når du bruger KNN, skal du sørge for at eksperimentere med forskellige værdier af K for at finde det tal, der giver den højeste nøjagtighed.

Blogger og programmør med speciale i Maskinelæring , Deep Learning emner. Daniel håber at kunne hjælpe andre med at bruge AI's kraft til socialt gode.