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)
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)
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 -
- Hogyan működik az SVM algoritmus?
- MD5 algoritmus (előnyei és hátrányai)
- K - klaszterezési algoritmus
- A megerősítéses tanulás típusai
- Teljes útmutató a C ++ algoritmushoz