当前位置:   article > 正文

主成分分析pca c++代码实现(详细注释)_pca c++

pca c++

参考代码:

PCA算法的原理以及c++实现(Eigen库实现)源码
(我的代码基本都来自与这个,只不过改了改输入输出和加了点注释)

参考知识点:

1、主成分分析(PCA)原理详解
2、从零开始实现主成分分析(PCA)算法
3、(还有很多,基本上看了CSDN的所有pca讲解,就不继续列出了。。。)

pca.cpp的步骤:

1、对所有样本进行中心化(去均值操作);
2、计算样本的协方差矩阵;
3、对协方差矩阵做特征值分解;
4、取最大的特征值所对应的特征向量;
5、将原样本矩阵与投影矩阵相乘: X*V即为降维后数据集X’ ;
6、输出:降维后的数据集X’
7、还原降维压缩的矩阵:Y = X’ * V^T
8、输出还原矩阵Y

代码和数据文件的下载:

数据集:input.txt pca的数据集
源代码:c++ 实现 pca算法 详细注释
Eigen库:c++ 的eigen库:eigen-3.3.7

代码的使用:

  • 1、在vs21019上运行(不知道其他的IDE咋弄)
  • 2、安装Eigen库并添加路径
    pca.cpp的文件属性 ——C\C++ ——常规 附加包含目录,添加解压的Eigen库目录路径
    在这里插入图片描述
  • 3、把数据集文件 input.txt 放到代码pca.cpp所在的文件夹下
  • 4、运行代码

提示:

1、你也可以自己输出各种中间结果
2、如果想把数据压缩成你想要的维度,直接修改k值
在这里插入图片描述

结果:

控制台:
在这里插入图片描述
文本:
在这里插入图片描述
在这里插入图片描述

最后:

1、如果有什么安装使用的问题欢迎提问。
2、我在遇到求特征值之前自己写的求数据矩阵的协方差矩阵代码:c++ 求输入的矩阵的协方差矩阵
(如果不会求协方差矩阵的推荐看一看)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/222028
推荐阅读
相关标签
  

闽ICP备14008679号