主成分分析原理(PCA)

主成分分析原理(PCA)

两个矩阵相乘的意义是将右边矩阵中的每一列向量 a_{i}变换到左边矩阵中以每一行行向量为基所表示的空间中去。

选择不同的基可以对同样一组数据给出不同的表示,如果基的数量少于向量本身的维数,则可以达到降维的效果

有一组 N 维向量,现在要将其降到 K 维(K 小于 N),那么我们应该如何选择 K 个基才能最大程度保留原有的信息?(投影后的投影值尽可能分散,因为如果重叠就会有样本消失。从熵的角度进行理解,熵越大所含信息越多。)

变量内方差(一维):

我们知道数值的分散程度,可以用数学上的方差来表述。单变量的方差可以看做是每个元素与变量均值的差的平方和的均值,即: 

                                                          

为了方便处理,我们将基组的均值都化为 0 ,因此方差可以直接用每个元素的平方和除以元素个数表示:

                                                             

于是上面的问题被形式化表述为:寻找一个一维基,使得所有数据变换为这个基上的座标表示后,方差值最大。

变量间协方差:

协方差可以表示两个变量的相关性,当协方差为 0 时,表示两个变量完全独立。为了让两个变量尽可能表示更多的原始信息,我们希望它们之间不存在线性相关性,因为相关性意味着两个变量不是完全独立,必然存在重复表示的信息。

协方差公式为:

                                                        

为了让协方差为 0,我们选择第二个基时只能在与第一个基正交的方向上进行选择,因此最终选择的两个方向一定是正交的。因此降维问题的优化目标:将一组 N 维向量降为 K 维,其目标是选择 K 个单位正交基,使得原始数据变换到这组基上后,各变量两两间协方差为 0,而变量方差则尽可能大(在正交的约束下,取最大的 K 个方差)。

 

假设我们只有 a 和 b 两个变量,那么我们将它们按行组成矩阵 X:

                                                               

然后得到协方差矩阵:

                               

我们可以看到这个矩阵对角线上的分别是两个变量的方差,而其它元素是 a 和 b 的协方差。两者被统一到了一个矩阵里。

我们很容易被推广到一般情况:

设我们有 n 个 m 维数据记录,将其排列成矩阵 X_{n,m},设,则 C 是一个对称矩阵,其对角线分别对应各个变量的方差,而第 i 行 j 列和 j 行 i 列元素相同,表示 i 和 j 两个变量的协方差

我们需要将除对角线外的其它元素化为 0,并且在对角线上将元素按大小从上到下排列(变量方差尽可能大),优化目标变成了:寻找一个矩阵 P,满足 PCP^{T}是一个对角矩阵,并且对角元素按从大到小(对应特征值从大到小)依次排列,那么 P 的前 K 行就是要寻找的基,用 P 的前 K 行组成的矩阵乘以 X 就使得 X 从 N 维降到了 K 维并满足上述优化条件

PCA算法步骤(n个p维数据,降成k维):

1.所有数据排成n行p列矩阵X,并进行中心化(每一行减去该行均值)使得所有样本之间的特征值均值为0,同时应用feature scaling,缩放到-0.5~0.5;

2. 计算样本的协方差矩阵X\cdot X^{^{T}}
3.计算协方差矩阵的特征值及对应的特征向量;
4.取出最大的k个特征值对应的特征向量(w1,w2,...,wk), 将所有的特征向量标准化后,组成特征向量矩阵W;
5.对样本集中的每一个样本x转化为新的样本z(i)=M^{^{T}}\cdot x(i)
6.得到输出样本集D=(z(1),z(2),...,z(k))。

PCA效果:

缓解维度灾难:PCA 算法通过舍去一部分信息之后能使得样本的采样密度增大(因为维数降低了),这是缓解维度灾难的重要手段;

降噪:当数据受到噪声影响时,最小特征值对应的特征向量往往与噪声有关,将它们舍弃能在一定程度上起到降噪的效果;

过拟合:PCA 保留了主要信息,但这个主要信息只是针对训练集的,而且这个主要信息未必是重要信息。有可能舍弃了一些看似无用的信息,但是这些看似无用的信息恰好是重要信息,只是在训练集上没有很大的表现,所以 PCA 也可能加剧了过拟合;

特征独立:PCA 不仅将数据压缩到低维,它也使得降维之后的数据各特征相互独立(特征向量相互垂直);

参考:https://blog.csdn.net/zouxiaolv/article/details/100590725

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章