协方差矩阵是一种描述两个随机变量之间关系的矩阵,其计算公式为:

其中, 是两个随机变量, 的均值。

标准代码如下

def calculate_covariance_matrix(vectors):
    n_features = len(vectors)
    n_observations = len(vectors[0])
    covariance_matrix = [[0 for _ in range(n_features)] for _ in range(n_features)]

    means = [sum(feature) / n_observations for feature in vectors]

    for i in range(n_features):
        for j in range(i, n_features):
            covariance = sum((vectors[i][k] - means[i]) * (vectors[j][k] - means[j]) for k in range(n_observations)) / (n_observations - 1)
            covariance_matrix[i][j] = covariance_matrix[j][i] = covariance

    return covariance_matrix

也可以使用numpy库的cov方法,不过精度上会有所不同,需要读者自行调整。