PCA降维 C++实现

本文介绍了使用C++实现PCA降维的过程,包括特征矩阵归一化、计算协方差矩阵、求解特征值和特征向量,并利用Eigen库进行操作。主要步骤涉及归一化、协方差矩阵计算及特征向量选择。
摘要由CSDN通过智能技术生成

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

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

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

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

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

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

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

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


//PCA_Demension.h文件
#pragma once
#include<iostream>
#include<vector>
#include<map>
#include<Eigen/Dense>
using namespace Eigen;
using Eigen::MatrixXd;
using namespace std;
//pca降维代码的实现 2017.02.16 
//copyright: PH-SCUT
class PCA_Demension
{
public:
	PCA_Demension(void);
	~PCA_Demension(void);
	int covariance(vector<double> x, double x_mean, vector<double> y, double y_mean, double & result);
	int PCA_demension(vector<vector<double> > Feature_Data, int k, vector<vector<double> > & PCA_Features,vector<vector<double> > & Final_Data);
};

#include "PCA_Demension.h"


PCA_Demension::PCA_Demension(void)
{
}


PCA_Demension::~PCA_Demension(void)
{
}

/*
函数名称:covariance
函数功能:协方差求取
输入:ve
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值