题目
协方差矩阵是一种描述两个随机变量之间关系的矩阵,其计算公式为:
c
o
v
(
X
,
Y
)
=
1
n
−
1
×
∑
i
=
1
n
(
x
i
−
μ
x
)
(
y
i
−
μ
y
)
cov(X, Y) = \frac{1}{n-1} \times \sum_{i=1}^{n} (x_i - \mu_x)(y_i - \mu_y)
cov(X,Y)=n−11×i=1∑n(xi−μx)(yi−μy)
其中,
X
X
X 和
Y
Y
Y 是两个随机变量,
μ
x
\mu_x
μx 和
μ
y
\mu_y
μy 是
X
X
X 和
Y
Y
Y 的均值。
标准代码如下
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