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. 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. 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

2

Kilder

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