数据清洗和特征选择→PCA→1.算法理解

《数据清洗和特征选择→PCA→1.算法理解》



  • PCA的理解主要是明白2个协方差矩阵的意义以及关系
设原始数据矩阵X对应的协方差矩阵为C,而P是一组基按行组成的矩阵,设Y=PX,则Y为X对P做基变换后的数据。设Y的协方差矩阵为D,我们推导一下D与C的关系:
而对于协方差矩阵来说, 一定可以找到n个单位正交特征向量, 将其按 组成矩阵E   爱上ANKI  
则有 ,所以推得
注意:在C(原始数据对应的的协方差矩阵)中,体现的是数据映射在X轴和Y轴的方差以及协方差,在新的协方差矩阵里,体现的是数据映射到2个特征向量的方差以及协方差。
  • PCA的限制
    • 可以很好的解除线性相关因为协方差判断的就是线性相关程度,但是对于高阶相关性就没有办法了,对于存在高阶相关性的数据,可以考虑Kernel PCA,通过Kernel函数将非线性相关转为线性相关
    • PCA假设数据各主特征是分布在正交方向上,如果在非正交方向上存在几个方差较大的方向,PCA的效果就大打折扣了
    • PCA是一种无参数技术,也就是说面对同样的数据,如果不考虑清洗,谁来做结果都一样,没有主观参数的介入,所以PCA便于通用实现,但是本身无法个性化的优化
  • PCA算法可分为6步,是哪六步呢?请在看例子前说一下。

例子


算法 实例
1)将原始数据按列组成n行m列矩阵X
将每组数据写成一列一列的,是因为要实现投影,参考见5)和6)

将这组二维数据降到一维
2)将X的每一行(代表一个属性字段)进行零均值化,即减去这一行的均值(意义参考见机器学习中的数学→数理统计→数字特征和统计量→协方差和样本协方差→协方差矩阵) 这个矩阵的每行已经是零均值 ,所以可以看到这些点在原点周围

3)求出协方差矩阵

4)求出协方差矩阵的特征值及对应的特征向量
标准化后为:                 
P是标准化后的特征向量的转秩:

5)将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P,取行数是因为
  1. 由于P是标准化后的特征向量的转秩,因此现在一行才对应着一个特征向量
  2. 这里的矩阵乘法是从投影的角度来看的,是投影到新的基上了
参考见线性代数→矩阵→矩阵的秩→矩阵的乘法)
取P的第一行:
6)Y=PX即为降维到k维后的数据
7)可视化一下降维的结果

猜你喜欢

转载自www.cnblogs.com/LeisureZhao/p/9754604.html