K-Means shlukování
K-Means shlukování je oblíbený algoritmus neřízeného strojového učení pro rozdělení datových sad do předem definovaného počtu odlišných, nepřekrývajících se shl...
K-nejbližší sousedé (KNN) je jednoduchý, neparametrický algoritmus pro klasifikaci a regresi, který předpovídá výsledky na základě blízkosti datových bodů.
Algoritmus k-nejbližších sousedů (KNN) je neparametrický, řízený algoritmus strojového učení používaný pro klasifikaci a regresi. Je založen na konceptu blízkosti, předpokládá, že podobné datové body se nacházejí blízko sebe. KNN je “líný” algoritmus, což znamená, že nevyžaduje trénovací fázi a provádí předpovědi uložením celé trénovací sady a jejím využitím k určení třídy nebo hodnoty nových datových bodů. Algoritmus předpovídá výsledek pro testovací bod tak, že identifikuje ‘k’ trénovacích bodů nejbližších k testovacímu bodu a odvozuje výstup na základě těchto sousedů. Tato metoda je velmi intuitivní a napodobuje lidské strategie, které spoléhají na porovnávání nových dat se známými příklady.
KNN pracuje tak, že identifikuje ‘k’ nejbližších datových bodů k danému dotazovanému bodu a na základě těchto sousedů učiní předpověď.
Principy blízkosti a podobnosti, které jsou klíčové pro lidské vnímání, jsou také jádrem fungování KNN, neboť datové body, které jsou si ve vlastnostech blízko, jsou považovány za podobné a pravděpodobně mají i podobné výsledky.
Pro určení nejbližších sousedů využívá KNN různé metriky vzdálenosti, které jsou klíčové pro jeho výkon:
Parametr ‘k’ v KNN určuje, kolik sousedů se bere v úvahu. Jeho volba je zásadní:
KNN je díky své jednoduchosti a účinnosti používán v různých oblastech:
KNN lze implementovat pomocí knihoven jako scikit-learn v Pythonu. Zde je základní příklad použití KNN pro klasifikaci:
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
from sklearn.metrics import accuracy_score
# Načtení datové sady
iris = load_iris()
X, y = iris.data, iris.target
# Rozdělení na trénovací a testovací data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Inicializace KNN klasifikátoru s k=3
knn = KNeighborsClassifier(n_neighbors=3)
# Natrénování modelu
knn.fit(X_train, y_train)
# Předpovědi
y_pred = knn.predict(X_test)
# Vyhodnocení přesnosti
accuracy = accuracy_score(y_test, y_pred)
print(f"Přesnost: {accuracy:.2f}")
K-nejbližší sousedé (KNN) je základní algoritmus využívaný v různých oblastech, jako je vyhledávání v multimediálních datech, data mining a strojové učení, zejména v kontextu velkých datových souborů.
„Approximate k-NN Graph Construction: a Generic Online Approach“ od Wan-Lei Zhao a kol.:
Představuje efektivní metodu pro přibližné hledání k-nejbližších sousedů a konstrukci grafu. Článek ukazuje dynamické a použitelné řešení pro různé velikosti a dimenze dat s podporou online aktualizací, což u mnoha existujících metod není možné. Více zde.
„Parallel Nearest Neighbors in Low Dimensions with Batch Updates“ od Magdalen Dobson a Guy Blelloch:
Představuje paralelní algoritmy kombinující kd-strom a Mortonovo řazení do zd-stromové struktury, optimalizované pro data s nízkou dimenzionalitou. Autoři ukazují, že jejich přístup je rychlejší než stávající algoritmy a dosahuje významného zrychlení díky paralelnímu zpracování. Zd-strom jako první podporuje paralelní dávkové-dynamické aktualizace u struktur pro hledání k-nejbližších sousedů. Více zde.
„Twin Neural Network Improved k-Nearest Neighbor Regression“ od Sebastian J. Wetzel:
Zkoumá nový přístup k regresi k-nejbližších sousedů pomocí twin neural networks. Tato metoda se zaměřuje na predikci rozdílů mezi cílovými hodnotami regrese, což vede k lepším výsledkům ve srovnání s tradičními neuronovými sítěmi a standardní KNN regresí u malých a středně velkých datových sad. Více zde.
K-nejbližší sousedé (KNN) je neparametrický, řízený algoritmus strojového učení používaný pro klasifikaci a regresi. Předpovídá výsledky identifikací 'k' nejbližších datových bodů k dotazu a odvozuje výsledek na základě těchto sousedů.
KNN je jednoduchý na pochopení a implementaci, nevyžaduje žádnou explicitní trénovací fázi a lze jej použít jak pro klasifikaci, tak pro regresi.
KNN může být výpočetně náročný u velkých datových sad, je citlivý na odlehlé hodnoty a jeho výkon se může zhoršit u dat s vysokou dimenzionalitou kvůli tzv. prokletí dimenzionality.
Optimální hodnota 'k' se obvykle určuje empiricky pomocí křížové validace. Malé 'k' může vést k přeučení, zatímco velké 'k' k podučení; preferují se liché hodnoty, aby se předešlo remízám.
Mezi běžné metriky vzdálenosti patří Eukleidovská, Manhattan, Minkowski a Hammingova vzdálenost, volené v závislosti na typu dat a požadavcích úlohy.
Objevte, jak vám AI nástroje a chatboti FlowHunt mohou zlepšit analýzu dat a automatizovat pracovní postupy. Stavějte, testujte a nasazujte AI řešení snadno.
K-Means shlukování je oblíbený algoritmus neřízeného strojového učení pro rozdělení datových sad do předem definovaného počtu odlišných, nepřekrývajících se shl...
Regrese pomocí náhodného lesa je výkonný algoritmus strojového učení používaný pro prediktivní analytiku. Vytváří více rozhodovacích stromů a průměruje jejich v...
Gradient Boosting je výkonná ensemble metoda strojového učení pro regresi i klasifikaci. Modely buduje sekvenčně, obvykle s použitím rozhodovacích stromů, za úč...