1、降维的目的
1)数据压缩
将数据从多维数据降低为低维数据,从而减小数据的规模,并使用较少的计算机内存或磁盘空间。在机器学习中,通过降维也可以加快算法计算。
2)可视化
通过降维可以减小数据的特征数,从而可以分析组成数据的基本结构,方便可视化数据。但是,降维后新的特征所代表的含义需要我们依据情况自己分析。
2、主成分分析(PCA)
PCA是一种常见的降维方法。它是通过正交变换将原数据中线性相关的特征转化为少数几个线性无关的特征,这几个线性无关的特征表示的变量称为主成分。
2.1 主成分的几何解释
在选定主成分个数k后,我们的目的是选择k个两两正交的基坐标系,将样本点向这k个坐标分别进行投影,使得所有样本点在坐标上的投影平方和最大(即样本点距投影坐标的距离—投影误差的平方和最小)。投影平方和越大,代表保留原始数据的信息成分越多。
2.3 主成分分析的协方差矩阵特征值分解法
设X表示n×m矩阵,代表n个样本、每个样本是m维向量。
1)算法流程
- (1)将样本的特征进行规范化处理
- (2)计算相关系数矩阵(规范化后的数据协方差矩阵和相关系数矩阵相等)的特征值λk和特征向量αk=(α1k,α2k...αmk)T。相关系数矩阵R与X矩阵关系如下:
- (3)选择累计方差贡献率大于某一阈值的前K个特征值。
数学上可以证明,样本第k个主成分的方差与特征值λk相等,因此,累计方差贡献率为前r个特征值之和与K个特征值之和的比值(r<=K)。 - (4)每个特征值λk(k=1,2...K)对应的特征向量αk进行线性变换后的值称为样本的第k个主成分。
2)因子负荷量
主成分yi与变量xj与的相关系数ρ(yi,xj)也称为因子负荷量。计算公式为:
如果是规范化矩阵,则变为:
K个主成分对原变量xj的贡献率为:
2.4主成分分析的奇异值分解法
设X表示n×m矩阵,代表n个样本、每个样本是m维向量。X每一列数据进行了规范化处理。
算法流程如下: - (1)构造新的矩阵X'
- (2)依据主成分个数k对矩阵X'进行截断奇异值分解,得到:
其中,U为n×k矩阵,Σ为k×k对角矩阵,对角线元素为x'的k个奇异值,V为m×k矩阵。矩阵V的k列构成k个样本主成分。 - (3)求样本主成分Y(k×n矩阵,列向量表示转换后的一个样本)
2.5 矩阵特征值分解和奇异值分解的比较
1)矩阵A特征值分解表示A=QΣQ-1,其中Σ为对角线元素为A的特征值的对角矩阵,Q为相应特征向量组成的矩阵。要求矩阵A必须为方阵!!!
2)如果A不是方阵,是一个n×m矩阵(n≠m)。那么A的奇异值分解为A=UΣVT,其中U为n×n的正交矩阵,V为m×m正交矩阵。Σ为一个n×m的矩阵。
3)由于在主成分分析中,样本特征的协方差矩阵为一个对称阵,即是一个方阵,因此,可以通过两种方式进行求解。
4)设X表示n×m矩阵,代表n个样本、每个样本是m维向量。X每一列数据进行了规范化处理。主成分矩阵分解方法中使用协方差矩阵1/(n-1)XTX作为矩阵A,而奇异值分解方法利用1/(n-1)X作为矩阵A,要注意区分。
3、应用主成分分析的建议
主成分分析主要应用与降维和发现数据的结构关系,不要应用主成分来解决数据模型的过拟合问题。因为,主成分丢失了原始数据的某些信息,而这些信息可能包含重要信息。解决过拟合用正则化方法。