每当做主成分分析(pca)时,挑选的主特征是原来数据的哪特征呢?

发布日期:2018-06-02 来源:财富国际在线 阅读:
每当做主成分分析(pca)时,挑选的主特征是原来数据的哪特征呢? Hana 5小时前 38 主成分分析 方差分析 矩阵变换 例如有一组10*10的数据,降维后成为10*2的矩阵,那么如何判断降维后的这两列对应这原来数据的哪两列呢?
0 0
其他回答
刚好在cross validation看到相关的问题下有个很有趣的答案,应该可以解答题主的问题。原文看这里Making sense of principal component analysis, eigenvectors & eigenvalues
下面是我的翻译。

前言

PCA(principal component analysis)是一个遍地可见的处理数据的方法,但是理解起来好像有点困难。 爱因斯坦说,如果没法跟你奶奶解释清楚一个东西,你就还没算真正理解它。看完这篇“教程”后,不妨回家试一试:-)klT财富国际


正文

想象下你正在家庭聚餐.klT财富国际

great-grandma: 听说你最近在研究”Pee-See-Ay”啊, 能告诉我那是什么吗…klT财富国际

you: PCA只是一个用来浓缩数据的方法啦。你看, 咱这桌上有几瓶酒。我们可以用颜色啦,酒精浓度啦,年代啦这样一些特征来描述它们。如果有很多酒,比如在酒窖里,咱们也可以用这样的方法。但是这些特征里面有一些描述了相似的特性,显得有点多余。比如颜色越深时,往往浓度也越高(纯属瞎编),那我们就可以把这两个特征合二为一,这样就可以用比较少的特征来概括描述咱们的酒了。这个就是PCA做的事啦。klT财富国际


great-grandma:为什么要做浓缩呢..klT财富国际

you: 这个跟“浓缩洗衣粉”是一个道理呀。每次洗衣服时,只要加一点点浓缩洗衣粉就够了。但换做普通洗衣粉,就得加好几勺不是吗?洗衣粉浓缩了之后变轻了,数据浓缩了之后也会省下很多空间,电脑处理起来也没那么费劲了。klT财富国际


grandma: interesting! 所以PCA做的就是检查下哪些特征是多余的,然后把它扔掉吗?klT财富国际

you: 阿嬷,这个问题问的太有水平了! PCA并不是选出一些特征,然后丢掉另外的特征。事实上,它找出了一些新的特征,而且这些新特征可以很好的描述咱们的酒。怎么找的呢?利用的还是之前的特征,但有些不一样了。比如,酒的年代减去它的酸度,就可以变成一个新的特征。这样的组合有很多,PCA做的就是找出最有用的那些组合(线性组合)。klT财富国际


Mum: 唔。。听起来很不错呀,但我还是不太理解。你刚刚说这些新特征“概括”了那些酒是什么意思?klT财富国际

you: 首先啊,我们描述酒的时候,其实就是想找一些比较有区分度的特征。如果说桌上十瓶酒,每瓶都十块钱,那价格就没多少区分度了。我们知道其实这些酒是有区别(浓度,年代等)的,但这时候如果用价格来描述它,咱们没法根据价格判断是什么酒,这就说明它没法起到“概括”的作用。所以,PCA就是要找出那些区分度很大的新特征,来“概括”咱们的酒。klT财富国际

其次呢,我们也想要找到这样的特征:它能让我们重现原貌,看到原来的酒的特征。就像把一篇文章浓缩成摘要之后,我想要根据摘要重现原来的文章; 或者一张图片打了马赛克之后,想要把它变回原来的高清大图。对,就是想找到有这种超能力的新特征。klT财富国际

巧的是,这两个目标其实是一样的,而且PCA都能实现,一石二鸟!klT财富国际


wife:但是,这两个目标看起来很明显就不一样啊?klT财富国际

you: 唔(怎么这么不给面子……)唉,我画个图给你看看吧(拿一张纸巾开始画)。我们找两个特征来描述酒,比如说颜色深度和酒精度数——我不确定它们是不是相关的,但就假设是吧。这是不同的酒的散点图。klT财富国际


这一堆圆点里面,每一个表示一瓶酒。我们看,图里面的两个特征(x和y)是相关的。所以,可以画一条穿过这些点的线,让这些点都投影到线上,这样我们就找到一个新特征了。新的特征可以用线ω_1*x+ω_2*y来表示,ω_1,ω_2不同时,线的方向就不同。klT财富国际

现在来仔细看看,这些点是怎么投影到不同的线上面的(红点表示蓝点的投影)。klT财富国际

【此处应有gif,想看gif的麻烦到原文或者我的博客怎么跟你奶奶解释PCA】

klT财富国际

线有这么多方向,但只要拿最好的那个来做新的特征,PCA自己会找到那条最好的线。什么是最好的呢?首先,线上的红色点的变化范围要最大(方差最大)。其次,当我们要用新特征(红色点)来重现原来的两个特征(蓝色点)时,这个过程的误差(红色连线)要越小越好。klT财富国际

仔细看看动画,你会发现“方差最大”和“误差最小”这两个条件,在线转动到品红色标记的方向时,同时满足了,也就是说,刚才那两个目标同时实现了。而这条线就相当于PCA找出的新特征。klT财富国际

顺便多说两句,PCA全称叫“主成分分析”,这个新特征就是“第一主成分”,而特征一般也称作“变量”。klT财富国际


daughter: 好神奇啊,爸爸!这个动画让我想起了勾股定理。但我听说PCA是跟特征向量和特征值有关的,它们在图里面的什么位置呢?klT财富国际

you: 哈哈,观察得很仔细嘛!你知道红点的方差怎么算吧,就是每个点跟中心点的距离的平方和。误差呢,用红色连线长度的平方取平均值表示。因为红线和黑线总是垂直,所以这两个量的和就刚好是所有蓝点跟中心点距离的平方取均值。这就是你说的勾股定理呀。这个总和是不变的,跟黑线的方向没有关系。所以,方差越大时,误差也会越小。klT财富国际

咱们可以把黑线想象成一根光滑的铁棒,红色线想象成一个个的弹簧。你学过物理了,应该知道胡克定理吧,就是弹簧的能量跟它长度的平方成正比。所以铁棒就会自己转动到合适的方向,让总能量保持最小才停止。klT财富国际

【这里本来也是一个gif】klT财富国际


要说到特征向量和特征值,得先给你讲讲协方差矩阵。继续上面的例子,这是对应的2×2的协方差矩阵。klT财富国际

它说明x的方差是1.07,y的方差是0.64,x和y之间的协方差是0.63. 它是一个方形对称阵,所以可以通过选择新的正交坐标系,把它转换成对角矩阵。坐标系就是通过特征向量得到的。它们对应的特征值就是新的对角阵对角线上的值。所以,新坐标系下的协方差阵是这样一个对角阵:klT财富国际

这意味着,两个新变量之间的协方差变成了0. 如果我们用第一个坐标轴(特征向量)做投影,红点的方差就是1.52,也是最大的方差。原因其实就是:第一主成分的方向由协方差矩阵的第一个特征向量给出。(详细说明看这里)klT财富国际

在上面的图中也可以看到,黑色铁棒垂直方向有一条灰色线,它们组成一个正交坐标系。蓝色点在铁棒转动到什么时候会变得不相关呢?答案跟之前一样,又是品红色线标记的方向。现在可以告诉你我是怎么找到这个方向的了:它就是协方差矩阵第一个特征向量的方向,在这个例子里,是(0.81, 0.58).klT财富国际



最后再补充一个我觉得很不错的教程https://www.cs.princeton.edu/picasso/mats/PCA-Tutorial-Intuition_jp.pdf
热心网民 5小时前 0条评论
0 0
百晓知道新手,看消息晚了,非常抱歉! PCA是将n维特征映射到k维上(k<n),这k维特征是全新的正交特征,称为主元,是重新构造出来的k维特征,而不是简单的从n维特征中去除其余n-k维特征。

先说下PCA的主要步骤:
假设原始数据是10(行,样例数,y1-y10)*10(列,特征数x1-x10)的(10个样例,每样例对应10个特征)
(1)、分别求各特征(列)的均值并对应减去所求均值。
(2)、求特征协方差矩阵。
对角线上是方差,非对角线是协方差;协方差为0时两者独立,其绝对值越大,两者对彼此的影响越大。
(3)、求协方差阵的特征值和特征向量。
(4)、将特征值按照从大到小排序,选择其中最大的k个。将其对应的k个特征向量分别作为列向量组成特征向量矩阵。
(5)、将样本点投影到选取的k个特征向量上。这里需要捋一捋,若原始数据中样例数为m,特征数为n,减去均值后的样本矩阵仍为MatrixDATA(m,n); 协方差矩阵是C(n,n);特征向量矩阵为EigenMatrix(n,k); 投影可得: FinalDATA(m,k)=MatrixDATA(m,n) * EigenMatrix(n,k) 。
这样,原始数据就由原来的n维特征变成了k维,而k维跟原始数据的维没有关系,是原始特征在k维上的投影。这k维特征基本上代表了原先的n个特征(牺牲掉所认为不重要个维度的信息,即后n-k个特征向量所代表的维度)。

下面需要把特征协方差阵和投影单独拎出来说一下:
1、为什么求特征协方差的特征向量就是最理想的k维向量?
2、投影的过程意义在于?

【对于第一点】 可以通过最大方差理论解释。处理信号时,信噪比定义为10倍lg信号与噪声功率之比,这个用非周期的数字信号平均功率来解释比较直观(模拟信号只要做积分即可),在观测时间序列有N个时间点,将每个时间点的幅值的平方作和,再将总和除以点数N,信噪比其实就是信号与噪声的方差比。而一般认为,信号具有较大的方差(包含信息),噪声具有较小的方差。所以我们认为的最好的k个特征应该尽可能的包含有用信号,亦即信号损失尽可能小。故在将n维特征转换为k维后,取的是前k个较大方差的特征方向。下面 我们来看一下投影的详细过程(图片引自JerryLead blog)
u是直线的斜率也是直线的方向向量,而且是单位向量。样本点x在u上的投影点距离远点的距离是两向量内积,

这里u为单位向量,故内积即为投影的长度。
考虑m个样本点都做u上的投影,故样本在u上投影后的点的方差(只考虑u方向,参照原点)可以计算如下:

前面样本点经过预处理,每一维特征均值为0,故投影到u上的样本点(只有一个到原点的距离值)的均值仍然是0。方差计算如下



u为单位向量,中间部分
其实相当于样本的特征协方差矩阵,这里我要详细的解释一下为什么。

还记得样本的特征协方差矩阵吗?特征协方差矩阵中非对角线元素的求法为cov(x1,x2) = E{[(x1-E(x1)][x2-E(x2)]},也就是两个特征所对应的样本值序列分别减去各自均值后的乘积的均值(因为是无偏估计,这里计算均值是除以m-1而非m)。
理一理我们手头上的数据: m个样例; n个特征

在求特征协方差矩阵时的x1,x2,....xn是对应的特征列。是Data中的列,这里不要和行

搞混淆哦,如果我们要求特征x1的方差D(x1)=; 特征x1,x2的协方差Cov(x1,x2)= 。其余以此类推。再看
注意这里最为重要,需要理解。 公式中是列向量与行向量的乘积(结果是一个矩阵),对m个矩阵做结果是一个矩阵。我们不妨试着将这个矩阵乘开看一看是什么鬼。



(公式编辑器实在是费时间,请不要吐槽= .=)klT财富国际

好了,可以看出这其实就是我们前面提到的特征协方差矩阵,不同的是将除以m-1换成了m。klT财富国际


我们再来看下面的推导:klT财富国际

用表示,表示 .那么式子=就可以写成:
klT财富国际

u是单位向量,,对 式两边左乘u有,也就是klT财富国际

;是我们的特征协方差矩阵,故也就是该矩阵的特征值u就是特征向量。故=的最大值就是 的最大值,也就是的最大值。
klT财富国际

PCA最终保留的前k个特征值就是对应的前k大的方差的特征方向。klT财富国际

------------------------------------------------------------- 补充一点 ------------------------------------------------------------klT财富国际

关于PCA主要步骤的解释侧重于对机制的理解,具体细节可以参考主成分的计算步骤
klT财富国际



【对于第二点】 可以看到投影过程为: FinalDATA(m,k)=MatrixDATA(m,n) * EigenMatrix(n,k)klT财富国际


试思考:1,矩阵右乘列向量-- 得到新的列向量为矩阵各列的线性组合
2,矩阵A右乘矩阵B(k列)-- 得到新的矩阵,该矩阵每一列均为A矩阵各列做k次不同的线性组合的结果。这也就是楼上说的新的特征(k列)是原特征(n列)线性组合的结果。如果非要看新的k维是原来的特征如何得到的,可以把特征协方差矩阵的特征向量求取出来,对应看出如何做的线性组合。
关于线性组合与投影:为什么投影可以用线性组合或者说是矩阵相乘来实现呢?
这里涉及坐标空间的变换,把数据从原空间投影到选择的k维特征空间中。这里解释起来比较多,姑且就理解为一种线性映射吧,有时间再来补充。实际上k<n故
把数据从原空间投影到选择的k维特征空间中会损失掉一部分的信息(后n-k个特征向量对应的信息),这也是主成分分析降维的结果。
Hana 5小时前 0条评论
0 0

关于我们 联系我们招聘信息免责申明广告服务 网站地图 百度地图 TAG标签

Copyright@2018-2022 Cfgjzx.Com 财富国际在线 版权所有 All Rights Reserved   
财富国际提供:最新财富资讯、房产资讯、股票资讯、区块链、投资理财、保险导购、健康产品、公私募基金,易经等资讯及服务.