14主成分分析
降维-数据压缩
- 将两个具有强相关的维度,压缩到一个维度
- 方便计算
- 节约空间
- 学习算法运行更快
降维-数据可视化
- 选取具有代表性的两个维度来表示数据。
- 因为数据之间存在内在关联性。GDP的例子中,国家GDP低,人均GDP低的地方,医疗健康水平等其他指数也会很低。
主成分分析问题规划-目标
- 本质:找到一个低维度的面,然后将数据投影到上面,使得投影误差最小(在其他方向损失的数据信息最少。)
- 均值归一化
- 特征规范化
对数据进行缩放,避免因为数据本身的尺度不同造成对结果的影响不同。
主成分分析问题规划2
- 从线性空间的角度进行理解。当有n个特征的时候,可以用n个线性无关向量作为基,表示线性空间。如果这n个特征之间存在关系(线性相关性)那么可以用其他的特征来表示这个特征,那么就可以用n-1个向量作为基表示现行空间。
- 从向量空间的角度进行理解,主成分分析,即将n为空间内的点,投影到k维子空间当中,实现降维。
- 主成分分析即将n个特征之间的线性相关性进行判定。转换为互相独立的基,消除特征之间的线性相关性。如果n个特征之间存在线性相关,那么主成分分析的特征向量是n-1个,特征值也是n-1个,其他的特征值为0。
- 在编程语言中的实现过程如下
- 对样本进行奇异值分析。得到k个特征向量构成的特征矩阵。
- 使用特征矩阵对每一个样本进行线性变换。(投影、降维、主成分)
- 使用降维后的数据代入样本进行计算。
$$
SIGMA = \frac{1}{M}\sum_1^m x^{(i)}x^{(i)T} ; n\times n \
[U,S,V]=svd(SIGMA)\
k_{feature} = U(:,1:k)\
k_{main} = k_{feature}^T*x
$$
协方差表示两个随机变量进行线性运算时的相关性大小。
选取主成分的个数
- 通过特征值累计,占比例
$$
main = \frac{\sum_{i=1}^k s_{ii}}{\sum_{i=1}^n s_{ii}}
$$
压缩重现
- 从低维度的向量通过特征向量矩阵,还原回原来的向量。进行反向的现行变换。
PCA算法的应用
- 首先通过主成分分析,对数据降维。
- 然后通过特征向量矩阵对数据进行映射,形成新的数据。
- 最后运行机器学习算法,提高算法的效率。
主要应用
- 数据压缩
- 数据可视化,可以将数据压缩到两维或者3维,对数据进行可视化,然后分析数据的特征。
- 通过PCA降低特征数,防止过拟合的方式很愚蠢。PCA降低特征数的原理本质上是减少特征之前的现行相关性,添加新的多项式特征的原理,本质上是增加特征之间的现行相关性。这样相互冲突的操作是多余的。
编程任务
- 使用python完成主成分分析过程,观察分析的结果。对主城分析的结果进行分析。结合概率论和数理统计的内容,判断前k个特征向量,占主成分的多少。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Estom的博客!










