PerturbedLaplacian {invertiforms} | R Documentation |
Construct and use the Perturbed Laplacian
Description
Construct and use the Perturbed Laplacian
Usage
PerturbedLaplacian(A, tau = NULL)
## S4 method for signature 'PerturbedLaplacian,sparseMatrix'
transform(iform, A)
## S4 method for signature 'PerturbedLaplacian,sparseLRMatrix'
inverse_transform(iform, A)
Arguments
A |
A matrix to transform. |
tau |
Additive regularizer for row and column sums of |
iform |
An Invertiform object describing the transformation. |
Details
We define the perturbed Laplacian L^\tau(A)
of an
n \times n
graph adjacency matrix A
as
L^\tau(A)_{ij} = \frac{A_{ij} + \frac{\tau}{n}}{\sqrt{d^{out}_i + \tau}
\sqrt{d^{in}_j + \tau}}
where
d^{out}_i = \sum_{j=1}^n \|A_{ij} \|
and
d^{in}_j = \sum_{i=1}^n \|A_{ij} \|.
When A_{ij}
denotes the present of an edge from node i
to node j
, which is fairly standard notation,
d^{out}_i
denotes the (absolute) out-degree of node
i
and d^{in}_j
denotes the (absolute) in-degree
of node j
.
Note that this documentation renders more clearly at https://rohelab.github.io/invertiforms/.
Value
-
PerturbedLaplacian()
creates a PerturbedLaplacian object. -
transform()
returns the transformed matrix, typically as a Matrix. -
inverse_transform()
returns the inverse transformed matrix, typically as a Matrix.
Examples
library(igraph)
library(igraphdata)
data("karate", package = "igraphdata")
A <- get.adjacency(karate)
iform <- PerturbedLaplacian(A)
L <- transform(iform, A)
L
## Not run:
A_recovered <- inverse_transform(iform, L)
all.equal(A, A_recovered)
## End(Not run)