Introduktion til KNN-algoritme

K Nærmeste nabo's algoritme, kendt som KNN, er den grundlæggende algoritme til maskinlæring. At forstå denne algoritme er et meget godt sted at starte læring af maskinlæring, da logikken bag denne algoritme er integreret i mange andre maskinlæringsmodeller. K Nærmeste nabos algoritme hører under klassificeringsdelen i overvåget læring.

Hvad er superviseret læring?

Den overvågede indlæringsalgoritme er en slags algoritme, hvor den er afhængig af mærket input til at lære og forudsiger baseret på funktionen, når der ikke er mærket data. Da vi har forstået, hvad der er overvåget læring, lad os se, hvad der er klassificering, giver klassificeringsalgoritme en diskret værdi som en output, ikke kontinuerlige værdier.

Hvordan fungerer KNN-algoritmen?

K Nærmeste naboer er en grundlæggende algoritme, der gemmer alle de tilgængelige og forudsiger klassificering af umærkede data baseret på en lighedstakt. I lineær geometri, når to parametre er afbildet på det 2D kartesiske system, identificerer vi lighedstallet ved at beregne afstanden mellem punkterne. Det samme gælder her, KNN-algoritmen fungerer ud fra den antagelse, at der findes lignende ting i nærheden, simpelthen kan vi lægge de samme ting i nærheden af ​​hinanden.

Eksempel: Hvis vi har et datasæt, når plottet ser sådan ud, for at klassificere disse datapunkter, identificerer K nærmeste naboer algoritme først afstanden mellem punkter og se, om de er ens eller ikke.

I geometri ifølge euklidisk kan afstandsfunktion beregnes ved følgende ligning,

Hvis K = 1, tildeles sagen simpelthen en klasse for sin nærmeste nabo (Vi bruger "1" i næsten alle situationer i matematik, vi kan ændre værdien af ​​K, mens vi træner modellerne i maskinlæring, og vi vil drøft dette nærmere i artiklen) X og Y er værdierne på koordinatakslerne.

Hvis vi bemærker her, er alle målene for afstand, vi får, kontinuerlige variabler, men vi har brug for diskrete værdier, mens vi gør klassificering, så vi er nødt til at bruge hammingsafstand for at opnå dette.

Denne ligning bringer os også standardisering af numeriske værdier mellem 0 til 1, når der er en blanding af numeriske og kategoriske værdier i datasættet.

x Y Afstand
Med kræft Med kræft X = Y → D = 0
Uden kræft Uden kræft X! = Y → D = 1

På denne måde fungerer algoritmen, og lad os nu dykke ned i, hvordan vælger vi værdien af ​​K i KNN.

Valg af K-værdi i KNN-algoritme

Før vi ser, hvad der er faktorer, der skal overvejes, når vi vælger K-værdi, skal vi forstå, hvordan påvirker værdien af ​​K algoritmen.

Dette er plottene med det samme datasæt med forskellige K-værdier, K-værdien er 1 for plottet i venstre øverste hjørne og højest for plottet i højre nederste hjørne. Hvis vi undersøger nøje, kan vi forstå, at grænsen for klassificeringsalgoritmen bliver glat, når værdien af ​​K øges. Det er, at værdien af ​​K er direkte proportional med glatningen af ​​grænsen. Så ud fra dette, kan vi forstå, at hvis K-værdien er indstillet til 1, så vil træningsmodellen overfylde dataene, og hvis K-værdien er indstillet til et stort antal, så vil den understøtte dataene. For at vælge en optimal værdi af K skal vi kontrollere valideringsfejlen med flere K - værdier og vælge en med den minimale fejl.

Trin til implementering af KNN-algoritmen i Python

Indtil videre har vi lært den teoretiske del af K Nearest Neighbour's algoritme, lad os nu se praktisk ved at lære at implementere i python.

Trin 1: Importer biblioteker

I nedenstående vil vi se Importere de biblioteker, som vi har brug for for at køre KNN.

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

Trin 2: Import af datasæt

Her vil vi se datasættet, der importeres.

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

Trin 3: Del datasæt

Næste trin er at opdele vores datasæt i test- og togopdeling.

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)

Bemærk: Datasæt, jeg bruger til at demonstrere, er forbehandlet med at definere X- og Y-værdierne. Hvis dette ikke gøres først, skal det gøres, for mens klassificeringsmodellen bliver trænet, skal vi videregive mærkede data til det for at beregne afstande.

Trin 4: Træningsmodel

Nu i dette trin vil vi se en modeluddannelse.

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

Bemærk: Her bruger vi K naboer klassifikator importeret fra modulet sklearn.neighbours bibliotek.

Trin 5: Kør forudsigelser

Kører forudsigelser om testdelte data.

y_pred = classifier.predict(X_test)

Trin 6: Kontroller validering

Næste trin er at evaluere algoritme og kontrollere valideringsfejlen, køre igen med anden K-værdi og overveje k-værdien, hvor vi får den minimale valideringsfejl. Dette er, hvordan vi praktisk talt kan implementere K Nearest Neighbours-klassifikator, der er flere måder at implementere denne algoritme, dette er bare en af ​​dem, og i denne artikel har jeg beskrevet meget kort trinnene, da vores vigtigste dagsorden er at forstå, hvordan algoritmen fungerer.

Konklusion

Som nævnt tidligere er K Nearest Neighbours algoritme en af ​​de enkleste og nemmeste algoritmer, der bruges til klassificering. Baseret på hvordan det fungerer, kommer det også under “Lazy Learning Algorithm”. Generelt er K-værdien, som alle passerer, mens de træner modellen, et ulige tal, men det er ikke en tvang. Der er dog kun få ulemper, mens du bruger KNN, der kun er få af dem

  • Det går ikke godt med de kategoriske data, fordi vi ikke kan finde afstanden mellem to kategoriske funktioner.
  • Det fungerer heller ikke godt med højdimensionelle data, da det vil være vanskeligt for algoritmen at beregne afstanden i hver dimension.

Hvis vi i øjeblikket ser de fleste af brugssagerne i Machine Learning er omgivet af klassificeringsalgoritmen på basisniveau, er det sådan, KNN spiller en vigtig rolle i maskinlæringsverdenen.

Anbefalede artikler

Dette er en guide til KNN-algoritme. Her diskuterer vi introduktionen og arbejdet af K Nærmeste naboer-algoritmen med trin til implementering af kNN-algoritmen i python. Du kan også se på de følgende artikler for at lære mere-

  1. Hvordan fungerer SVM-algoritme?
  2. MD5-algoritme (fordele og ulemper)
  3. K- betyder klynge-algoritme
  4. Typer af forstærkningslæring
  5. Komplet guide til C ++ algoritme

Kategori: