k-nearest neighbors algorithm
Főnév
k-nearest neighbors algorithm (tsz. k-nearest neighbors algorithms)
k-Nearest Neighbors Algorithm (k-NN) – k-legközelebbi szomszéd algoritmus
A k-Nearest Neighbors (k-NN) egy felügyelt gépi tanulási algoritmus, amelyet osztályozási (classification) és regressziós (regression) feladatokra is használnak. Az algoritmus alapötlete egyszerű: egy adott új adatpontot annak a k legközelebbi ismert szomszédja alapján sorolunk be.
🧠 Alapelv
- Adott egy címkézett adathalmaz (tanulóhalmaz).
- Egy új mintát szeretnénk osztályozni.
- A minta legközelebbi k szomszédját (legtöbb esetben Euklideszi távolság alapján) kiválasztjuk.
- Az új minta osztályát a szomszédok többségi osztálya (vagy regresszió esetén az átlagos értéke) alapján határozzuk meg.
📊 k-NN működése lépésről lépésre
- Válassz ki egy
kértéket (pl.k = 3). - Számítsd ki a távolságot az ismeretlen pont és az összes tanulópont között.
- Rendezés és kiválasztás: válaszd ki a
klegközelebbi adatpontot. - Többségi szavazás (osztályozás) vagy átlagolás (regresszió).
- Rendeld hozzá a megfelelő osztályt vagy értéket az új mintához.
📐 Gyakori távolságmértékek
Euklideszi távolság: A leggyakrabban használt metrika, a két pont közötti „egyenes vonal”. Képlete:
Manhattan-távolság: Az értékek abszolút különbségeinek összege – olyan, mintha rácson sétálnánk. Képlete:
Minkowski-távolság: Egy általános távolságmérték, amely tartalmazza az Euklideszi (p=2) és Manhattan (p=1) távolságokat is. Képlete:
Hamming-távolság: Kategóriák esetén alkalmazzák – megadja, hogy hány pozícióban térnek el az elemek. Példa:
101010vs100110→ különbség 2 pozícióban → távolság = 2
🧪 Példa: osztályozás k = 3
Egy új pontot szeretnél osztályozni. A három legközelebbi szomszéd osztályai:
Piros,Piros,Kék
Többségi szavazás alapján az új pont osztálya: Piros ✅
⚙️ Paraméterek
kválasztása:- Kis
k→ érzékeny a zajra (túlillesztés) - Nagy
k→ simítja a döntési határokat (alulillesztés veszélye) - Általában páratlan szám, hogy elkerüljük a döntetleneket
- Kis
- Súlyozás:
- Egyes k-NN verziók súlyozzák a szomszédokat a távolságuk alapján → közelebbi pont nagyobb súlyt kap
🧩 Előnyök
- Egyszerű, intuitív működés
- Nem tanul előre, nincs modellépítés → lazy learning
- Nem feltételez adatdisztribúciót
❌ Hátrányok
- Lassú nagy adathalmazok esetén (minden keresésnél újra kell számolni a távolságokat)
- Nehézkes magas dimenzióban (curse of dimensionality)
- Nem skálafüggetlen → jellemzők normalizálása fontos
🧠 Alkalmazási területek
- Képfelismerés
- Ajánlórendszerek
- Orvosi diagnózis
- Szövegkategorizálás
- Hangminták osztályozása
✅ Összefoglalás
A k-NN egy egyszerű, de hatékony algoritmus, amely a hasonlóság elvén működik. Bár nem mindig a leggyorsabb vagy legpontosabb, kiváló alapmodell vagy referencia a többi tanulási algoritmus összehasonlítására. Megfelelő adatelőkészítés és k paraméter választása esetén intuitív, pontos és jól alkalmazható sokféle problémára.
- k-nearest neighbors algorithm - Szótár.net (en-hu)
- k-nearest neighbors algorithm - Sztaki (en-hu)
- k-nearest neighbors algorithm - Merriam–Webster
- k-nearest neighbors algorithm - Cambridge
- k-nearest neighbors algorithm - WordNet
- k-nearest neighbors algorithm - Яндекс (en-ru)
- k-nearest neighbors algorithm - Google (en-hu)
- k-nearest neighbors algorithm - Wikidata
- k-nearest neighbors algorithm - Wikipédia (angol)