主成分分析(ponents analysis)
JerryLead
csxulijie@
在这一篇之前的内容是《Factor Analysis》,由于非常理论,打算学完整个课程后再写。
在写这篇之前,我阅读了 PCA、SVD 和 LDA。这几个模型相近,却都有自己的特点。本篇打
算先介绍 PCA,至于他们之间的关系,只能是边学边体会了。PCA 以前也叫做 Principal factor
analysis。
1. 问题
真实的训练数据总是存在各种各样的问题:
1、比如拿到一个汽车的样本,里面既有以“千米/每小时”度量的最大速度特征,也有“英
里/小时”的最大速度特征,显然这两个特征有一个多余。
2、拿到一个数学系的本科生期末考试成绩单,里面有三列,一列是对数学的兴趣程度,一
列是复习时间,还有一列是考试成绩。我们知道要学好数学,需要有浓厚的兴趣,所以
第二项与第一项强相关,第三项和第二项也是强相关。那是不是可以合并第一项和第二
项呢?
3、拿到一个样本,特征非常多,而样例特别少,这样用回归去直接拟合非常困难,容易过
度拟合。比如北京的房价:假设房子的特征是(大小、位置、朝向、是否学区房、建造
年代、是否二手、层数、所在层数),搞了这么多特征,结果只有不到十个房子的样例。
要拟合房子特征‐>房价的这么多特征,就会造成过度拟合。
4、这个与第二个有点类似,假设在 IR 中我们建立的文档‐词项矩阵中,有两个词项为“learn”
和“study”,在传统的向量空间模型中,认为两者独立。然而从语义的角度来讲,两者
是相似的,而且两者出现频率也类似,是不是可以合成为一个特征呢?
5、在信号传输过程中,由于信道不是理想的,信道另一端收到的信号会有噪音扰动,那么
怎么滤去这些噪音呢?
回顾我们之前介绍的《模型选择和规则化》,里面谈到的特征选择的问题。但在那篇中
要剔除的特征主要是和类标签无关的特征。比如“学生的名字”就和他的“成绩”无关,使
用的是互信息的方法。
而这里的特征很多是和类标签有关的,但里面存在噪声或者冗余。在这种情况下,需要
一种特征降维的方法来减少特征数,减少噪音和冗余,减少过度拟合的可能性。
下面探讨一种称作主成分分析(PCA)的方法来解决部分上述问题。PCA 的思想是将 n
维特征映射到 k 维上(k<n),这 k 维是全新的正交特征。这 k 维特征称为主元,是重新构造
出来的 k 维特征,而不是简单地从 n 维特征中去除其余 n‐k 维特征。
2. PCA 计算过程
首先介绍 PCA 的计算过程:
假设我们得到的 2 维数据如下:
行代表了样例,列代表特征,这里有 10 个样例,每个样例两个特征。可以这样认为,
有 10 篇文档,x 是 10 篇文档中“learn”出现的 TF‐IDF,y 是 10 篇文档中“study”出现的
TF‐IDF。也可以认为有 10 辆汽车,x 是千米/小时的速度,y 是英里/小时的速度,等等。
第一步分别求 x 和 y 的平均值,然后对于所有的样例,都减去对应的均值。这里 x 的均
值是 ,y 的均值是 ,那么一个样例减去均值后即为(,),得到
第二步,求特征协方差矩阵,如果数据是 3 维,那么协方差矩阵是
这里只有 x 和 y,求解得
对角线上分别是 x 和 y 的方差,非对角线上是协方差。协方差大于 0 表示 x 和 y 若有一
个增,另一个也增;小于 0 表示一个增,一个减;协方差为 0 时,两者独立。协方差绝对值
越大,两者对彼此的影响越大,反之越小。
第三步,求协方差的特征值和特征向量,得到
上面是两个特征值,下面是对应的特征向量,特征值 对应特征向量为
,
,这里的特征向量都归一化为单位向量。
第四步,将特征值按照从大到小的顺序排序,选择其中最大的 k 个,然后将其对应的 k
个特征向量分别作为列向量组成特征向量矩阵。
这里特征值只有两个,我们选择其中最大的那个,这里是 ,对应的特征向
量是
,
。
第五步,将样本点投影到选取的特征向量上。假设样例数为 m,特征数为 n,减去均值
后的样本矩阵为 DataAdjust(m*n),协方差矩阵是 n*n,选取的 k 个特征向量组成的矩阵为
EigenVectors
(10)主成分分析 来自淘豆网m.daumloan.com转载请标明出处.