大矩阵的协方差

时间:2019-01-22 13:02:26

标签: python matrix bigdata pca covariance

我有一个大的矩阵(70000x784),我想计算其协方差矩阵(70000x70000)。我尝试使用numpy.cov(),但由于有太多观察结果而出现内存错误(是的,我在62位计算机上运行的是62位版本的Python)。

我尝试使用嵌套的for循环(确实很慢)来计算协方差矩阵,但是我知道这是不正确的,因为所得的协方差矩阵不是对称的(X [i,j]!= X [j,i ])。

当然,必须有一种更简便快捷的方法吗?

这是我的尝试,其中尺寸为70000x784的输入矩阵的X_scaled是:

Xt = np.transpose(X_scaled)
aveRows = np.mean(Xt,axis=0)
for i, val in enumerate(X[:,0]):
    for j, val in enumerate(X[:,0]):
        cov_matrix[i,j] = np.mean((X_scaled[i,:]-aveRows[i])*(X_scaled[j,:]-aveRows[j]),axis=0)
    #increase cov_matrix by one row and one column:
        cov_matrix = np.lib.pad(cov_matrix, ((0,1),(0,1)), 'constant', constant_values=(0)) 
        print(cov_matrix.shape)

0 个答案:

没有答案
相关问题