码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-10-08 15:53:31      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:web   list   大小   算法理解   The   margin   none   关系   bsp   

《数据清洗和特征选择→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)可视化一下降维的结果技术分享图片

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

标签:web   list   大小   算法理解   The   margin   none   关系   bsp   

原文地址:https://www.cnblogs.com/LeisureZhao/p/9754604.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!