Using either adjacency or Laplacian spectral embedding, embed a graph into a lower dimensional space.
ase(g, verbose = FALSE, adjust.diag = FALSE, laplacian = FALSE,
normalize = FALSE, scale.by.values = FALSE, vectors = "u", d = 2)
lse(g,...)
hypergraph.spectrum(h, k=3)A graph (g) or hypergraph (h).
logical. Control output to terminal.
logical. For adjacency embedding, whether to add degree/(n-1) to the
diagonal of the adjacency matrix.
logical. Use the Laplacian rather than the adjacency matrix.
logical. Whether to normalize by D^1/2.
logical. Whether to scale the eigen or singular vectors by the square root of the eigen or singular values.
character. "u", "v" or "uv" indicating which vectors to provide for the embedding.
dimension of the embedding.
arguments passed to ase.
ase returns a matrix of points, with rows corresponding to vertices
and columns to the embedding. There will be either d, or 2*d columns,
depending on the value of the variable vectors. For "u" or "v" the
dimension is d, for "uv" the dimension is 2*d.
hypergraph.spectrum returns the singular value decomposition using the top
k singular vectors and values.
The ase is for graphs, and has the most control over the embedding,
as indicated by the arguments. hypergraph.spectrum computes the svd of
the incidence matrix for the hypergraph h.
lse is Laplacian spectral embedding, and is just a call to ase
with laplacian=TRUE and adjust.diag=FALSE.
For small hypergraphs (order or size < 3) the base svd function is used and k
is ignored.
Congyuan Yang, Carey E. Priebe, Youngser Park, David J. Marchette, "Simultaneous Dimensionality and Complexity Model Selection for Spectral Graph Clustering," Journal of Computational and Graphical Statistics, accepted for publication, 2020. arXiv:1904.02926
A. Athreya, V. Lyzinski, D. J. Marchette, C. E. Priebe, D. L. Sussman, and M. Tang, "A limit theorem for scaled eigenvectors of random dot product graphs," Sankhya, vol. 78-A, no. 1, pp 1-18, February 2016.
# NOT RUN {
g <- sample_gnp(10,.1)
ase(g)
# }
Run the code above in your browser using DataLab