GrundlÃĶggende AI

Hvad er K-Nearest Neighbors (KNN)?

mm
FÃļj Unite.AI til dine foretrukne kilder pÃĨ Google

Hvad er K-Nearest Neighbors (KNN)?

K-Nearest Neighbors er en maskinlÃĶrings-teknik og algoritme, der kan bruges til bÃĨde regression og klassifikationsopgaver. K-Nearest Neighbors undersÃļger mÃĶrkerne pÃĨ et valgt antal datapunkter omkring et mÃĨlpunkt, for at lave en forudsigelse om den klasse, datapunktet tilhÃļrer. K-Nearest Neighbors (KNN) er et konceptuelt simpelt, men meget kraftfuldt algoritme, og derfor er det en af de mest populÃĶre maskinlÃĶringsalgoritmer. Lad os dykke dybt ind i KNN-algoritmen og se nÃļjagtigt, hvordan den fungerer. At have en god forstÃĨelse af, hvordan KNN fungerer, vil give os en bedre forstÃĨelse af de bedste og vÃĶrste brugsomrÃĨder for KNN.

Overblik 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 en dataset pÃĨ en 2D-plan. Forestil dig en masse datapunkter pÃĨ en graf, spredt ud langs grafen i smÃĨ klumper. KNN undersÃļger fordelingen af datapunkterne og, afhÃĶngigt af de argumenter, der gives til modellen, adskiller den datapunkterne i grupper. Disse grupper tildeles derefter en mÃĶrke. Den primÃĶre antagelse, som en KNN-model gÃļr, er, at datapunkter/eksempler, der findes i nÃĶrheden af hinanden, er meget lignende, mens hvis et datapunkt er langt vÃĶk fra en anden gruppe, er det ulignende til disse datapunkter.

En KNN-model beregner lignelse ved hjÃĶlp af afstanden mellem to punkter pÃĨ en graf. Jo stÃļrre afstanden mellem punkterne er, jo mindre lignende er de. Der er flere mÃĨder at beregne afstanden mellem punkter pÃĨ, men den mest almindelige afstands-metode er blot den euclidiske afstand (afstanden mellem to punkter i en lige linje).

KNN er en overvÃĨget lÃĶring-algoritme, hvilket betyder, at eksemplerne i datasettet skal have mÃĶrker tilknyttet sig/deres klasser skal vÃĶre kendt. Der er to andre vigtige ting at vide om KNN. FÃļrst er KNN en ikke-parametrisk algoritme. Dette betyder, at der ikke bliver lavet nogen antagelser om datasettet, nÃĨr modellen bruges. I stedet bliver modellen konstrueret helt fra den tilgÃĶngelige data. Anden, der ikke bliver lavet nogen opdeling af datasettet i trÃĶnings- og test-sÃĶt, nÃĨr KNN bruges. KNN laver ingen generaliseringer mellem et trÃĶnings- og test-sÃĶt, sÃĨ alle trÃĶningsdata bruges ogsÃĨ, nÃĨr modellen bedes om at lave forudsigelser.

Hvordan en KNN-algoritme fungerer

En KNN-algoritme gÃĨr gennem tre hovedfaser, mens den udfÃļres:

  1. Indstilling af K til det valgte antal naboer.
  2. Beregning af afstanden mellem et givet/test-eksempel og dataset-eksemplerne.
  3. Sortering af de beregnede afstande.
  4. Henting af mÃĶrkerne for de top K-indtastninger.
  5. Returnering af en forudsigelse om test-eksemplet.

I den fÃļrste fase vÃĶlges K af brugeren og fortÃĶller algoritmen, hvor mange naboer (hvor mange omgivende datapunkter), der skal vÃĶre med, nÃĨr der laves en vurdering af, hvilken gruppe mÃĨle-eksemplet tilhÃļrer. I den anden fase bemÃĶrkes, at modellen checker afstanden mellem mÃĨle-eksemplet og hvert eksempel i datasettet. Afstandene fÃļjes derefter til en liste og sorteres. EfterfÃļlgende checker den sorteret liste og returnerer mÃĶrkerne for de top K-elementer. Med andre ord, hvis K er indstillet til 5, checker modellen mÃĶrkerne for de 5 nÃĶrmeste datapunkter til mÃĨle-punktet. NÃĨr der laves en forudsigelse om mÃĨle-punktet, er det vigtigt, om opgaven er en regression eller klassifikation opgave. For en regression-opgave bruges gennemsnittet af de top K-mÃĶrker, mens modus af de top K-mÃĶrker bruges i tilfÃĶlde af klassifikation.

De eksakte matematiske operationer, der bruges til at udfÃļre KNN, afhÃĶnger af den valgte afstands-metode. Hvis du Ãļnsker at lÃĶre mere om, hvordan metricerne beregnes, kan du lÃĶse om nogle af de mest almindelige afstands-metricer, sÃĨsom Euclidisk, Manhattan og Minkowski.

Hvorfor vÃĶrdien af K betyder noget

Den primÃĶre begrÃĶnsning, nÃĨr man bruger KNN, er, at en ugyldig vÃĶrdi af K (forkert antal naboer at overveje) kan vÃĶlges. Hvis dette sker, kan forudsigelserne, der returneres, vÃĶre afvigtende. Det er meget vigtigt, at nÃĨr man bruger en KNN-algoritme, vÃĶlges den rigtige vÃĶrdi for K. Du Ãļnsker at vÃĶlge en vÃĶrdi for K, der maksimerer modellens evne til at lave forudsigelser pÃĨ usete data, mens fejlantal reduceres.

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, der returneres af KNN, er mindre stabile og pÃĨlidelige. For at fÃĨ en intuition om, hvorfor det er sÃĨdan, overvej et tilfÃĶlde, hvor vi har 7 naboer omkring et mÃĨle-punkt. 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 det overvÃĶldende flertal af naboerne (fem af syv) tilhÃļrer den BlÃĨ klasse, men de to nÃĶrmeste naboer tilfÃĶldigt er RÃļd, vil modellen forudsige, at mÃĨle-eksemplet er RÃļd. Trods modellens gÃĶt er BlÃĨ dog en bedre gÃĶt i sÃĨdant et scenarie.

Hvis dette er tilfÃĶldet, hvorfor ikke bare vÃĶlge den hÃļjeste K-vÃĶrdi, vi kan? Dette er, fordi at fortÃĶlle modellen at overveje for mange naboer ogsÃĨ vil reducere nÃļjagtigheden. NÃĨr radiusset, som KNN-modellen overvejer, Ãļges, vil den til sidst begynde at overveje datapunkter, der er tÃĶttere pÃĨ andre grupper end mÃĨle-punktet, og mis klassificering vil begynde at ske. For eksempel, selvom punktet, der oprindeligt blev valgt, var i en af de rÃļde regioner ovenfor, hvis K blev sat for hÃļjt, ville modellen nÃĨ ind i andre regioner for at overveje punkter. NÃĨr man bruger en KNN-model, prÃļves forskellige vÃĶrdier af K for at se, hvilken vÃĶrdi giver modellen den bedste prÃĶstation.

KNN Fordele og Ulemper

Lad os undersÃļge nogle af fordelene og ulemperne ved KNN-modellen.

Fordele:

KNN kan bruges til bÃĨde regression og klassifikationsopgaver, i modsÃĶtning til andre overvÃĨgede lÃĶring-algoritmer.

KNN er meget nÃļjagtig og simpel at bruge. Det er let at fortolke, forstÃĨ og implementere.

KNN gÃļr ingen antagelser om data, hvilket betyder, at det kan bruges til en bred vifte af problemer.

Ulemper:

KNN gemmer det meste eller alle data, hvilket betyder, at modellen krÃĶver meget hukommelse og er beregningskrÃĶvende. Store dataset kan ogsÃĨ fÃļre til, at forudsigelser tager lang tid.

KNN viser sig at vÃĶre meget fÃļlsom over for skalaen af datasettet og kan let blive afledt af irrelevante funktioner i forhold til andre modeller.

ResumÃĐ af K-Nearest Neighbors (KNN)

K-Nearest Neighbors er en af de enkleste maskinlÃĶringsalgoritmer. Trods sin enkelthed er KNN en kraftfuld algoritme, der giver en ret hÃļj nÃļjagtighed pÃĨ de fleste problemer. NÃĨr du bruger KNN, skal du sikre dig 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 specialer i Machine Learning og Deep Learning emner. Daniel hÃĨber at hjÃĶlpe andre med at bruge AI's kraft til sociale formÃĨl.