Introduktion till KNN-algoritm

K Närmaste grannas algoritm, främst känd som KNN, är den grundläggande algoritmen för maskininlärning. Att förstå denna algoritm är ett mycket bra ställe att börja lära sig maskininlärning, eftersom logiken bakom denna algoritm är integrerad i många andra maskininlärningsmodeller. K Närmaste grannas algoritm omfattas av klassificeringsdelen i övervakat lärande.

Vad är Supervisised Learning?

Den övervakade inlärningsalgoritmen är en typ av algoritm där den förlitar sig på märkt input för att lära sig och förutsäger baserat på funktionen när omärkt data tillhandahålls. Eftersom vi har förstått vad övervakat inlärning låter oss se vad som är klassificering, ger klassificeringsalgoritm ett diskret värde som ett output, inte kontinuerliga värden.

Hur fungerar KNN-algoritmen?

K Närmaste grannar är en grundläggande algoritm som lagrar alla tillgängliga och förutsäger klassificering av omärkta data baserat på ett likhetsmått. I linjär geometri när två parametrar planeras på det 2D kartesiska systemet identifierar vi likhetsmåttet genom att beräkna avståndet mellan punkterna. Detsamma gäller här, KNN-algoritmen fungerar med antagandet att liknande saker finns i närheten, helt enkelt kan vi lägga in samma saker förbli nära varandra.

Exempel: Om vi ​​har en datauppsättning när planerad ser ut så här, för att klassificera dessa datapunkter K Närmaste grannar algoritm kommer först att identifiera avståndet mellan punkter och se om de är lika eller inte.

I geometri enligt Euklidean kan avståndsfunktionen beräknas med följande ekvation,

Om K = 1, är fallet helt enkelt tilldelat en klass av sin närmaste granne (Vi använder "1" i nästan alla situationer i matematik, vi kan ändra värdet på K medan vi utbildar modellerna i maskininlärning och vi kommer att diskutera detta ytterligare i artikeln) X och Y är värdena på koordinataxlarna.

Om vi ​​märker här kommer alla mått på avstånd som vi får vara kontinuerliga variabler, men vi behöver diskreta värden medan vi gör klassificering så vi måste använda hammingsavstånd för att uppnå detta.

Denna ekvation ger oss också standardiseringen av numeriska värden mellan 0 till 1 när det finns en blandning av numeriska och kategoriska värden i datauppsättningen.

X Y Distans
Med cancer Med cancer X = Y → D = 0
Utan cancer Utan cancer X! = Y → D = 1

På detta sätt fungerar algoritmen och låt oss nu gå in på hur väljer vi värdet på K i KNN.

Att välja K-värde i KNN-algoritm

Innan vi ser vilka faktorer som ska beaktas när vi väljer K-värde måste vi förstå hur värdet på K påverkar algoritmen.

Dessa är tomterna för samma datauppsättning med varierande K-värden, K-värdet är 1 för tomten i det vänstra övre hörnet och högst för tomten i det högra nedre hörnet. Om vi ​​undersöker noggrant kan vi förstå att gränsen för klassificeringsalgoritmen blir smidig när värdet på K ökar. Det är att K-värdet är direkt proportionellt mot gränsen. Så utifrån detta kan vi förstå att om K-värdet är inställt på 1 så kommer träningsmodellen att överföra data och om K-värdet är inställt på ett stort antal så kommer det att underutrusta data. För att välja ett optimalt värde på K måste vi kontrollera valideringsfelet med flera K-värden och välja ett med minsta fel.

Steg för att implementera KNN-algoritmen i Python

Hittills här har vi lärt oss den teoretiska delen av K närmaste grann algoritm nu låt oss se praktiskt genom att lära oss att implementera i python.

Steg 1: Importera bibliotek

I nedan ser vi Importera de bibliotek som vi behöver för att driva KNN.

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

Steg 2: Importera datasätt

Här ser vi datasatsen importeras.

file = "/path/to/the/dataset"
#Push dataset into Pandas dataframe
dataset = pd.read_csv(file)

Steg 3: Dela dataset

Nästa steg är att dela upp vårt datasätt i test- och tågdelning.

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30)

Obs: Datauppsättning som jag använder för att demonstrera har förbehandlats med att definiera X- och Y-värdena. Om detta inte görs först måste det göras, för medan klassificeringsmodellen tränas måste vi skicka märkta data för att beräkna avstånd.

Steg 4: Utbildningsmodell

Nu i detta steg kommer vi att se en modellträning.

from sklearn.neighbors import KNeighborsClassifier
classifier = KNeighborsClassifier(n_neighbors=3)
classifier.fit(X_train, y_train)

Obs: Här använder vi K grannar-klassificeraren som importeras från biblioteket sklearn.neighbours.

Steg 5: Att köra förutsägelser

Kör förutsägelser om testdelningsdata.

y_pred = classifier.predict(X_test)

Steg 6: Kontrollera validering

Nästa steg är att utvärdera algoritmen och kontrollera valideringsfelet, kör igen med olika K-värde och överväga k-värdet där vi får det minsta valideringsfelet. Så här kan vi praktiskt implementera K närmaste grannar klassificerare, det finns flera sätt att implementera denna algoritm detta är bara en av dem och i den här artikeln har jag beskrivit mycket kort stegen som vår huvudsakliga agenda är att förstå hur algoritmen fungerar.

Slutsats

Som sagt tidigare är K Nearest Neighours algoritm en av de enklaste och lättaste algoritmerna som används för klassificering. Baserat på hur det fungerar kommer det också under ”Lazy Learning Algoritm”. I allmänhet är K-värdet som alla passerar när de utbildar modellen ett udda tal men det är inte en tvång. Det finns dock få nackdelar samtidigt som man använder KNN som få av dem är

  • Det går inte bra med den kategoriska informationen, för vi kan inte hitta avståndet mellan två kategoriska funktioner.
  • Det fungerar inte heller bra med högdimensionell data, eftersom det kommer att vara svårt för algoritmen att beräkna avståndet i varje dimension.

Om vi ​​för närvarande ser de flesta användningsfallen i maskininlärning omges av klassificeringsalgoritmen på grundnivå, är det så KNN spelar en viktig roll i maskinlärningsvärlden.

Rekommenderade artiklar

Detta är en guide till KNN Algoritm. Här diskuterar vi introduktionen och arbetet av K Nearest Neighours-algoritmen med steg för att implementera kNN-algoritmen i python. Du kan också titta på följande artiklar för att lära dig mer-

  1. Hur fungerar SVM-algoritm?
  2. MD5-algoritm (fördelar och nackdelar)
  3. K- betyder klusteralgoritm
  4. Typer av förstärkningslärande
  5. Komplett guide till C ++ algoritm

Kategori: