目的及用途:在保持数据不丢失的情况下,将数据集从n维降到k维 (k<n).

西瓜书

1)问题:如何保持数据不失真情况下降维

=>数据投影到另一个坐标轴上,数据不要有重叠 => 数据尽可能离散=> 方差越大越好

=>寻找到一维基上的方向是方差值最大

2)高维的情况下 ,不希望特征间有线性相关性

因为会有重复信息,用数学的表达:两个字段的协方差表示其相关性

=>字段均值为0的情况下,两个字段的协方差简洁的表示为其内积除以元素数m

=> 协方差为0, 两字段正相交,两个特征完全独立,

=>选择第二个基时只能在与第一个基正交的方向上选择

3)协方差对角化

将协方差矩阵对角化:即除对角线外的其它元素化为0,并且在对角线上将元素按大小从上到下排列

4)优化目标:

寻找一个矩阵P,满足PCP[𝖳]是一个对角矩阵,并且对角元素按从大到小依次排列,那么P的前K行就是要寻找的基,用P的前K行组成的矩阵乘以X就使得X从N维降到了K维并满足上述优化条件。

P是协方差矩阵的特征向量单位化后按行排列出的矩阵

PCA算法

总结一下PCA的算法步骤:

设有m条n维数据。

  1. 将原始数据按列组成n行m列矩阵X
  2. 将X的每一行(代表一个属性字段)进行零均值化,即减去这一行的均值
  3. 求出协方差矩阵C=(1/m)XX𝖳
  4. 求出协方差矩阵的特征值及对应的特征向量
  5. 将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P
  6. Y=PX 即为降维到k维后的数据

PCA 通俗版:

ML in action

在PCA 中,数据从原来的坐标轴转换到新的坐标轴,新坐标轴由数据本身决定。

第一个坐标轴选择是数据中方差最大的方向,

第二个新坐标轴和第一个坐标轴下次且具有最大方差的方向。

该过程 一直重复,次数是原始数据中的特征数。

最后发现,大部分的言状都包含在最前面的几个新坐标轴中。忽略余下的坐标轴,即是对数据进行降维。

PCA 原理

CodingLabs - PCA的数学原理,(evernote), 有更直观的解释

results matching ""

    No results matching ""