PCA降维求特征值的原因

我看了几篇文章,知道了PCA降维思路,但始终不能理解,为什么通过求其特征值,然后去掉较小的特征值,再根据特征值求出特征向量最终能达到降维的目的。 如果你有相同的困惑,看下面的内容一定会有帮助。

看之前你需要了解协方差矩阵。了解特征值的求解方式。

PCA做的事情:

去噪声和冗余

噪声: 样本中某个主要维度A,能够代表原始数据,但是由于维度A与其他维度有联系,而其他维度又给我们造成干扰,此时可以通过PCA处理,使维度A与其他维度的相关性减弱。
冗余:冗余就是有一些没有用的维度,这些维度在所有样本上变化不明显,即通过它对区分不同样本不起作用。就可以通过PCA去掉这些维度。

PCA降维过程
首先我们拿到样本数据求出其协方差矩阵(网上很多,不具体写了),协方差矩阵的对角线上是方差,非对角线元素是协方差。我们应使协方差尽可能小(因为协方差代表维度之间的相关性,去噪声就是使其相关性变的尽可能小),应使方差尽可能大(因为方差大说明该维度在不同样本中的变化大,能体现出样本的特点)。要达到这个目的实际上就是将协方差矩阵的非对角线元素(协方差)全变为0(协方差为0意味着维度之间没有联系)。即转换成一个对角矩阵,此时该矩阵的对角线上的元素被称为特征值(也是各个维度上的新的方差)。对角线上较小的新方差就是去掉该去掉的维度,根据特征值求出来的其对应的特征向量就是该样本的新的坐标系。

### PCA特征值大小与贡献度的关系 在PCA(主成分分析)过程中,特征值的大小直接反映了各个主成分对于数据变异性的解释能力。具体来说: - **特征值的意义** 主成分对应的特征值表示该方向上的数据方差大小。较大的特征值意味着在这个度上有更多的信息被保留下来[^2]。 - **贡献率计算** 单个主成分的贡献率为该主成分特征值除以所有特征值之和的比例。通过这种方式可以量化每个主成分对整体数据结构的重要性程度[^4]。 - **累积贡献率** 当考虑多个主成分时,则可以通过累加这些选定主成分的贡献率来评估它们共同能表达的数据特性比例。通常会选择前几个具有较大特征值的主成分作为新的低空间坐标轴,因为它们包含了绝大部分原始高数据的信息[^3]。 因此,在进行PCA操作时,会优先选取那些拥有较高特征值的主成分,以此确保新构建的空间尽可能多地保存原有数据集内的有用信息,并有效地去除噪声或冗余变量带来的干扰[^1]。 ```python import numpy as np def calculate_contribution_ratio(eigenvalues): """ 计算各主成分贡献率 参数: eigenvalues (list): 特征值列表 返回: contribution_ratios (list): 各主成分贡献率列表 """ total_variance = sum(eigenvalues) contribution_ratios = [value / total_variance for value in eigenvalues] return contribution_ratios eigenvalues_example = [2.9, 1.5, 0.8, 0.4, 0.2, 0.1] contribution_ratios = calculate_contribution_ratio(eigenvalues_example) print("各主成分贡献率:", contribution_ratios) ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值