pca

PCA简介

PCA是Principal Component Analysis(主成分分析)的缩写,此方法的目标是找到数据中最主要的元素和结构,去除噪音和冗余,将原有的复杂数据降维,揭露出隐藏在复杂数据背后的简单结构。从线性代数角度来看,PCA目标是找到一组正交基去重新描述得到的数据空间,这个维度就是主元,将原数据投影到该数据空间上,就可以达到降维的目的。

K-L变换与PCA

PCA算法的理论依据是K-L变换,通过寻找线性变换W,实现对高维数据的降维。

混乱的数据中通常包含三种成分:噪音、旋转和冗余。在区分噪音的时候,可以使用信噪比或者方差来衡量,方差大的是主要信号或者主要分量;方差较小的则认为是噪音或者次要分量;对于旋转,则对基向量进行旋转,使得信噪比或者方差较大的基向量就是主元方向;在判断各个观测变量之间是否冗余时,可以借助协方差矩阵来进行衡量和判断。

PCA的主要思想:

1.最小化冗余量,对应于协方差矩阵的非对角线元素要尽量小; 2.最大化信号,对应于要使协方差矩阵的对角线上的元素尽可能的大。对角线上的元素值越大,也就是对应于越重要的主元。该思想实现方法就是对协方差矩阵进行对角化。

PCA的模型中存在假设条件:

1.PCA的内部模型是线性的,kernel-PCA就是使用非线性的权值对PCA扩展; 2.针对的样本的概率分布模型只限于指数概率分布模型。从而扩展出ICP(独立主元分析)。 3.数据本身具有较高的信躁比。 4.假设主元向量之间是正交的。

PCA的可视化理解

PCA的求解方法:

MySample=fix(rand(10,3)*50)

协方差是计算不同维度间的协方差,样本矩阵的每行是一个样本,每列为一个维度,所以我们要按列计算均值。

dim1=MySample(:,1);
dim2=MySample(:,2);
dim3=MySample(:,3);

计算dim1与dim2,dim1与dim3,dim2与dim3的协方差:

sum((dim1-mean(dim1)).*(dim2-mean(dim2)))/(size(MySample,1)-1);
sum((dim1-mean(dim1)).*(dim3-mean(dim3)))/(size(MySample,1)-1);
sum((dim2-mean(dim2)).*(dim3-mean(dim3)))/(size(MySample,1)-1);
协方差矩阵的对角线上就是各个维度上的方差
std(dim1)^2;
std(dim2)^2;
std(dim3)^2;

协方差矩阵也可以这样计算,先让样本矩阵中心化,即每一维度减去该维度的均值,使每一维度上的均值为0,然后直接用新得到的样本矩阵乘上它的转置,然后除以(N-1)。该方法可以由前面的公式推导出来。 matlab代码实现如下:

X=MySample=repmat(mean(MySample),10,1);  %  中心化样本矩阵,使各维度均值为0
C=X'*X/(size(X,1)-1);

为什么在PCA中,协方差矩阵的特征向量就是主元,等价于原矩阵的奇异值分解,主元并非降维后的样本矩阵,而是投影矩阵,原矩阵可通过投影矩阵投影达到降维的目的。

观察PCA后的样本协方差矩阵和原始矩阵的协方差矩阵可以发现各个维度上的方差有所变化,但对角线之和没有变,能量重新得到了分配,这就是降噪的功劳。 将原矩阵与投影矩阵相称可得到降维后的矩阵。

svd与LSI

PCA与LDA是特征抽取的两种主要经典方法 LDA(线性评判分析) 信号表示:特征抽取后的特征要能够精确地表示样本信息,使得信息丢失很小,对应的方法是PCA 信号分类:特征抽取后的特征,要使得分类后的准确率很高,不能比原来特征进行分类的准确率低。对于线性来说,对应的方法是LDA PCA不具有鉴别特性 LDA与PCA的目标不一样,导致他们的方法也不一样。PCA得到的投影空间是协方差矩阵的特征向量,而LDA则是通过求得一个变换W,使得变换之后的新均值之差最大,方差最大,变换W就是特征的投影方向。 PCA做分类时一般使用主向量作为特征进行分类,而不是降维后的矩阵来做分类。

参考文章:

奇异值分解及其应用 百度文库 PCA与SVD Kernel PCA的推导

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Matlab C混合编程

    在MATLAB中可调用的C或Fortran语言程序称为MEX文件。MATLAB可以直接把MEX文件视为它的内建函数进行调用。MEX文件是动态链接的子例程,MAT...

    pydata
  • nginx permission root

    参照nginx 13:permission denied solved The root directive is the problem here. Quo...

    pydata
  • install pypy from source

    pydata
  • 呐你们要的算法(二)No.20

    今天聊聊PCA算法。 PCA(Principal Component Analysis),主成分分析,是什么玩意呢? 就是一个将一个n维的特征数据降低到k维的...

    大蕉
  • Python AI 教学 | 主成分分析(PCA)原理及其应用

    假如你是一家淘宝店店主,你所负责运营的淘宝店2018年全年的流量及交易情况可以看成是一组记录的集合,其中每一天的数据是一条记录,(日期,浏览量,访客数,下单数,...

    用户1621951
  • 通信人格权初探:刍议号权

    王红霞  中南大学法学院博士后,中南大学法学院讲师 一、通讯社交利益之发轫 社会交往自人之产生就已经开始,是人的基本需求和存在方式。美国社会学家库利主...

    腾讯研究院
  • 【聚焦】大数据建模的几大定律

    大数据建模是一个数据挖掘的过程,就是从数据之中发现问题,解释这些问题,建立相应的数据模型,可以通过预测创造新的决策参考,对于数据建模有不同的平台以及不同的工具,...

    小莹莹
  • Vulnhub靶机渗透-Tr0ll:2

    既然web没什么突破口,那么我们还是从ftp试试看,考虑生成个社工字典,根据WEB给出的Author以及Editor:

    HACK学习
  • Blazor带我重玩前端(四)

    新建一个Razor页面,所有新增的布局都要继承LayoutComponentBase,同时标识自定义内容的输出位置,即标识Body的位置。如图所示:

    Edison.Ma
  • 大数据奇葩说:盘点10个有趣的大数据

    大数据早已成了我们耳熟能详的词汇,大数据也逐渐得到的政府,企业和个人的重视。基于此,大数据究竟在如何影响着我们的生活? ? 大数据(Big data) 因为他...

    腾讯大数据

扫码关注云+社区

领取腾讯云代金券