Část 1 ze série o úvodních algoritmech strojového učení
Pokud znáte strojové učení a základní algoritmy, které jsou používané v terénu, pak jste pravděpodobně slyšeli o algoritmu k-nejbližších sousedů neboli KNN. Tento algoritmus je jednou z nejjednodušších technik používaných ve strojovém učení. Jedná se o metodu, kterou mnozí v oboru preferují kvůli jejímu snadnému použití a nízké době výpočtu.
Co je KNN? KNN je model, který klasifikuje datové body na základě bodů, které se mu nejvíce podobají. Využívá testovací data k provedení „poučeného odhadu“, podle čeho by měl být neklasifikovaný bod klasifikován.
Pros:
- Snadné použití.
- Čas rychlého výpočtu.
- Nečiní předpoklady o datech.
Nevýhody:
- Přesnost závisí na kvalitě data.
- Musí najít optimální hodnotu k (počet nejbližších sousedů).
- Špatné při klasifikaci datových bodů na hranici, kde je lze klasifikovat tak či onak.
KNN je algoritmus, který je považován za neparametrický i za příklad líného učení. Co přesně tyto dva pojmy znamenají?
- Neparametrický znamená, že nevytváří žádné předpoklady. Model je tvořen výhradně z dat, která mu byla dána, spíše než za předpokladu, že jeho struktura je normální.
- Líné učení znamená, že algoritmus nedělá žádné ge neralizace. To znamená, že při použití této metody je zapotřebí jen málo školení. Z tohoto důvodu se všechna tréninková data také používají při testování při použití KNN.
Kde použít KNN
KNN se často používá v jednoduchých doporučovacích systémech, image technologie rozpoznávání a modely rozhodování. Jedná se o algoritmické společnosti jako Netflix nebo Amazon, které doporučují různé filmy ke sledování nebo knihy ke koupi. Společnost Netflix dokonce zahájila soutěž o cenu Netflix, která udělila 1 milion dolarů týmu, který vytvořil nejpřesnější algoritmus doporučení!
Možná vás zajímá: „Ale jak to tyto společnosti dělají?“ Tyto společnosti použijí KNN na soubor údajů shromážděných o filmech, které jste sledovali, nebo o knihách, které jste si koupili na jejich webových stránkách. Tyto společnosti poté zadají vaše dostupné údaje o zákaznících a porovná je s ostatními zákazníky, kteří sledovali podobné filmy. nebo zakoupili podobné knihy. Tento datový bod bude poté klasifikován jako určitý profil na základě jejich minulosti pomocí KNN. Doporučené filmy a knihy pak budou záviset na tom, jak algoritmus tento datový bod klasifikuje.
Obrázek nahoře vizualizuje, jak funguje KNN při pokusu o klasifikaci datového bodu na základě dané datové sady. Porovná se s jeho nejbližšími body a klasifikováno podle toho, ke kterým bodům je nejblíže a nejpodobnější. Zde vidíte, že bod Xj bude klasifikován jako W1 (červený) nebo W3 (zelený) na základě vzdálenosti od každé skupiny bodů.
The Ma tematika Za KNN
Stejně jako téměř všechno ostatní funguje KNN díky hluboce zakořeněným matematickým teoriím, které používá. Při implementaci KNN je prvním krokem transformace datových bodů na vektory prvků nebo na jejich matematickou hodnotu. Algoritmus poté pracuje tak, že najde vzdálenost mezi matematickými hodnotami těchto bodů. Nejběžnějším způsobem nalezení této vzdálenosti je euklidovská vzdálenost, jak je uvedeno níže.
KNN spustí tento vzorec pro výpočet vzdálenosti mezi každým datovým bodem a testovacími daty. Poté zjistí pravděpodobnost, že tyto body budou podobné testovacím datům, a klasifikuje je podle toho, které body sdílejí nejvyšší pravděpodobnosti.
Chcete-li tento vzorec vizualizovat, vypadalo by to asi takto:
Závěr
Nyní znáte základy jednoho z nejzákladnějších algoritmů strojového učení .Je to skvělé místo, kde začít, když se poprvé naučíte stavět modely založené na různých souborech dat. Pokud máte datovou sadu s mnoha různými body a přesnými informacemi, je to skvělé místo, kde můžete začít zkoumat strojové učení pomocí KNN.
Při pohledu na začátek používání tohoto algoritmu pamatujte na tyto tři body:
- Nejprve najděte datovou sadu, se kterou se bude snadno pracovat, nejlépe jednu se spoustou různých bodů a označených dat.
- Zadruhé, zjistěte, který jazyk bude nejjednodušší k použití k vyřešení problému. Používání KNN v jazyce R nejvíc znám, ale Python je také oblíbeným jazykem profesionálů v oblasti strojového učení.
- Zatřetí, proveďte svůj průzkum. Je důležité naučit se správné postupy pro používání tohoto algoritmu, abyste našli co nejpřesnější výsledky ze své datové sady.
Byly provedeny různé studie, jak lze tento algoritmus vylepšit. Tyto studie mají za cíl to udělat, abyste mohli vážit kategorie odlišně, abyste dosáhli přesnější klasifikace. Vážení těchto kategorií se liší v závislosti na způsobu výpočtu vzdálenosti.
Závěrem lze říci, že se jedná o základní algoritmus strojového učení, který je spolehlivý z mnoha důvodů, jako je snadnost použití a doba rychlého výpočtu. Je to dobrý algoritmus, který lze použít, když začínáte objevovat svět strojového učení, ale stále má prostor pro zlepšení a úpravy.