PCA实现

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 简介 PCA(Principal Component Analysis),即主成分分析。PCA是一种研究数...
    研究僧小蓝哥阅读 13,448评论 0 15
  • 前言 PCA算法是数据降维中最常用的算法之一,利用PCA算法实现的数据降维能够有效减少算法运行时间和算法对硬件的消...
    此间不留白阅读 5,681评论 0 6
  • 本文先简要明了地介绍了特征向量和其与矩阵的关系,然后再以其为基础解释协方差矩阵和主成分分析法的基本概念,最后我们结...
    xiao_dong_zi阅读 4,217评论 0 10
  • 2019.1.17,这个令我兴奋的日子,见到xdd ,并和您挥手致敬,看着您伟岸的身躯,憨态可掬的笑容,萌萌哒,心...
    向前冲倾城阅读 143评论 0 2
  • 文/洛木 记忆中的老屋,斑驳的篱墙,青石板的巷弄,青砖青瓦古旧的老屋。印象中的老屋就像位饱经沧桑的老人,但却一直支...
    洛木阅读 416评论 0 0