import numpy as np
class PCA():
def __init__(self):
self.k = 2
def mean_zero(self, data):
mean = np.mean(data, axis=0)
new_data = data - mean
return new_data, mean
def pca(self, data, mean):
cov = np.cov(data, rowvar=0)
eigvals, eigvectors = np.linalg.eig(np.mat(cov))
sort = np.argsort(eigvals)
eigval = sort[-1:-(k + 1):-1]
eigvector = eigvectors[:, eigval]
low_dimension_data = data * eigvector
rec_data = (low_dimension_data * eigvector.T) + mean
return low_dimension_data, rec_data
if __name__ == '__main__':
pca = PCA()
PCA实现
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 本文先简要明了地介绍了特征向量和其与矩阵的关系,然后再以其为基础解释协方差矩阵和主成分分析法的基本概念,最后我们结...