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

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

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



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

例子


算法实例
1)将原始数据按列组成n行m列矩阵X
将每组数据写成一列一列的,是因为要实现投影,参考见5)和6)
paste-481036337152003.jpg
将这组二维数据降到一维
2)将X的每一行(代表一个属性字段)进行零均值化,即减去这一行的均值(意义参考见机器学习中的数学→数理统计→数字特征和统计量→协方差和样本协方差→协方差矩阵)这个矩阵的每行已经是零均值 ,所以可以看到这些点在原点周围

3)求出协方差矩阵paste-480877423362051.jpg

paste-505839773286403.jpg
4)求出协方差矩阵的特征值及对应的特征向量paste-506213435441155.jpg
标准化后为:                 paste-506295039819779.jpg
P是标准化后的特征向量的转秩:paste-506982234587139.jpg

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

posted on 2018-10-08 15:22 LeisureZhao 阅读(...) 评论(...) 编辑 收藏

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试