kNN的维数灾难与PCA降维

主成分分析 PCA

协方差矩阵

假设我们有

[X = egin{pmatrix}X_1\X_2\vdots\X_mend{pmatrix}inmathbb{R}^{m imes n} ]

那么协方差矩阵

[C_x= dfrac{1}{n-1}XX^T = dfrac{1}{n-1}egin{pmatrix}X_1X_1^T & X_1X_2^T & cdots & X_1X_m^T\X_2X_1^T & X_2X_2^T&cdots & X_2X_m^T\vdots&vdots&ddots&vdots\X_mX_1^T&X_mX_2^T&cdots&X_mX_m^Tend{pmatrix}inmathbb{R}^{m imes m} ]

可以发现主对角线上全部是方差,其余位置是协方差。其实可以把方差看成特别的协方差。方差衡量了一组数据时离散程度,而协方差则度量了两个变量之间的关联性。协方差表示的是两个变量的总体的误差,这与只表示一个变量误差的方差不同。 如果两个变量的变化趋势一致,也就是说如果其中一个大于自身的期望值,另外一个也大于自身的期望值,那么两个变量之间的协方差就是正值。 如果两个变量的变化趋势相反,即其中一个大于自身的期望值,另外一个却小于自身的期望值,那么两个变量之间的协方差就是负值。

主成分分析

主成分分析主要用于降维,降维需要减少信息冗余,但是也要保证重要的信息不丢失。主成分分析采用线性变换来达到获取各成分的目的。可想而知,我们需要各成分之间独立不相关,而内部尽可能的分散。这分别对应的协方差和方差。更加形式化的表达为,需要找到一个矩阵(P),使得

[C_x= dfrac{1}{n-1}(PX)(PX)^T = dfrac{1}{n-1}P(XX^T)P^T ]

的主对角线上的元素尽可能的大,而其余的元素为0。现在问题来了,怎么找到这样的P。好在我们的(C_x)是一个对称矩阵,其有着很好的性质,可以进行分解:

[S = EDE^T ]

其中S是一个对称矩阵,D是由S的特征值构成的对角阵,E是由S的特征向量构成的矩阵。说了这么多,我们怎么去找到P?

我们令

[S = XX^T ]

那么有

[C_x= dfrac{1}{n-1}PSP^T=dfrac{1}{n-1}P(EDE^T)P^T ]

(P = E^T)时,(C_x)不就恰好为我们想要的对角阵么。我们可以选择(D)最大的前K个特征向量,组成(P),即可达到降维的目的了。

原文地址:https://www.cnblogs.com/crackpotisback/p/9842176.html