当前位置:   article > 正文

PCA降维 C++实现_降维pca c++

降维pca c++

这是本人在学习PCA降维的过程中,根据算法写成的C++代码。

PCA是模式识别中常见的特征降维的算法,其大体步骤可以分为以下几个部分:

(1)原始特征矩阵归一化处理

(2)求取归一化处理后特征矩阵的协方差矩阵

(3)计算协方差矩阵的特征值及其对应的特征向量

(4)按照特征值从大到小排列特征向量

(5)从大到小,挑选出前K个特征值对应的特征向量组成降维后的特征向量,即为所求。

注:在求取特征值和特征向量的过程中,借助了C++ Eigen库,需要自行安装和配置该库。


  1. //PCA_Demension.h文件
  2. #pragma once
  3. #include<iostream>
  4. #include<vector>
  5. #include<map>
  6. #include<Eigen/Dense>
  7. using namespace Eigen;
  8. using Eigen::MatrixXd;
  9. using namespace std;
  10. //pca降维代码的实现 2017.02.16
  11. //copyright: PH-SCUT
  12. class PCA_Demension
  13. {
  14. public:
  15. PCA_Demension(void);
  16. ~PCA_Demension(void);
  17. int covariance(vector<double> x, double x_mean, vector<double> y, double y_mean, double & result);
  18. int PCA_demension(vector<vector<double> > Feature_Data, int k, vector<vector<double> > & PCA_Features,vector<vector<double> > & Final_Data);
  19. };
  1. #include "PCA_Demension.h"
  2. PCA_Demension::PCA_Demension(void)
  3. {
  4. }
  5. PCA_Demension::~PCA_Demension(void)
  6. {
  7. }
  8. /*
  9. 函数名称:covariance
  10. 函数功能:协方差求取
  11. 输入:ve
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/222016
推荐阅读
相关标签
  

闽ICP备14008679号