K-Means-klustring
K-Means-klustring är en populär osuperviserad maskininlärningsalgoritm för att dela upp datamängder i ett fördefinierat antal distinkta, icke-överlappande klust...
K-närmsta grannar (KNN) är en enkel, icke-parametrisk algoritm för klassificering och regression, som förutsäger utfall baserat på närheten mellan datapunkter.
Algoritmen k-närmsta grannar (KNN) är en icke-parametrisk, övervakad inlärningsalgoritm som används för klassificerings- och regressionsuppgifter inom maskininlärning. Den bygger på närhetsprincipen och antar att liknande datapunkter ligger nära varandra. KNN är en lat inlärningsalgoritm, vilket innebär att den inte kräver någon träningsfas utan gör förutsägelser genom att lagra hela träningsdatamängden och använda den för att avgöra klassen eller värdet på nya datapunkter. Algoritmen förutsäger utfall för en testdatapunkt genom att identifiera de ‘k’ träningsdatapunkter som ligger närmast testdatan och drar slutsatsen baserat på dessa grannar. Metoden är mycket intuitiv och efterliknar mänskliga perceptionsstrategier som bygger på att jämföra ny data med kända exempel.
KNN fungerar genom att identifiera de ‘k’ närmaste datapunkterna till en given frågepunkt och använder dessa grannar för att göra en förutsägelse.
Närhets- och likhetsprinciperna, som är centrala för mänsklig perception, är också grundläggande för hur KNN fungerar, eftersom datapunkter som ligger nära varandra i egenskapsrymden antas vara mer lika och därmed sannolikt har liknande utfall.
För att bestämma de närmaste grannarna använder KNN olika avståndsmått, vilka är avgörande för dess prestanda:
Parametern ‘k’ i KNN står för antalet grannar att ta hänsyn till. Det är avgörande att välja rätt ‘k’:
KNN används inom många områden tack vare sin enkelhet och effektivitet:
KNN kan implementeras med bibliotek som scikit-learn i Python. Här är ett grundläggande exempel på användning av KNN för klassificering:
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
# Ladda dataset
iris = load_iris()
X, y = iris.data, iris.target
# Dela upp data i tränings- och testmängd
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Initiera KNN-klassificerare med k=3
knn = KNeighborsClassifier(n_neighbors=3)
# Träna modellen
knn.fit(X_train, y_train)
# Gör förutsägelser
y_pred = knn.predict(X_test)
# Utvärdera noggrannhet
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy:.2f}")
K-närmsta grannar (KNN) är en grundläggande algoritm som används inom flera områden såsom multimedieinformationsåtervinning, datautvinning och maskininlärning, särskilt i samband med stora datamängder.
“Approximate k-NN Graph Construction: a Generic Online Approach” av Wan-Lei Zhao m.fl.:
Presenterar en effektiv metod för både approximativ k-närmsta grannar-sökning och grafkonstruktion. Artikeln visar en dynamisk och genomförbar lösning för att hantera olika dataskalor och dimensioner, med stöd för onlineuppdateringar som inte är möjliga i många befintliga metoder. Läs mer.
“Parallel Nearest Neighbors in Low Dimensions with Batch Updates” av Magdalen Dobson och Guy Blelloch:
Introducerar parallella algoritmer som kombinerar kd-träd och Mortonordning till en zd-trädstruktur, optimerad för lågdimensionell data. Författarna visar att deras metod är snabbare än existerande algoritmer och uppnår betydande hastighetsökningar med parallell bearbetning. Zd-trädet stödjer unikt parallella batch-dynamiska uppdateringar, vilket är först inom k-närmsta grannar-datastrukturer. Läs mer.
“Twin Neural Network Improved k-Nearest Neighbor Regression” av Sebastian J. Wetzel:
Utforskar ett nytt tillvägagångssätt för k-närmsta grannar-regression med hjälp av tvillingneuronätverk. Metoden fokuserar på att förutsäga skillnader mellan regressionsmål, vilket ger förbättrad prestanda jämfört med traditionella neuronätverk och k-närmsta grannar-regressionsmetoder på små till medelstora datamängder. Läs mer.
K-närmsta grannar (KNN) är en icke-parametrisk, övervakad inlärningsalgoritm som används för klassificering och regression. Den förutsäger utfall genom att identifiera de 'k' närmaste datapunkterna till en fråga och drar slutsatsen baserat på dessa grannar.
KNN är enkel att förstå och implementera, kräver ingen explicit träningsfas och kan användas för både klassificerings- och regressionsuppgifter.
KNN kan vara beräkningsintensiv med stora datamängder, är känslig för avvikare och dess prestanda kan försämras i högdimensionell data på grund av dimensionsförbannelsen.
Det optimala värdet på 'k' bestäms vanligtvis empiriskt med korsvalidering. Ett litet 'k' kan orsaka överanpassning, medan ett stort 'k' kan leda till underanpassning; udda värden föredras för att undvika oavgjort.
Vanliga avståndsmått inkluderar Euklidiskt, Manhattan, Minkowski och Hamming-avstånd, valda utifrån datatyp och problemkrav.
Upptäck hur FlowHunt’s AI-verktyg och chattbottar kan förbättra din dataanalys och automatisera arbetsflöden. Bygg, testa och driftsätt AI-lösningar enkelt.
K-Means-klustring är en populär osuperviserad maskininlärningsalgoritm för att dela upp datamängder i ett fördefinierat antal distinkta, icke-överlappande klust...
Top-k noggrannhet är ett utvärderingsmått inom maskininlärning som bedömer om den sanna klassen finns bland de k högst predicerade klasserna, vilket ger ett mer...
Gradientnedstigning är en grundläggande optimeringsalgoritm som används flitigt inom maskininlärning och djupinlärning för att minimera kostnads- eller förlustf...