computeVPB {TDAvec} | R Documentation |
A Vector Summary of the Persistence Block
Description
For a given persistence diagram ,
computeVPB()
vectorizes the persistence block
where and
with
. Points of
with infinite persistence value are ignored
Usage
computeVPB(D, homDim, xSeq, ySeq, tau)
Arguments
D |
matrix with three columns containing the dimension, birth and persistence values respectively |
homDim |
homological dimension (0 for |
xSeq |
numeric vector of increasing x (birth) values used for vectorization |
ySeq |
numeric vector of increasing y (persistence) values used for vectorization |
tau |
parameter (between 0 and 1) controlling block size. By default, |
Value
A numeric vector whose elements are the weighted averages of the persistence block computed over each cell of the two-dimensional grid constructred from xSeq
= and
ySeq
=:
where ,
and
Author(s)
Umar Islambekov, Aleksei Luchinsky
References
1. Chan, K. C., Islambekov, U., Luchinsky, A., & Sanders, R. (2022). A computationally efficient framework for vector representation of persistence diagrams. Journal of Machine Learning Research 23, 1-33.
Examples
N <- 100
set.seed(123)
# sample N points uniformly from unit circle and add Gaussian noise
X <- TDA::circleUnif(N,r=1) + rnorm(2*N,mean = 0,sd = 0.2)
# compute a persistence diagram using the Rips filtration built on top of X
D <- TDA::ripsDiag(X,maxdimension = 1,maxscale = 2)$diagram
# switch from the birth-death to the birth-persistence coordinates
D[,3] <- D[,3] - D[,2]
colnames(D)[3] <- "Persistence"
# construct one-dimensional grid of scale values
ySeqH0 <- unique(quantile(D[D[,1]==0,3],probs = seq(0,1,by=0.2)))
tau <- 0.3 # parameter in [0,1] which controls the size of blocks around each point of the diagram
# compute VPB for homological dimension H_0
computeVPB(D,homDim = 0,xSeq=NA,ySeqH0,tau)
xSeqH1 <- unique(quantile(D[D[,1]==1,2],probs = seq(0,1,by=0.2)))
ySeqH1 <- unique(quantile(D[D[,1]==1,3],probs = seq(0,1,by=0.2)))
# compute VPB for homological dimension H_1
computeVPB(D,homDim = 1,xSeqH1,ySeqH1,tau)