Skip to contents

k-means inertia (Geron Ch 9, morie.fn grkmo)

Usage

morie_geron_kmeans_objective(X, centroids, labels)

Arguments

X

(m, n) data.

centroids

(k, n) centroids.

labels

0-based assignments.

Value

List with inertia, per_cluster_inertia, cluster_sizes, distances, centroids_are_means, empty_clusters (0-based).

Examples

set.seed(3)
X <- rbind(matrix(rnorm(20, 0), 10, 2), matrix(rnorm(20, 4), 10, 2))
morie_geron_kmeans_objective(X, centroids = rbind(c(0, 0), c(4, 4)),
                             labels = rep(c(0L, 1L), each = 10))
#> $inertia
#> [1] 27.19263
#> 
#> $per_cluster_inertia
#> [1] 12.18691 15.00572
#> 
#> $cluster_sizes
#> [1] 10 10
#> 
#> $distances
#>  [1] 1.2165589 1.1684292 0.7616698 1.1795088 0.2478887 0.3091277 0.9568376
#>  [8] 1.2911379 1.7275871 1.2830231 1.0704057 1.2702140 0.7556947 1.8219698
#> [15] 0.5989090 1.0232013 1.7429744 1.0127898 0.9819328 1.3864815
#> 
#> $centroids_are_means
#> [1] FALSE
#> 
#> $empty_clusters
#> integer(0)
#> 
#> $estimate
#> [1] 27.19263
#> 
#> $n
#> [1] 20
#>