
Spectral clustering: eigenvectors of graph Laplacian
Source:R/geron_w4d_native.R
morie_geron_spectral_clustering.RdBuilds an RBF or symmetric k-NN affinity graph, forms the unnormalised Laplacian L = D - W, embeds via its n_clusters smallest eigenvectors, k-means (Lloyd/k-means++ on an LCG stream) in that embedding.
Usage
morie_geron_spectral_clustering(
X,
n_clusters = 2,
affinity = "rbf",
gamma = 1,
n_neighbors = 3,
seed = 0
)Value
list with labels, embedding, centers, eigenvalues, affinity_matrix, laplacian, n_components, estimate, n, method.
Examples
V <- c(1, 2, 3, 4, 5, 6, 7, 8)
morie_geron_spectral_clustering(V)
#> $labels
#> [1] 0 0 0 0 1 1 1 1
#>
#> $embedding
#> [,1] [,2]
#> [1,] 0.3535534 0.4924759
#> [2,] 0.3535534 0.4141134
#> [3,] 0.3535534 0.2766639
#> [4,] 0.3535534 0.0971324
#> [5,] 0.3535534 -0.0971324
#> [6,] 0.3535534 -0.2766639
#> [7,] 0.3535534 -0.4141134
#> [8,] 0.3535534 -0.4924759
#>
#> $centers
#> [,1] [,2]
#> [1,] 0.3535534 0.3200964
#> [2,] 0.3535534 -0.3200964
#>
#> $eigenvalues
#> [1] -2.498002e-16 6.666228e-02 2.496272e-01 5.069182e-01 7.903440e-01
#> [6] 1.058339e+00 1.277693e+00 1.421750e+00
#>
#> $affinity_matrix
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] 0.000000e+00 3.678794e-01 1.831564e-02 1.234098e-04 1.125352e-07
#> [2,] 3.678794e-01 0.000000e+00 3.678794e-01 1.831564e-02 1.234098e-04
#> [3,] 1.831564e-02 3.678794e-01 0.000000e+00 3.678794e-01 1.831564e-02
#> [4,] 1.234098e-04 1.831564e-02 3.678794e-01 0.000000e+00 3.678794e-01
#> [5,] 1.125352e-07 1.234098e-04 1.831564e-02 3.678794e-01 0.000000e+00
#> [6,] 1.388794e-11 1.125352e-07 1.234098e-04 1.831564e-02 3.678794e-01
#> [7,] 2.319523e-16 1.388794e-11 1.125352e-07 1.234098e-04 1.831564e-02
#> [8,] 5.242886e-22 2.319523e-16 1.388794e-11 1.125352e-07 1.234098e-04
#> [,6] [,7] [,8]
#> [1,] 1.388794e-11 2.319523e-16 5.242886e-22
#> [2,] 1.125352e-07 1.388794e-11 2.319523e-16
#> [3,] 1.234098e-04 1.125352e-07 1.388794e-11
#> [4,] 1.831564e-02 1.234098e-04 1.125352e-07
#> [5,] 3.678794e-01 1.831564e-02 1.234098e-04
#> [6,] 0.000000e+00 3.678794e-01 1.831564e-02
#> [7,] 3.678794e-01 0.000000e+00 3.678794e-01
#> [8,] 1.831564e-02 3.678794e-01 0.000000e+00
#>
#> $laplacian
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] 3.863186e-01 -3.678794e-01 -1.831564e-02 -1.234098e-04 -1.125352e-07
#> [2,] -3.678794e-01 7.541980e-01 -3.678794e-01 -1.831564e-02 -1.234098e-04
#> [3,] -1.831564e-02 -3.678794e-01 7.725137e-01 -3.678794e-01 -1.831564e-02
#> [4,] -1.234098e-04 -1.831564e-02 -3.678794e-01 7.726371e-01 -3.678794e-01
#> [5,] -1.125352e-07 -1.234098e-04 -1.831564e-02 -3.678794e-01 7.726371e-01
#> [6,] -1.388794e-11 -1.125352e-07 -1.234098e-04 -1.831564e-02 -3.678794e-01
#> [7,] -2.319523e-16 -1.388794e-11 -1.125352e-07 -1.234098e-04 -1.831564e-02
#> [8,] -5.242886e-22 -2.319523e-16 -1.388794e-11 -1.125352e-07 -1.234098e-04
#> [,6] [,7] [,8]
#> [1,] -1.388794e-11 -2.319523e-16 -5.242886e-22
#> [2,] -1.125352e-07 -1.388794e-11 -2.319523e-16
#> [3,] -1.234098e-04 -1.125352e-07 -1.388794e-11
#> [4,] -1.831564e-02 -1.234098e-04 -1.125352e-07
#> [5,] -3.678794e-01 -1.831564e-02 -1.234098e-04
#> [6,] 7.725137e-01 -3.678794e-01 -1.831564e-02
#> [7,] -3.678794e-01 7.541980e-01 -3.678794e-01
#> [8,] -1.831564e-02 -3.678794e-01 3.863186e-01
#>
#> $n_components
#> [1] 1
#>
#> $estimate
#> [1] 0.1829649
#>
#> $n
#> [1] 8
#>
#> $method
#> [1] "Unnormalised Laplacian spectral clustering (rbf affinity) + Lloyd k-means in the embedding"
#>