Skip to main content

center_kernel_matrix

Function center_kernel_matrix 

Source
pub fn center_kernel_matrix(kernel_matrix: &[Vec<f64>]) -> Result<Vec<Vec<f64>>>
Expand description

Center a kernel matrix by removing the mean in feature space.

Centered kernel: K_c = (I - 1/n * 11^T) K (I - 1/n * 11^T)

This transformation is required for kernel PCA to ensure the data is centered in feature space.

§Arguments

  • kernel_matrix - Input kernel matrix (must be square)

§Returns

  • Centered kernel matrix

§Examples

use tensorlogic_sklears_kernels::kernel_transform::center_kernel_matrix;

let K = vec![
    vec![1.0, 0.8, 0.6],
    vec![0.8, 1.0, 0.7],
    vec![0.6, 0.7, 1.0],
];

let K_centered = center_kernel_matrix(&K).unwrap();

// Row and column means should be approximately zero
let row_mean: f64 = K_centered[0].iter().sum::<f64>() / 3.0;
assert!(row_mean.abs() < 1e-10);