Inleiding tot KNN-algoritme

K Het dichtstbijzijnde algoritme, bekend als KNN, is het basisalgoritme voor machine learning. Het begrijpen van dit algoritme is een zeer goede plek om te beginnen met het leren van machine learning, omdat de logica achter dit algoritme is opgenomen in veel andere modellen voor machine learning. K Het algoritme van de dichtstbijzijnde buur valt onder het classificatiegedeelte van begeleid leren.

Wat is begeleid leren?

Het begeleide leeralgoritme is een soort algoritme waarbij het afhankelijk is van gelabelde invoer om te leren en voorspelt op basis van de functie wanneer niet-gemerkte gegevens worden verstrekt. Zoals we hebben begrepen wat supervised learning is, laten we zien wat classificatie is, classificatiealgoritme geeft een discrete waarde als output, niet als continue waarden.

Hoe werkt het KNN-algoritme?

K Dichtstbijzijnde buren is een basisalgoritme dat alle beschikbare gegevens opslaat en de classificatie van niet-geëtiketteerde gegevens voorspelt op basis van een gelijkenismaat. In lineaire geometrie, wanneer twee parameters worden uitgezet op het 2D Cartesiaanse systeem, identificeren we de gelijkheidsmaat door de afstand tussen de punten te berekenen. Hetzelfde is hier van toepassing, het KNN-algoritme gaat ervan uit dat vergelijkbare dingen in de buurt bestaan, we kunnen eenvoudigweg dezelfde dingen dicht bij elkaar houden.

Voorbeeld: Als we een gegevensset hebben wanneer deze wordt geplot, ziet deze er als volgt uit: om deze gegevenspunten te classificeren, zal het algoritme van dichtstbijzijnde buren eerst de afstand tussen punten identificeren en kijken of ze vergelijkbaar zijn of niet.

In de geometrie volgens Euclidisch kan de afstandsfunctie worden berekend met de volgende vergelijking,

Als K = 1, dan wordt de case eenvoudigweg toegewezen aan een klasse van zijn naaste buur (we gebruiken "1" in bijna alle situaties in de wiskunde, we kunnen de waarde van K veranderen terwijl we de modellen in machine learning trainen en we zullen bespreek dit verder in het artikel) X en Y zijn de waarden op de coördinaatassen.

Als we hier opmerken, zullen alle maten voor afstand die we krijgen continue variabelen zijn, maar we hebben tijdens het classificeren discrete waarden nodig, we moeten hammingafstand gebruiken om dit te bereiken.

Deze vergelijking brengt ons ook de standaardisatie van numerieke waarden tussen 0 en 1 wanneer er een combinatie van numerieke en categorische waarden in de gegevensset is.

X Y Afstand
Met kanker Met kanker X = Y → D = 0
Zonder kanker Zonder kanker X! = Y → D = 1

Op deze manier werkt het algoritme en laten we nu eens kijken hoe we de waarde van K in KNN kiezen.

K-waarde kiezen in KNN-algoritme

Voordat we zien wat de factoren zijn die we moeten overwegen bij het kiezen van de K-waarde, moeten we begrijpen hoe de waarde van K invloed heeft op het algoritme.

Dit zijn de plots van dezelfde gegevensset met variërende K-waarden, K-waarde is 1 voor de plot in de linkerbovenhoek en het hoogst voor de plot in de rechteronderhoek. Als we zorgvuldig onderzoeken, kunnen we begrijpen dat de grens van het classificatie-algoritme vloeiend wordt naarmate de waarde van K toeneemt. Dat is de waarde van K is recht evenredig met de vloeiendheid van de grens. Hieruit kunnen we dus begrijpen dat als de K-waarde is ingesteld op 1, het trainingsmodel over de gegevens zal passen en als de K-waarde op een groot aantal wordt ingesteld, de gegevens onder de gegevens zullen passen. Om een ​​optimale waarde van K te kiezen, moeten we de validatiefout met meerdere K-waarden controleren en er een kiezen met de minimale fout.

Stappen om het KNN-algoritme in Python te implementeren

Tot nu toe hebben we hier het theoretische gedeelte van het algoritme van de K Dichtstbijzijnde Neighbour geleerd, nu laten we praktisch zien door te leren hoe te implementeren in python.

Stap 1: Bibliotheken importeren

Hieronder ziet u de bibliotheken importeren die we nodig hebben om KNN te draaien.

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

Stap 2: Gegevensset importeren

Hier zullen we zien dat de dataset wordt geïmporteerd.

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

Stap 3: Gegevensset splitsen

De volgende stap is om onze dataset op te splitsen in test- en train-split.

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)

Opmerking: de gegevensset die ik gebruik om te demonstreren, is vooraf verwerkt met het definiëren van de X- en Y-waarden. Als dit niet eerst wordt gedaan, moet het worden gedaan, want terwijl het classificatiemodel wordt getraind, moeten we daarvoor gelabelde gegevens doorgeven om afstanden te berekenen.

Stap 4: Trainingsmodel

Nu gaan we in deze stap een modeltraining zien.

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

Opmerking: hier gebruiken we K buren classifier geïmporteerd uit de module sklearn.neighbours bibliotheek.

Stap 5: Voorspellingen uitvoeren

Voorspellingen uitvoeren over de testsplitsgegevens.

y_pred = classifier.predict(X_test)

Stap 6: Controleer validatie

De volgende stap is om het algoritme te evalueren en de validatiefout te controleren, opnieuw uit te voeren met een andere K-waarde en de k-waarde te overwegen waar we de minimale validatiefout krijgen. Dit is hoe we K Class Neighbours-classificator praktisch kunnen implementeren, er zijn meerdere manieren om dit algoritme te implementeren. Dit is er maar een en in dit artikel heb ik de stappen kort beschreven omdat onze belangrijkste agenda is om te begrijpen hoe het algoritme werkt.

Conclusie

Zoals eerder gezegd, is het algoritme van K Dichtstbijzijnde buren een van de eenvoudigste en gemakkelijkste algoritmen die worden gebruikt voor classificatie. Gebaseerd op hoe het werkt, valt het ook onder het "Lazy Learning Algorithm". Over het algemeen is de K-waarde die iedereen passeert tijdens het trainen van het model een oneven getal, maar dat is geen dwang. Er zijn echter ook weinig nadelen tijdens het gebruik van KNN

  • Het gaat niet goed met de categorische gegevens, omdat we de afstand tussen twee categorische functies niet kunnen vinden.
  • Het werkt ook niet goed met hoog-dimensionale gegevens, omdat het voor het algoritme moeilijk zal zijn om de afstand in elke dimensie te berekenen.

Als we op dit moment zien dat de meeste gebruiksscenario's in Machine Learning worden omringd door het classificatie-algoritme op het basisniveau, speelt KNN daarmee een belangrijke rol in de wereld van machine learning.

Aanbevolen artikelen

Dit is een gids voor KNN-algoritme. Hier bespreken we de introductie en werking van het K Dichtstbijzijnde buren-algoritme met stappen om het kNN-algoritme in python te implementeren. U kunt ook de volgende artikelen bekijken voor meer informatie-

  1. Hoe werkt SVM-algoritme?
  2. MD5-algoritme (voor- en nadelen)
  3. K- betekent clusteringalgoritme
  4. Soorten versterkingsleren
  5. Volledige gids voor C ++ algoritme

Categorie: