Bevezetés a KNN algoritmusba

K A legközelebbi szomszéd algoritmusa, amely jól ismert KNN néven ismert, a gépi tanulás alapvető algoritmusa. Az algoritmus megértése nagyon jó hely a gépi tanulás megtanulásának megkezdéséhez, mivel az algoritmus mögött meghúzódó logika sok más gépi tanulási modellbe beépül. K A legközelebbi szomszéd algoritmusa a felügyelt tanulás osztályozási részéhez tartozik.

Mi az a felügyelt tanulás?

A felügyelt tanulási algoritmus egyfajta algoritmus, amelyben a címkézett bemenetre támaszkodik a tanulás és a függvény alapján előrejelzés történik, ha nem címkézett adatokat szolgáltatnak. Amint megértettük, hogy mi a felügyelt tanulás, nézzük meg, mi az osztályozás, az osztályozási algoritmus outputként diszkrét értéket ad, nem pedig folyamatos értékeket.

Hogyan működik a KNN algoritmus?

A Legközelebbi szomszédok olyan alapvető algoritmus, amely tárolja az összes rendelkezésre álló elemet, és megjósolja a címkézetlen adatok osztályozását egy hasonlósági mérés alapján. Lineáris geometriában, amikor két paramétert ábrázolunk a 2D derékszögű rendszeren, a pontok közötti távolság kiszámításával azonosítjuk a hasonlóságot. Ugyanez vonatkozik itt, a KNN algoritmus arra a feltevésre működik, hogy hasonló dolgok léteznek a közvetlen közelében, egyszerűen el tudjuk helyezni ugyanazokat a dolgokat, amelyek közel állnak egymáshoz.

Példa: Ha van olyan adatkészlet, amikor az ábrázolás így néz ki, ezen adatpontok osztályozásához a K Legközelebbi szomszédok algoritmus először azonosítja a pontok közötti távolságot, és megnézheti, hogy hasonlók-e vagy sem.

Az euklideszi geometria szerint a távolságfüggvény kiszámítható a következő egyenlettel:

Ha K = 1, akkor az esetet egyszerűen a legközelebbi szomszéd osztályához kell rendelni (Az „1” -et szinte bármelyik matematikai helyzetben használjuk, megváltoztathatjuk a K értékét, miközben a modelleket gépi tanulás közben képzzük, és tárgyalja tovább ezt a cikkben) X és Y a koordinátatengelyek értékei.

Ha itt észrevesszük, akkor az összes megszerzett távolságmérés folyamatos változó lesz, de az osztályozás során diszkrét értékekre van szükségünk, ennek eléréséhez ütköző távolságot kell használnunk.

Ez az egyenlet a numerikus értékek 0 és 1 közötti standardizálását is eredményezi, ha numerikus és kategorikus értékek vannak keverve az adatkészletben.

x Y Távolság
Rákkal Rákkal X = Y → D = 0
Rák nélkül Rák nélkül X! = Y → D = 1

Ilyen módon az algoritmus működik, és nézzük meg most, hogyan válasszuk ki a K értékét a KNN-ben.

K érték kiválasztása a KNN algoritmusban

Mielőtt megvizsgálnánk, hogy milyen tényezőket kell figyelembe venni a K érték kiválasztásakor, meg kell értenünk, hogyan befolyásolja a K értéke az algoritmus.

Ezek ugyanazon adatkészlet grafikonjai, változó K-értékekkel. A K-érték 1 a bal felső sarokban lévő ábra és a jobb alsó sarokban lévő ábra számára a legmagasabb. Ha alaposan megvizsgáljuk, megérthetjük, hogy a besorolási algoritmus határa simavá válik a K értékének növekedésével. Ez a K értéke, amely közvetlenül arányos a határ simaságával. Tehát ebből megérthetjük, hogy ha a K értéket 1-re állítják, akkor az edzési modell túlteljesíti az adatokat, és ha a K értéket nagy számra állítja, akkor az alulteljesíti az adatokat. A K optimális értékének megválasztásához ellenőriznünk kell az érvényesítési hibát több K-értékkel, és ki kell választanunk a minimális hibát.

A KNN algoritmus Pythonban történő végrehajtásának lépései

Eddig itt megtanultuk a K Legközelebbi Szomszéd algoritmusának elméleti részét, amelyet most gyakorlatilag láthatunk úgy, hogy megtanuljuk, hogyan kell végrehajtani a pythonban.

1. lépés: Könyvtárak importálása

Az alábbiakban láthatjuk a KNN futtatásához szükséges könyvtárak importálását.

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

2. lépés: Az adatkészlet importálása

Itt látni fogjuk az adatkészlet importálását.

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

3. lépés: Osztott adatkészlet

Következő lépés az adatkészlet tesztelésre és vonatfelosztásra való felosztása.

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)

Megjegyzés: Az adatkészlet, amelyet a bemutatáshoz használtam, előzetesen feldolgozott az X és Y értékek meghatározásával. Ha ezt előbb nem teszik meg, akkor ezt meg kell tenni, mert amíg az osztályozási modell edzett, a címkékkel ellátott adatokat át kell adnunk ehhez a távolságok kiszámításához.

4. lépés: Képzési modell

Most ebben a lépésben meglátogatjuk a modellképzést.

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

Megjegyzés: Itt a sklearn.neighbours könyvtárból importált K szomszédok osztályozóját használjuk.

5. lépés: Jóslatok futtatása

Futó előrejelzések a teszt megosztott adatain.

y_pred = classifier.predict(X_test)

6. lépés: Ellenőrizze az érvényesítést

A következő lépés az algoritmus kiértékelése és az érvényesítési hiba ellenőrzése, új K értékkel történő futtatás és a k érték figyelembevétele, ahol a minimális érvényesítési hibát kapjuk. Így valósíthatjuk meg a K Legközelebbi szomszédok osztályozót, ennek az algoritmusnak a megvalósításához többféle módja van: ez csak egy ezek közül, és ebben a cikkben nagyon röviden ismertettem a lépéseket, mivel a fő programunk az, hogy megértsük az algoritmus működését.

Következtetés

Mint korábban már említettük, a K Legközelebbi Szomszédok algoritmus az osztályozáshoz használt legegyszerűbb és legegyszerűbb algoritmus. Ennek működése alapján a „lusta tanulási algoritmus” alá tartozik. Általában a K-érték, amelyet mindenki átad a modell edzése közben, páratlan szám, de ez nem kényszer. A KNN használata során azonban kevés a hátránya is, ezek közül néhány

  • A kategorikus adatokkal nem igaz, mert nem találjuk a távolságot két kategorikus jellemző között.
  • Ez sem működik jól a nagy dimenziós adatokkal, mivel az algoritmus számára nehéz lesz kiszámítani az egyes dimenziók távolságát.

Ha azt látjuk, hogy a legtöbb használatot a Géptanulásban az alapszintű osztályozási algoritmus veszi körül, akkor a KNN fontos szerepet játszik a gépi tanulás világában.

Ajánlott cikkek

Ez egy útmutató a KNN algoritmushoz. Itt tárgyaljuk a K Legközelebbi Szomszédok algoritmus bevezetését és működését a kNN algoritmus pythonban történő megvalósításának lépéseivel. A következő cikkeket is megnézheti további információkért -

  1. Hogyan működik az SVM algoritmus?
  2. MD5 algoritmus (előnyei és hátrányai)
  3. K - klaszterezési algoritmus
  4. A megerősítéses tanulás típusai
  5. Teljes útmutató a C ++ algoritmushoz

Kategória: