Grunderna i AI

Vad är K-Nearest Neighbors (KNN)?

mm
Lägg till Unite.AI bland dina föredragna källor på Google

Vad är K-Nearest Neighbors (KNN)?

K-Nearest Neighbors är en maskinlärningsteknik och algoritm som kan användas för både regression och klassificering . K-Nearest Neighbors undersöker etiketterna på ett valt antal datapunkter runt ett måldatapunkt, för att göra en förutsägelse om den klass som datapunkten tillhör. K-Nearest Neighbors (KNN) är ett konceptuellt enkelt men mycket kraftfullt algoritm, och av dessa skäl är det en av de mest populära maskinlärningsalgoritmerna. Låt oss ta en djup dykning i KNN-algoritmen och se exakt hur den fungerar. Att ha en bra 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 av 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 datamängd på en 2D-yta. Tänk på en mängd datapunkter på en graf, spridda ut längs grafen i små kluster. KNN undersöker fördelningen av datapunkterna och, beroende på argumenten som ges till modellen, delar den in datapunkterna i grupper. Dessa grupper tilldelas sedan en etikett. Den primära antagandet som en KNN-modell gör är att datapunkter/instanser som existerar i nära anslutning till varandra är mycket lika, medan om en datapunkt är långt ifrån en annan grupp är den olik de datapunkterna.

En KNN-modell beräknar likhet med hjälp av avståndet mellan två punkter på en graf. Ju större avståndet mellan punkterna är, desto mindre lika är de. Det finns flera sätt att beräkna avståndet mellan punkter, men den vanligaste avståndsmetriken är bara euklidiskt avstånd (avståndet mellan två punkter i en rak linje).

KNN är en övervakad inlärningsalgoritm, vilket innebär att exemplen i datamängden måste ha etiketter tilldelade till dem/deras klasser måste vara kända. Det finns två andra viktiga saker att veta om KNN. Först är KNN en icke-parametrisk algoritm. Detta innebär att inga antaganden om datamängden görs när modellen används. Istället konstrueras modellen helt från den tillhandahållna datan. För det andra finns det ingen uppdelning av datamängden i tränings- och testmängder när KNN används. KNN gör inga generaliseringar mellan en tränings- och testmängd, så all träningsdata används också när modellen begärs att göra förutsägelser.

Hur en KNN-algoritm fungerar

En KNN-algoritm går igenom tre huvudsakliga faser när den utförs:

  1. Att ställa in K till det valda antalet grannar.
  2. Att beräkna avståndet mellan en given/testexempel och datamängdens exempel.
  3. Att sortera de beräknade avstånden.
  4. Att hämta etiketterna för de översta K-posterna.
  5. Att returnera en förutsägelse om testexemplet.

I den första fasen 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 en bedömning av den grupp som målexemplet tillhör ska göras. I den andra fasen noterar modellen avståndet mellan målexemplet och varje exempel i datamängden. Avstånden läggs sedan till i en lista och sorteras. Därefter kontrolleras den sorterade listan och etiketterna för de översta K-elementen returneras. Med andra ord, om K är inställt på 5, kontrollerar modellen etiketterna för de 5 närmaste datapunkterna till måldatapunkten. När en förutsägelse om måldatapunkten ska göras spelar det roll om uppgiften är en regressionsuppgift eller klassificeringsuppgift. För en regressionsuppgift används medelvärdet av de översta K-etiketterna, medan modus av de översta K-etiketterna används i fallet med klassificering.

De exakta matematiska operationerna som används för att utföra KNN skiljer sig beroende på den valda avståndsmetriken. Om du vill lära dig mer om hur metrikerna beräknas kan du läsa om några av de vanligaste avståndsmetrikerna, som euklidisk, Manhattan och Minkowski.

Varför K-värdet är viktigt

Den huvudsakliga begränsningen när KNN används är att ett olämpligt värde på K (fel antal grannar att beakta) kan väljas. Om detta händer kan de förutsägelser som returneras vara avsevärt fel. Det är mycket viktigt att, när en KNN-algoritm används, det rätta 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å osedda data medan antalet fel som den gör minskas.

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

Lägre värden på K innebär att de förutsägelser som KNN ger är mindre stabila och tillförlitliga. För att få en intuition om varför detta är så, överväg ett fall där vi har 7 grannar runt ett måldatapunkt. 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 överväldigande majoriteten av grannarna (fem av sju) tillhör den blå klassen, men de två närmaste grannarna råkar vara röda, kommer modellen att förutsäga att målexemplet är röd. Trots modellens gissning skulle blå vara en bättre gissning i ett sådant scenario.

Om detta är fallet, varför inte välja det högsta K-värdet vi kan? Detta beror på att att tala om för modellen att beakta för många grannar också kommer att minska noggrannheten. När KNN-modellens radius som den beaktar ökar, kommer den så småningom att börja beakta datapunkter som är närmare andra grupper än de är måldatapunkten och felklassificering kommer att börja ske. Till exempel, även om punkten som initialt valdes var i en av de röda regionerna ovan, om K är inställt för högt, kommer modellen att nå in i andra regioner för att beakta punkter. När en KNN-modell används, prova olika värden på K för att se vilket värde som ger modellen den bästa prestandan.

KNN Fördelar och Nackdelar

Låt oss undersöka några av fördelarna och nackdelarna med KNN-modellen.

Fördelar:

KNN kan användas för både regression och klassificering, 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 datan, vilket innebär att den kan användas för en stor mängd problem.

Nackdelar:

KNN lagrar mest eller all data, vilket innebär att modellen kräver mycket minne och är beräkningsmässigt dyrt. Stora datamängder kan också orsaka att förutsägelser tar lång tid.

KNN visar sig vara mycket känslig för datamängdens skala och den kan lätt påverkas av irrelevanta funktioner i jämförelse med andra modeller.

Sammanfattning av K-Nearest Neighbors (KNN)

K-Nearest Neighbors är en av de enklaste maskinlärningsalgoritmerna. Trots att KNN är enkelt i koncept, ä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 prova olika värden på K för att hitta det nummer som ger den högsta noggrannheten.

Blogger och programmerare med specialområden inom Machine Learning och Deep Learning ämnen. Daniel hoppas på att hjälpa andra att använda kraften från AI för socialt väl.