Python中计算非平稳核协方差矩阵的快速方法

数据挖掘 机器学习 Python 统计数据 麻木的 高斯
2022-02-09 11:29:04

假设我有对称正定协方差函数k:R×RR这是非平稳的(即k(x,y)g(|xy|)对于任何功能g)。给定设计点,Python中是否有快速方法(x1,,xn) 计算其协方差矩阵(k(xi,xj))i,j?

如果协方差函数是平稳的,那么我们可以使用 numpy 的矩阵运算一次计算整个矩阵,并避免缓慢的 Python 循环——例如在this中。

目前我的实现是: dim = len(X) kern_mat = np.zeros((dim,dim)) for i in range(dim): for j in range(i+1): kern_mat[i,j] = kern(X[i],X[j]) kern_mat[j,i] = kern_mat[i,j] 任何有关加速或其他方面的帮助都将不胜感激!

1个回答

我仍然会使用numpy.apply_along_axis应用 numpy 的 covaranice 函数

import numpy as np

x = np.array([[0, 2], [1, 1], [2, 0]]).T
np.apply_along_axis(func1d=np.cov, arr=x, axis=0)