k-means
En clustering-algoritme, der deler et datasæt i k grupper ved at minimere den samlede afstand mellem punkterne og deres nærmeste gruppecentrum.
Kort fortalt
En metode til at opdele data i et bestemt antal grupper, så punkter inden for samme gruppe ligner hinanden mest muligt.
- Kategori
- teknik
- Niveau
- begynder
- Udtale
- /ˈkeɪ ˈmiːnz/
Betydninger
2- 1
Den oprindelige k-means-algoritme, også kendt som Lloyd's algoritme, der iterativt tildeler punkter til nærmeste centroid og derefter opdaterer centroiderne som gennemsnittet af deres tildelte punkter.
- Vi anvendte k-means til at segmentere kunderne i tre grupper baseret på deres købsmønstre.
- K-means-algoritmen konvergerer typisk hurtigt, men kan ende i et lokalt optimum.
- 2
Betegnelsen for den klasse af clustering-metoder, der minimerer variansen inden for clusters, herunder varianter som k-means++ (forbedret initialisering) og mini-batch k-means.
- Dataene var for store til almindelig k-means, så vi brugte mini-batch k-means i stedet.
Hvornår bruges det
K-means bruges ofte til uovervåget læring, f.eks. kundesegmentering, billedkomprimering eller mønstergenkendelse, når man vil finde naturlige grupperinger i data uden forudgående etiketter.
Formel
J = ∑_{i=1}^{k} ∑_{x∈S_i} ||x - μ_i||^2 (minimering af summen af kvadrerede afstande til nærmeste centroid)Kodeeksempel
from sklearn.cluster import KMeans
import numpy as np
# Generer eksempeldata
X = np.random.rand(100, 2)
# Træn k-means med k=3
kmeans = KMeans(n_clusters=3, random_state=0)
kmeans.fit(X)
# Labels og centroider
labels = kmeans.labels_
centroids = kmeans.cluster_centers_Eksempel på brug af k-means fra scikit-learn: opret en KMeans-forekomst, fit på data, og hent labels og centroider.
Oprindelse
K'et står for antallet af grupper (clusters), mens 'means' henviser til, at hvert gruppecentrum er gennemsnittet (middelværdien) af punkterne i gruppen.
Afledte ord
2Kilder
3- MacQueen, J. (1967). Some methods for classification and analysis of multivariate observations.
- Lloyd, S. (1982). Least squares quantization in PCM. IEEE Transactions on Information Theory, 28(2), 129-137.
- scikit-learn dokumentation: KMeans