Connect with us

AI 101

Hvad er KNN (K-Nærmeste Naboer)?

mm

Hvad er K-Nærmeste Naboer (KNN)?

K-Nærmeste Naboer er en maskinlærings-teknik og algoritme, der kan bruges til både regression og klassifikationsopgaver. K-Nærmeste Naboer undersøger mærkerne på et valgt antal datapunkter omkring et målpunkt, for at lave en forudsigelse om den klasse, som datapunktet tilhører. K-Nærmeste Naboer (KNN) er en konceptuelt enkel, men meget kraftfuld 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 opererer, vil låse op for de bedste og værste brugsområder for KNN.

Overblik over K-Nærmeste Naboer (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-plane. Forestil dig en masse datapunkter på et graf, spredt ud over grafen i små klaser. KNN undersøger fordelingen af datapunkterne og, afhængigt af argumenterne, der gives til modellen, adskiller datapunkterne i grupper. Disse grupper tildeles derefter en mærke. Den primære antagelse, som en KNN-model gør, er, at datapunkter/eksemplarer, 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 lignende ved hjælp af afstanden mellem to punkter på et 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-metrik er blot den euclidiske afstand (afstanden mellem to punkter i en lige linje).

KNN er en supervised learning-algoritme, hvilket betyder, at eksemplerne i datasettet skal have mærker tilknyttet. Der er to andre vigtige ting at vide om KNN. Først er KNN en non-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 er, at 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 bliver brugt, når modellen bedes om at lave forudsigelser.

Hvordan en KNN-Algoritme Opererer

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-eksemplernes.
  3. Sortering af de beregnede afstande.
  4. Hentning 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 skal træffes en afgørelse om, hvilken gruppe målpunktet tilhører. I den anden fase bemærker modellen afstanden mellem målpunktet og hvert eksempel i datasettet. Afstandene føjes derefter til en liste og sorteres. Efterfølgende kontrolleres den sorteret liste, og mærkerne for de top K-elementer returneres. Med andre ord, hvis K er sat til 5, kontrollerer modellen mærkerne for de 5 nærmeste datapunkter til målpunktet. Når der træffes en forudsigelse om målpunktet, afhænger det af, om opgaven er en regression eller klassifikationsopgave. 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 nøjagtige matematiske operationer, der bruges til at udføre KNN, afhænger af den valgte afstands-metrik. Hvis du ønsker at lære mere om, hvordan metrikkerne beregnes, kan du læse om nogle af de mest almindelige afstands-metrikker, såsom Euclidisk, Manhattan og Minkowski.

Hvorfor Værdien Af K Betaler

Den primære begrænsning, når man bruger KNN, er, at en ugyldig værdi af K (forkert antal naboer, der skal være med) kan vælges. Hvis dette sker, kan forudsigelserne, der returneres, være betydeligt forkerte. Det er meget vigtigt, at når man bruger en KNN-algoritme, den rette værdi for K vælges. Du vil ønske at vælge en værdi for K, der maksimerer modellens evne til at lave forudsigelser på usete data, samtidig med at 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, der returneres af KNN, er mindre stabile og pålidelige. For at få en intuition om, hvorfor dette er sådan, overvej et tilfælde, hvor vi har 7 naboer omkring et målpunkt. 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øde, vil modellen forudsige, at test-eksemplet er Rødt. Trods modellens gæt er Blå en bedre gæt i sådant et scenarie.

Hvis dette er tilfældet, hvorfor vælge ikke bare 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ålpunktet, og mis-klassificering vil begynde at ske. For eksempel, selvom punktet, der først blev valgt, var i en af de røde regioner ovenfor, hvis K var 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, til forskel fra andre supervised learning-algoritmer.

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

KNN laver 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 det er beregningskrævende. Store dataset kan også føre til, at forudsigelser tager lang tid.

KNN er meget følsom over for skalaen af datasettet og kan let blive forstyrret af irrelevante funktioner i forhold til andre modeller.

Resumé af K-Nærmeste Naboer (KNN)

K-Nærmeste Naboer er en af de enkleste maskinlæringsalgoritmer. Trods hvor simpel KNN er i koncept, er det også en kraftfuld algoritme, der giver ret høj nøjagtighed på de fleste problemer. Når du bruger KNN, skal du eksperimentere med forskellige værdier af K for at finde det nummer, 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.