Skip to content

auto_math_kernel_density_and_coherence_3

github-actions[bot] edited this page Nov 14, 2025 · 1 revision

Snippet from Math-Kernel-Density-and-Coherence.md

from sklearn.decomposition import PCA

def fit_kde_with_pca(traces: np.ndarray, M: np.ndarray,
                     n_components: int = 3) -> tuple:
    """
    Fit KDE after PCA dimensionality reduction.
    
    Args:
        traces: High-dimensional data (n x d).
        M: Metric matrix (d x d).
        n_components: Target dimensionality.
    
    Returns:
        Tuple of (estimator, pca_transformer).
    """
    estimator = CoherenceEstimator()
    Z = estimator._whiten(traces, M)
    
    pca = PCA(n_components=n_components)
    Z_reduced = pca.fit_transform(Z)
    
    estimator.kde = gaussian_kde(Z_reduced.T)
    estimator.pca = pca
    
    variance_explained = pca.explained_variance_ratio_.sum()
    print(f"Variance retained: {variance_explained:.2%}")
    return estimator, pca

# Example
traces_high_dim = np.random.randn(100, 20)
M_high_dim = np.eye(20)
est, pca = fit_kde_with_pca(traces_high_dim, M_high_dim, n_components=5)

Clone this wiki locally