aihot  2017-10-11 22:22:22  机器学习 |   查看评论   

PCA方法降维

  原理如上文所讲,那具体如何处理呢?这里会涉及到协方差矩阵的概念,首先,方差和标准差是用来描述一维数据的,而如果我们想要处理多维数据,发现两维数据之间的相关关系,就要用到协方差矩阵,我们依照方差公式类比推得协方差公式。

方差公式

协方差公式

  若协方差的结果为正值,则说明两者正相关;若为负值,则说明两者负相关;为零则说明不相关,相互独立。

  上面的协方差公式只能处理二维问题,那我们要处理多维之间的相关关系,那自然该想到使用矩阵表示,由协方差组成的协方差矩阵。

三维数据下的协方差矩阵示例

  接下来,我们求这个协方差矩阵的特征值,选择保留K个最大的特征值,这K个特征值所对应的特征向量也就给出了K个最重要的真实结构,而且协方差矩阵是对称阵,其特征值对应的特征向量都是相互正交的,满足作为相互独立坐标轴的条件,我们可以通过将原数据乘以这K个特征向量将其转化到新空间。

  而且我们其实还发现了一点,PCA方法中特征值最大的那个特征向量的方向(投影到该坐标轴后数据集总方差最大的方向),实际上也就是我们用最小二乘法对数据集进行拟合所得到的线性回归直线的方向,这个是可以证明的,最小二乘法目标函数的优化目标实际上就是找到数据集协方差矩阵(X'X)的最大特征值,而最大特征值对应的特征向量也就是最小二乘法的回归直线。

  PCA将N个特征降维到K个,所以可以用来进行数据压缩,例如100维的向量最后可以用10维来表示,那么压缩率为90%。

  SVD是奇异值分解的简称,SVD同样是将高维数据降低到低维,或者理解成在噪声数据中抽取相关特征。

  SVD的应用非常广,其中一个就是隐性语义索引,SVD可以抽取文档和词的概念,也就是可以识别拥有同一主题的文章以及同义词。举个例子,如果我们要根据某个关键词找出包含它的文章,如果文档中的该词包含了错别字,或者使用的是该词的同义词,只基于词语存在与否的搜索是无法找到这样的文章的,但是使用SVD就可以做到。

  SVD的另一个应用就是推荐系统,简单的推荐系统直接用余弦距离等计算项或者人之间的相似度,更先进的方法则先利用SVD从数据中构建出一个主题空间,然后再在该空间下计算相似度。对于原始数据矩阵进行SVD处理就能将数据压缩到若干概念中去。

  接下来先讲SVD的推导过程,再根据原理更深入的讲应用过程,推导过程有些复杂。

  在推理SVD之前,先做一步EVD推理,SVD是奇异值分解,EVD是特征值分解,这里我们选择一种特殊的矩阵,也就是对称阵,前面我们也提到过对称阵有种性质,就是它的特征向量相互正交,或者讲可以构成一组正交基。

  首先假设我们有一个满秩对称阵A,它的特征值是λ,相应的单位特征向量是x,假设一共有m个特征值。则根据特征值、特征向量的定义,下式成立:

 

  将上式以矩阵形式表示:

 

 

 

  
 

除特别注明外,本站所有文章均为 人工智能学习网 原创,转载请注明出处来自浅谈机器学习基础(下)

留言与评论(共有 0 条评论)
   
验证码: