美文网首页
利用Matlab中的pca函数进行数据降维

利用Matlab中的pca函数进行数据降维

作者: 姚远_HIT | 来源:发表于2021-05-20 11:54 被阅读0次

前言

Matlab中关于pca函数的说明写得并不直观,很多人最直接的目的只是想得到pca降维后的结果,但是根据官方解释文档,很难一下看出哪个输出参数才是最终降维后的特征。因此,本文记录如何使用Matlab中自带的pca函数对数据进行降维。

PS. 本文并不详解pca的原理,仅仅记录如何使用Matlab中的pca函数。

使用

[coeff, score] = pca(X)

输入参数:X是n x d的样本矩阵,其中n表示样本数,d表示特征纬度。

输出参数:
(1)coeff是主成分分量,即样本协方差矩阵的特征向量。
(2)score是主成分,即样本X在低维空间的投影,也就是我们想要得到的降维后的数据。

注意:score的维度和原始样本X的维度一致,若需要降到k维,则只需要取score的前k列即可。

res = score(:, 1:k);

利用coeff得到score

此外,也可以根据coeff计算得到score,以下是具体步骤:
(1)计算样本X沿特征纬度的均值向量(因为X的每一列代表一个特征,因此此时是按照行计算均值):

M = mean(X, 1)

(2) 利用去中心后的X乘上coeff便可以得到score:

test = (X-M)*coeff

测试代码

X = rand(100,50);
[coeff, score] = pca(X);
M = mean(X,1);
test = (X-M)*coeff;
res = sum(sum(test-score));

运行后便可以看到res的结果非常非常小,此时便说明test和score非常接近。

参考文献

[1] PCA原理分析和Matlab实现方法(三)
[2] Matlab: princomp() 主成分分析

相关文章

  • 利用Matlab中的pca函数进行数据降维

    前言 Matlab中关于pca函数的说明写得并不直观,很多人最直接的目的只是想得到pca降维后的结果,但是根据官方...

  • PCA应用--二

    参考:PCA降维算法总结以及matlab实现PCA(个人的一点理解) 一、大致流程 PCA的应用范围:数据压缩或者...

  • Iris数据集使用PCA/LDA/KPCA降维的结果比较

    一、实验描述 分别使用PCA、LDA和KPCA方法对Iris数据集进行降维,利用可视化工具比较降维的效果。 二、分...

  • 机器学习:09. 降维算法

    降维(PCA) PCA能够将原始数据集中重要的数据进行聚集。降维是减少特征的数量,又保留大部分有效信息——将那些带...

  • PCA算法实现

    前言 PCA算法是数据降维中最常用的算法之一,利用PCA算法实现的数据降维能够有效减少算法运行时间和算法对硬件的消...

  • 2018-07-12课程笔记(2):DIMENTION REDU

    【关键词:数据降维,PCA】 PCA(Principal Components Analytics)重要数据的定位...

  • PCA算法推导

    一、PCA降维 1.PCA简介 PCA(主成分分析)是一种数据降维的方法,即用较少特征地数据表达较多特征地数据(数...

  • PCA降维

    当数据特征较多时,基本有两种方法:1 PCA降维2 Feature Selection(特征选择) PCA降维 <...

  • 降维——PCA、LDA

    一、 PCA PCA 属于一种线性、非监督、全局的降维算法,旨在找到数据的主成分,并利用这些主成分表征原始数据,从...

  • Autoencoder降维可视化

    关于高维度数据降维,以前都是使用PCA线性降维或者直接使用pandas的corr函数来找到相关性,但是这种方式...

网友评论

      本文标题:利用Matlab中的pca函数进行数据降维

      本文链接:https://www.haomeiwen.com/subject/xfbvjltx.html