GeeksforGeeks (Čeština)
K-Nearest Neighbors je jedním z nejzákladnějších, ale podstatných klasifikačních algoritmů ve strojovém učení. Patří do kontrolované výukové domény a nachází intenzivní uplatnění v rozpoznávání vzorů, dolování dat a detekci narušení.
Ve scénářích z reálného života je široce použitelný, protože je neparametrický, což znamená, že nedělá jakékoli základní předpoklady o distribuci dat (na rozdíl od jiných algoritmů, jako je GMM, které předpokládají Gaussovo rozdělení daných dat).
Dostáváme některá předchozí data (nazývaná také tréninková data), která klasifikuje souřadnice do skupin identifikovaných atributem.
Jako příklad zvažte následující tabulku datových bodů, která obsahuje dvě funkce:
Nyní, vzhledem k další sadě datových bodů ( také nazývané testovací data), přidělte tyto body skupině analýzou tréninkové sady. Nezařazené body jsou označeny jako „bílé“.
Intuice
Pokud tyto body vykreslíme do grafu, můžeme najít některé shluky nebo skupiny. Nyní, vzhledem k neklasifikovanému bodu, jej můžeme přiřadit ke skupině pozorováním, do které skupiny patří jeho nejbližší sousedé. To znamená, že bod v blízkosti shluku bodů klasifikovaných jako „červený“ má vyšší pravděpodobnost, že bude klasifikován jako „červený“.
Intuitivně vidíme, že první bod (2.5, 7) by měl být klasifikován jako „Zelený“ a druhý bod (5,5, 4,5) by měl být klasifikován jako „Červený“.
Algoritmus
Nechť m je počet vzorků tréninkových dat. Nechť p je neznámý bod.
- Uložte ukázky tréninku do řady datových bodů arr. To znamená, že každý prvek tohoto pole představuje n-tici (x, y).
-
for i=0 to m: Calculate Euclidean distance d(arr, p).
- Vytvořte množinu S nejmenších získaných vzdáleností K . Každá z těchto vzdáleností odpovídá již klasifikovanému datovému bodu.
- Vrácení většinového štítku mezi S.
K lze ponechat jako liché číslo, abychom mohli vypočítat jasná většina v případě, že jsou možné pouze dvě skupiny (např. červená / modrá). Se zvyšujícím se K získáváme plynulejší a definovanější hranice napříč různými klasifikacemi. Přesnost výše uvedeného klasifikátoru se také zvyšuje, protože zvyšujeme počet datových bodů v tréninkové sadě.
Příklad programu
Předpokládejme, že jako dva klasifikátory (skupiny) budou 0 a 1.
Výstup:
The value classified to unknown point is 0.
Do tohoto článku přispěla Anannya Uberoi. Pokud máte rádi GeeksforGeeks a chtěli byste přispět, můžete také napsat článek pomocí příspěvku prispět.geeksforgeeks.org nebo poslat svůj článek poštou na přispě[email protected]. Podívejte se, jak se váš článek zobrazuje na hlavní stránce GeeksforGeeks, a pomozte tak dalším Geekům.