AI 101
Vad Àr en KNN (K-Nearest Neighbors)?
Vad Àr K-Nearest Neighbors (KNN)?
K-Nearest Neighbors Àr en maskininlÀrningsteknik och algoritm som kan anvÀndas för bÄde regressions- och klassificeringsuppgifter. K-nÀrmaste grannar undersöker etiketterna för ett valt antal datapunkter som omger en mÄldatapunkt, för att göra en förutsÀgelse om klassen som datapunkten faller in i. K-Nearest Neighbors (KNN) Àr en konceptuellt enkel men mycket kraftfull algoritm, och av dessa skÀl Àr det en av de mest populÀra maskininlÀrningsalgoritmerna. LÄt oss ta en djupdykning i KNN-algoritmen och se exakt hur den fungerar. Att ha en god förstÄelse för hur KNN fungerar kommer att lÄta dig uppskatta de bÀsta och sÀmsta anvÀndningsfallen för KNN.
Ăversikt över K-Nearest Neighbors (KNN)

Foto: Antti Ajanki AnAj via Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:KnnClassification.svg)
LÄt oss visualisera en datauppsÀttning pÄ ett 2D-plan. FörestÀll dig ett gÀng datapunkter pÄ en graf, utspridda lÀngs grafen i smÄ kluster. KNN undersöker fördelningen av datapunkterna och, beroende pÄ de argument som ges till modellen, delar den upp datapunkterna i grupper. Dessa grupper tilldelas sedan en etikett. Det primÀra antagandet som en KNN-modell gör Àr att datapunkter/instanser som finns i nÀrheten av varandra Àr mycket lika, medan om en datapunkt Àr lÄngt borta frÄn en annan grupp Àr den olik dessa datapunkter.
En KNN-modell berÀknar likhet med avstÄndet mellan tvÄ punkter pÄ en graf. Ju större avstÄndet Àr mellan punkterna, desto mindre lika Àr de. Det finns flera sÀtt att berÀkna avstÄndet mellan punkter, men det vanligaste avstÄndsmÄttet Àr bara euklidiskt avstÄnd (avstÄndet mellan tvÄ punkter i en rÀt linje).
KNN Àr en övervakad inlÀrningsalgoritm, vilket innebÀr att exemplen i datamÀngden mÄste ha etiketter tilldelade dem/deras klasser mÄste vara kÀnda. Det finns tvÄ andra viktiga saker att veta om KNN. För det första Àr KNN en icke-parametrisk algoritm. Detta innebÀr att inga antaganden om datamÀngden görs nÀr modellen anvÀnds. Snarare Àr modellen helt konstruerad frÄn den tillhandahÄllna data. För det andra finns det ingen uppdelning av datamÀngden i trÀnings- och testset nÀr du anvÀnder KNN. KNN gör inga generaliseringar mellan ett trÀnings- och testset, sÄ all trÀningsdata anvÀnds ocksÄ nÀr modellen ombeds göra förutsÀgelser.
Hur en KNN-algoritm fungerar
En KNN-algoritm gÄr igenom tre huvudfaser nÀr den utförs:
- StÀll in K till det valda antalet grannar.
- BerÀknar avstÄndet mellan ett tillhandahÄllet/testexempel och datasetexemplen.
- Sortering av de berÀknade avstÄnden.
- HÀmta etiketterna för de bÀsta K-posterna.
- Returnerar en förutsÀgelse om testexemplet.
I det första steget vÀljs K av anvÀndaren och det talar om för algoritmen hur mÄnga grannar (hur mÄnga omgivande datapunkter) som ska beaktas nÀr man gör en bedömning av den grupp som mÄlexemplet tillhör. I det andra steget, notera att modellen kontrollerar avstÄndet mellan mÄlexemplet och varje exempel i datamÀngden. AvstÄnden lÀggs sedan till i en lista och sorteras. EfterÄt kontrolleras den sorterade listan och etiketterna för de översta K-elementen returneras. Med andra ord, om K Àr satt till 5, kontrollerar modellen etiketterna för de 5 nÀrmaste datapunkterna till mÄldatapunkten. NÀr du gör en förutsÀgelse om mÄldatapunkten spelar det roll om uppgiften Àr en regression or klassificering uppgift. För en regressionsuppgift anvÀnds medelvÀrdet för de översta K-etiketterna, medan lÀget för de översta K-etiketterna anvÀnds vid klassificering.
De exakta matematiska operationerna som anvÀnds för att utföra KNN skiljer sig beroende pÄ det valda avstÄndsmÄttet. Om du vill lÀra dig mer om hur mÄtten berÀknas kan du lÀsa om nÄgra av de vanligaste avstÄndsmÄtten, som t.ex. euklidisk, Manhattanoch Minkowski.
Varför K-vÀrdet Àr viktigt
Den huvudsakliga begrÀnsningen nÀr du anvÀnder KNN Àr att ett felaktigt vÀrde pÄ K (fel antal grannar som ska beaktas) kan vÀljas. Om detta hÀnder kan de förutsÀgelser som returneras vara avsevÀrt avstÀngda. Det Àr mycket viktigt att, nÀr du anvÀnder en KNN-algoritm, det korrekta vÀrdet för K vÀljs. Du vill vÀlja ett vÀrde för K som maximerar modellens förmÄga att göra förutsÀgelser pÄ osynliga data samtidigt som antalet fel den gör.

Foto: Agor153 via Wikimedia Commons, CC BY SA 3.0 (https://en.wikipedia.org/wiki/File:Map1NN.png)
LÀgre vÀrden pÄ K betyder att de förutsÀgelser som KNN ger Àr mindre stabila och tillförlitliga. För att fÄ en intuition om varför det Àr sÄ, övervÀg ett fall dÀr vi har 7 grannar runt en mÄldatapunkt. LÄt oss anta att KNN-modellen arbetar med ett K-vÀrde pÄ 2 (vi ber den att titta pÄ de tvÄ nÀrmaste grannarna för att göra en förutsÀgelse). Om den stora majoriteten av grannarna (fem av sju) tillhör klassen BlÄ, men de tvÄ nÀrmaste grannarna bara rÄkar vara Röda, kommer modellen att förutsÀga att frÄgeexemplet Àr Röd. Trots modellens gissning skulle Blue i ett sÄdant scenario vara en bÀttre gissning.
Om sÄ Àr fallet, varför inte bara vÀlja det högsta K-vÀrdet vi kan? Detta beror pÄ att om man sÀger till modellen att ta hÀnsyn till för mÄnga grannar kommer det ocksÄ att minska noggrannheten. NÀr radien som KNN-modellen anser ökar kommer den sÄ smÄningom att börja övervÀga datapunkter som ligger nÀrmare andra grupper Àn de Àr mÄldatapunkten och felklassificering kommer att börja intrÀffa. Till exempel, Àven om den punkt som ursprungligen valdes var i en av de röda regionerna ovan, om K sattes för högt, skulle modellen nÄ in i de andra regionerna för att övervÀga punkter. NÀr man anvÀnder en KNN-modell prövas olika vÀrden pÄ K för att se vilket vÀrde som ger modellen bÀst prestanda.
KNN För- och nackdelar
LÄt oss undersöka nÄgra av för- och nackdelarna med KNN-modellen.
Alla tillgÄngar pÄ ett och samma stÀlle
KNN kan anvÀndas för bÄde regressions- och klassificeringsuppgifter, till skillnad frÄn vissa andra övervakade inlÀrningsalgoritmer.
KNN Àr mycket exakt och enkel att anvÀnda. Det Àr lÀtt att tolka, förstÄ och implementera.
KNN gör inga antaganden om data, vilket innebÀr att den kan anvÀndas för en mÀngd olika problem.
Nackdelar:
KNN lagrar det mesta eller all data, vilket innebÀr att modellen krÀver mycket minne och Àr berÀkningsmÀssigt dyr. Stora datamÀngder kan ocksÄ göra att förutsÀgelser tar lÄng tid.
KNN visar sig vara mycket kÀnsligt för datauppsÀttningens skala och det kan ganska enkelt kastas bort av irrelevanta funktioner i jÀmförelse med andra modeller.
Sammanfattning av K-NĂ€rmaste Grannar (KNN)
K-Nearest Neighbors Àr en av de enklaste maskininlÀrningsalgoritmerna. Trots hur enkelt KNN Àr i konceptet Àr det ocksÄ en kraftfull algoritm som ger ganska hög noggrannhet pÄ de flesta problem. NÀr du anvÀnder KNN, se till att experimentera med olika vÀrden pÄ K för att hitta det tal som ger den högsta noggrannheten.