Úvod do KNN algoritmu

K Algoritmus nejbližší Neighbour, známý jako KNN, je základní algoritmus pro strojové učení. Pochopení tohoto algoritmu je velmi dobrým místem pro zahájení učení strojového učení, protože logika tohoto algoritmu je začleněna do mnoha jiných modelů strojového učení. Algoritmus Nearest Neighbour spadá do klasifikované části v učení pod dohledem.

Co je učení pod dohledem?

Algoritmus pod dohledem je druh algoritmu, kde se spoléhá na označený vstup, aby se učil a předpovídal na základě funkce, když jsou poskytována neznačená data. Jak jsme pochopili, co je supervidované učení, podívejme se, co je klasifikace, klasifikační algoritmus dává diskrétní hodnotu jako výstup, nikoli spojité hodnoty.

Jak funguje KNN algoritmus?

K Nearest Neighbors je základní algoritmus, který ukládá všechny dostupné a předpovídá klasifikaci neznačených dat na základě míry podobnosti. V lineární geometrii, když jsou na 2D kartézském systému vykresleny dva parametry, určíme míru podobnosti výpočtem vzdálenosti mezi body. Totéž platí i zde, KNN algoritmus pracuje na předpokladu, že podobné věci existují v těsné blízkosti, jednoduše můžeme dát do stejných věcí zůstat blízko sebe.

Příklad: Pokud máme datovou sadu při vykreslení vypadá takto, klasifikovat tyto datové body K algoritmus Nejbližší sousedé nejprve identifikuje vzdálenost mezi body a uvidí, zda jsou podobné nebo ne.

V geometrii podle euklidovské funkce lze vypočítat vzdálenost podle následující rovnice,

Je-li K = 1, pak je případ jednoduše přiřazen ke třídě nejbližšího souseda (v téměř všech situacích v matematice používáme „1“, můžeme změnit hodnotu K při výcviku modelů v strojovém učení a budeme diskutujte o tom dále v článku) X a Y jsou hodnoty na souřadných osách.

Pokud si toho všimneme, všechna měřítka vzdálenosti, kterou dostáváme, budou spojité proměnné, ale při provádění klasifikace potřebujeme diskrétní hodnoty, k dosažení tohoto cíle musíme použít Hammingovu vzdálenost.

Tato rovnice také přináší standardizaci číselných hodnot mezi 0 a 1, pokud je v souboru dat směs číselných a kategorických hodnot.

X Y Vzdálenost
S rakovinou S rakovinou X = Y → D = 0
Bez rakoviny Bez rakoviny X! = Y → D = 1

Tímto způsobem algoritmus funguje a nyní se pojďme podívat, jak zvolíme hodnotu K v KNN.

Výběr hodnoty K v algoritmu KNN

Než uvidíme, jaké jsou faktory, které je třeba vzít v úvahu při výběru hodnoty K, musíme pochopit, jak hodnota K ovlivňuje algoritmus.

Toto jsou grafy stejného souboru dat s různými hodnotami K, hodnota K je 1 pro graf v levém horním rohu a nejvyšší pro graf v pravém dolním rohu. Pokud pečlivě prozkoumáme, můžeme pochopit, že hranice klasifikačního algoritmu se s rostoucí hodnotou K stává hladkou. To znamená, že hodnota K je přímo úměrná hladkosti hranice. Z toho můžeme pochopit, že pokud je hodnota K nastavena na 1, pak tréninkový model data nadměrně doplní a pokud je hodnota K nastavena na velké číslo, pak podtrhuje data. Pro výběr optimální hodnoty K musíme zkontrolovat chybu ověření s více hodnotami K a vybrat jednu s minimální chybou.

Kroky k implementaci KNN algoritmu v Pythonu

Dosud jsme se naučili teoretickou část algoritmu K Nearest Neighbour, nyní se podívejme prakticky tím, že se naučíme, jak implementovat v pythonu.

Krok 1: Import knihoven

Níže vidíme Import knihoven, které potřebujeme ke spuštění KNN.

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

Krok 2: Import datové sady

Zde uvidíme import datového souboru.

file = "/path/to/the/dataset"
#Push dataset into Pandas dataframe
dataset = pd.read_csv(file)

Krok 3: Rozdělte datovou sadu

Dalším krokem je rozdělení našeho datového souboru na test a rozdělení vlaku.

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)

Poznámka: Soubor dat, který používám k demonstraci, byl předem zpracován s definováním hodnot X a Y. Pokud to není provedeno první, musí to být provedeno, protože zatímco se klasifikační model prohlubuje, musíme pro výpočet vzdáleností předat označená data.

Krok 4: Model školení

Nyní v tomto kroku uvidíme modelový trénink.

from sklearn.neighbors import KNeighborsClassifier
classifier = KNeighborsClassifier(n_neighbors=3)
classifier.fit(X_train, y_train)

Poznámka: Zde používáme klasifikátor sousedů K importovaný z knihovny modulu sklearn.neighbours.

Krok 5: Spuštění předpovědí

Spouštění předpovědí na testovacích rozdělených datech.

y_pred = classifier.predict(X_test)

Krok 6: Zkontrolujte ověření

Dalším krokem je vyhodnocení algoritmu a kontrola chyby ověření, spuštění znovu s jinou hodnotou K a zvážení hodnoty k, kde dostaneme minimální chybu ověření. Takto můžeme prakticky implementovat klasifikátor K Nearest Neighbors, existuje několik způsobů, jak implementovat tento algoritmus, to je jen jeden z nich, a v tomto článku jsem velmi stručně popsal kroky, protože naší hlavní agendou je pochopit, jak algoritmus funguje.

Závěr

Jak již bylo řečeno, algoritmus K Nearest Neighbors je jedním z nejjednodušších a nejjednodušších algoritmů používaných pro klasifikaci. Na základě toho, jak to funguje, spadá také do „Lazy Learning Algorithm“. Obecně platí, že hodnota K, kterou všichni procházejí při tréninku modelu, je liché číslo, ale to není nutkání. Při používání KNN je však i několik málo nevýhod

  • U kategorických dat to nejde dobře, protože nemůžeme najít vzdálenost mezi dvěma kategoriálními rysy.
  • To také nefunguje dobře s vysokorozměrnými daty, protože pro algoritmus bude obtížné vypočítat vzdálenost v každé dimenzi.

Pokud v současné době vidíme většinu případů použití ve strojovém učení, je obklopen klasifikačním algoritmem na základní úrovni, tak hraje KNN hlavní roli ve světě strojového učení.

Doporučené články

Toto je průvodce algoritmem KNN. Zde diskutujeme zavedení a fungování algoritmu K Nearest Neighbors s kroky k implementaci algoritmu kNN v pythonu. Další informace naleznete také v následujících článcích

  1. Jak funguje algoritmus SVM?
  2. Algoritmus MD5 (výhody a nevýhody)
  3. K- Znamená Clustering Algorithm
  4. Druhy posilování učení
  5. Kompletní průvodce algoritmem C ++

Kategorie: