GeeksforGeeks (Magyar)
A K-legközelebbi szomszédok a gépi tanulás egyik legalapvetőbb, mégis elengedhetetlen osztályozási algoritmusa. A felügyelt tanulási területhez tartozik, és intenzíven alkalmazza a minták felismerését, az adatbányászatot és a behatolás észlelését. az adatok terjesztésével kapcsolatos alapfeltevések (szemben más algoritmusokkal, például a GMM-mel, amelyek az adott adatok Gauss-féle eloszlását feltételezik).
Néhány előzetes adatot kapunk (más néven képzési adatok), amelyek a koordinátákat egy attribútum által azonosított csoportokba sorolja.
Példaként vegye figyelembe az alábbi két jellemzőt tartalmazó adatpont-táblázatot:
Most egy másik adatpont-halmaz ( tesztadatoknak is nevezik), a képzési készlet elemzésével ossza ki ezeket a pontokat egy csoportba. Ne feledje, hogy a besorolatlan pontokat „fehér” jelöléssel látták el.
Intuíció
Ha ezeket a pontokat grafikonon ábrázoljuk, akkor képesek lehetünk néhány fürtöt vagy csoportot megtalálni. Most, ha egy osztályozatlan pontot kapunk, egy csoporthoz rendelhetjük, figyelemmel kísérve, hogy a legközelebbi szomszédok milyen csoportba tartoznak. Ez azt jelenti, hogy a „Vörös” besorolású pontok halmazához közeli pont nagyobb valószínűséggel „Vörösnek” minősül.
Intuitív módon azt láthatjuk, hogy az első pontot (2.5, 7) a „zöld” kategóriába, a második pontot (5.5, 4.5) pedig a „piros” kategóriába kell besorolni.
Algoritmus
Legyen m az edzésadatok száma. Legyen p ismeretlen pont.
- Tárolja az edzésmintákat egy arr tömb adatpontban. Ez azt jelenti, hogy ennek a tömbnek minden eleme egy duplát (x, y) képvisel.
-
for i=0 to m: Calculate Euclidean distance d(arr, p).
- Készítsen K legkisebb távolságot S halmazból . Ezen távolságok mindegyike egy már besorolt adatpontnak felel meg.
- Visszaadja a többségi címkét az S között.
A K páratlan számként tartható, így kiszámíthatjuk egyértelmű többség abban az esetben, ha csak két csoport lehetséges (pl. Piros / Kék). A K növekedésével simább, határozottabb határokat kapunk a különböző osztályozások között. Ezenkívül a fenti osztályozó pontossága növekszik, amikor növeljük az adatpontok számát a képzési készletben.
Példa program
Tegyük fel, hogy a 0 és az 1 a két osztályozó (csoport).
Kimenet:
The value classified to unknown point is 0.
A cikket Anannya Uberoi írta. Ha tetszik a GeeksforGeeks, és szeretne közreműködni, írhat egy cikket is a contrib.geeksforgeeks.org címen, vagy elküldheti cikkét a [email protected] címre. Tekintse meg cikkét a GeeksforGeeks főoldalán, és segítsen más Geekseknek.