题解|计算相关矩阵
计算相关矩阵
https://www.nowcoder.com/practice/c77d4235776146329eda2ebfc9f8a2a1?tpId=377&tags=&title=&difficulty=0&judgeStatus=0&rp=0&sourceUrl=%2Fexam%2Foj
相关矩阵(Correlation Matrix)是一种常用的矩阵,其计算公式为:
其中,和
是两个向量。
标准代码如下
def calculate_correlation_matrix(X, Y=None):
# Helper function to calculate standard deviation
def calculate_std_dev(A):
return np.sqrt(np.mean((A - A.mean(0))**2, axis=0))
if Y is None:
Y = X
n_samples = np.shape(X)[0]
# Calculate the covariance matrix
covariance = (1 / n_samples) * (X - X.mean(0)).T.dot(Y - Y.mean(0))
# Calculate the standard deviations
std_dev_X = np.expand_dims(calculate_std_dev(X), 1)
std_dev_y = np.expand_dims(calculate_std_dev(Y), 1)
# Calculate the correlation matrix
correlation_matrix = np.divide(covariance, std_dev_X.dot(std_dev_y.T))
return np.array(correlation_matrix, dtype=float)
