Skip to contents

Double-centred Gram matrix, top-d eigenpairs scaled by sqrt(lambda). Eigenvector SIGNS are not pinned in the Python (numpy eigh's LAPACK convention), so the parity tests compare eigenvalues, the kernel and |projection|.

Usage

morie_geron_kernel_pca_rbf(X, gamma = 1, d = 2)

Arguments

X

(m, n) data.

gamma

Positive RBF width parameter.

d

Components in [1, m].

Value

List with projected, eigenvalues, eigenvectors, explained_variance_ratio, kernel, kernel_centered.

Examples

M <- matrix(c(1, 2, 3, 4, 5, 6), nrow = 2)
morie_geron_kernel_pca_rbf(M)
#> $projected
#>            [,1] [,2]
#> [1,] -0.6892797    0
#> [2,]  0.6892797    0
#> 
#> $eigenvalues
#> [1] 0.9502129 0.0000000
#> 
#> $eigenvectors
#>            [,1]       [,2]
#> [1,] -0.7071068 -0.7071068
#> [2,]  0.7071068 -0.7071068
#> 
#> $explained_variance_ratio
#> [1] 1 0
#> 
#> $kernel
#>            1          2
#> 1 1.00000000 0.04978707
#> 2 0.04978707 1.00000000
#> 
#> $kernel_centered
#>            1          2
#> 1  0.4751065 -0.4751065
#> 2 -0.4751065  0.4751065
#> 
#> $gamma
#> [1] 1
#> 
#> $estimate
#>            [,1] [,2]
#> [1,] -0.6892797    0
#> [2,]  0.6892797    0
#> 
#> $n
#> [1] 2
#>