PCA编程实现小结

分析思路:

先导入pandas、numpy包;

定义一个myPCA,传入data及n_components参数,并设置components为1000000维;

①先求每个属性的平均值,即按列求平均值,并将结果赋予mean_vals;

②将每列数据减去该列平均数,得到新的data,并赋予mid;

③求mid的协方差矩阵,将结果赋予cov_mat;

④引入scipy的linalg包;

⑤通过linalg.eig求协方差矩阵cov_mat的特征值和特征向量,并将结果赋予eig_vals,eig_vects;

⑥求最大特征值。先将特征值通过np.argsort进行排序,然后取最大特征值,并将结果赋予eig_val_index;

⑦求最大特征值特征向量,将结果赋给eig_vects;

⑧用mid乘以特征向量eig_vects,得到转换后的矩阵low_dim_mat;

⑨返回降维后的矩阵和特征值。

代码实现如下:

返回结果为:

(array([[-0.82797019],

       [ 1.77758033],

       [-0.99219749],

       [-0.27421042],

       [-1.67580142],

       [-0.9129491 ],

       [ 0.09910944],

       [ 1.14457216],

       [ 0.43804614],

       [ 1.22382056]]), array([0.0490834 +0.j, 1.28402771+0.j]))

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本文先简要明了地介绍了特征向量和其与矩阵的关系,然后再以其为基础解释协方差矩阵和主成分分析法的基本概念,最后我们结...
    xiao_dong_zi阅读 9,804评论 0 10
  • 矩阵RowMatrix是最基础的分布式矩阵类型。每行是一个本地向量,行索引无实际意义(即无法直接使用)。数据存储在...
    夜迷走阅读 8,218评论 0 1
  • 愚人节不该愚的就是你最好的朋友而更不应该愚的就是信任。。 怎么样可以愚出有价值的愚人节玩笑呢? 我们给您带来了无伤...
    认真的草阅读 5,306评论 0 0
  • 应家长的要求大学要在家附近选,还记得当时我的老师都想给家长打电话觉得家长太古板,后来还是听家长的话了,因...
    哏都的me阅读 1,553评论 1 1
  • 天气晴朗,云南昆明滇池边,我和我的老公四哥池边发呆,骑自行车,品茶,闲聊…… 想起过往 倍感珍惜眼前的一切,我爱的...
    淑琴书社阅读 1,837评论 0 0

友情链接更多精彩内容