# riem.kpca: Kernel Principal Component Analysis In Riemann: Learning with Data on Riemannian Manifolds

## Description

Although the method of Kernel Principal Component Analysis (KPCA) was originally developed to visualize non-linearly distributed data in Euclidean space, we graft this to the case for manifolds where extrinsic geometry is explicitly available. The algorithm uses Gaussian kernel with

K(X_i, X_j) = \exp≤ft( - \frac{d^2 (X_i, X_j)}{2 σ^2} \right )

where σ is a bandwidth parameter and d(\cdot, \cdot) is an extrinsic distance defined on a specific manifold.

## Usage

 1 riem.kpca(riemobj, ndim = 2, sigma = 1) 

## Arguments

 riemobj a S3 "riemdata" class for N manifold-valued data. ndim an integer-valued target dimension (default: 2). sigma the bandwidth parameter (default: 1).

## Value

a named list containing

embed

an (N\times ndim) matrix whose rows are embedded observations.

vars

a length-N vector of eigenvalues from kernelized covariance matrix.

## References

\insertRef

scholkopf_kernel_1997Riemann

## Examples

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #------------------------------------------------------------------- # Example for Gorilla Skull Data : 'gorilla' #------------------------------------------------------------------- ## PREPARE THE DATA # Aggregate two classes into one set data(gorilla) mygorilla = array(0,c(8,2,59)) for (i in 1:29){ mygorilla[,,i] = gorilla$male[,,i] } for (i in 30:59){ mygorilla[,,i] = gorilla$female[,,i-29] } gor.riem = wrap.landmark(mygorilla) gor.labs = c(rep("red",29), rep("blue",30)) ## APPLY KPCA WITH DIFFERENT KERNEL BANDWIDTHS kpca1 = riem.kpca(gor.riem, sigma=0.01) kpca2 = riem.kpca(gor.riem, sigma=1) kpca3 = riem.kpca(gor.riem, sigma=100) ## VISUALIZE opar <- par(no.readonly=TRUE) par(mfrow=c(1,3), pty="s") plot(kpca1$embed, pch=19, col=gor.labs, main="sigma=1/100") plot(kpca2$embed, pch=19, col=gor.labs, main="sigma=1") plot(kpca3\$embed, pch=19, col=gor.labs, main="sigma=100") par(opar) 

Riemann documentation built on June 20, 2021, 5:07 p.m.