PCA算法(python)

  • PCA算法(python)

import numpy as np

mat=[(2.5,0.5,2.2,1.9,3.1,2.3,2.0,1.0,1.5,1.1),(2.4,0.7,2.9,2.2,3.0,2.7,1.6,1.1,1.6,0.9)]
print ( type(mat) ) # 列表 list
print ( ‘mat:\n’,mat )

data=np.matrix(np.transpose(mat))
print ( type(data) ) # 矩阵 matrix
print (‘data:\n’,data)

data_mean=np.mean(mat,axis=0)
print(type(data_mean) ) # 矩阵 matrix
print(‘data_mean:\n’,data_mean)

data_adjust=mat-data_mean
print(type(data_adjust)) ## 数组
print(‘data_adjust:\n’,data_adjust)

print(type(np.transpose(data_adjust))) #数组
m=np.transpose(data_adjust)
n=np.mat(m)
print(type(n)) # 矩阵
#求协方差矩阵
convariance=np.transpose(n)*n/9
print (“协方差:\n”, convariance)

求协方差矩阵的特征值和特征向量

eigenvalues,eigenvectors=np.linalg.eig(convariance)
print(‘特征值:\n’,eigenvalues,‘特征向量:\n’,eigenvectors)

feature_vectors=np.transpose(eigenvectors)
print(type(feature_vectors))
print(‘特征向量2:\n’,feature_vectors)

final_data=feature_vectors*np.transpose(n)
print(‘final_data:\n’,final_data)

最后结果

PCA算法(python)