pca 的理解

前两天转了一篇leftnoeasy的pca代码,总觉得写的不够详细,今天自己再写写


pca 要叫主成分分析,顾名思义就是把主成份给找了出来。主成份的表现形式就是主成份之间的方差最小,也就是说数据在主成份方向投影后误差最小。

比如说一维的数据

红色的线就是所有蓝点的主成份方向,蓝点投影到红线上误差最小,方差越大

至于想leftnoeasy说所的,维度的数据之间的方差最大。则意味着两个维度之间越独立,例如


点投射到红线上的相关性明显要比投射到蓝线上的相关性要小。因此这里要重点说一下,pca的目的是维度之间方差最小,维度之类方差最大,(怎么听着在说lda了,汗)

所以,我们用pca就是为了找到一组最能够表现特征的向量空间,降维、去噪

下面来详细推导一下公式:

设有n个样本,每个样本的特征是p维,那么生成一个矩阵 X(n,p),每一行为一个样本,一共n行。 假设我们需要降到 q维。那么我们就需要找到q个维度方向(是X投影到该维度的方差最大)。我们知道矩阵的点投影到某个向量上 为A*u /|A||u|, u为被投影的向量.求方差的话|A||u|可以选择性的忽略。

到这一步了就可以引入特征值的作用了,Ax=lambda*x 。特征向量本来就是用来表示特征的方向。因此,我们直接去求出特征向量。具体推到思路leftnoeasy的那篇转载写的挺清楚了。特征向量的个数毫无悬念是p个,每个特征映射到该特征向量上是一个实数。选前q个特征映射实数,就是一组新的特征。







  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: PCA(Principal Component Analysis)是一种常用的降维算法,可以将高维数据转换为低维数据,同时保留原数据中的主要信息。在sklearn中,可以使用PCA模块来进行PCA降维操作。具体使用方法如下: 1. 导入PCA模块: ```python from sklearn.decomposition import PCA ``` 2. 创建PCA对象,并设置参数: ```python pca = PCA(n_components=2) # n_components表示降维后的维度 ``` 3. 使用PCA对象进行数据转换: ```python new_data = pca.fit_transform(data) ``` 其中,data为原始数据,new_data为降维后的数据。 除了n_components参数外,PCA模块还提供了其他一些参数,例如whiten、svd_solver等,可以根据具体需求进行设置。 ### 回答2: sklearn中的PCA是指主成分分析(Principal Component Analysis)。主成分分析是一种常见的降维技术,用于将高维特征空间转换为低维子空间。它基于线性变换,通过找到新的相互不相关的变量(主成分)来捕捉原始数据中的最大方差。 使用sklearn中的PCA可以通过以下步骤完成: 1. 导入PCA模块:首先需要导入sklearn库中的PCA模块。 2. 创建PCA对象:通过调用PCA类,可以创建一个PCA对象,并指定所需的参数。其中,n_components参数用于指定所需的降维后的维度数。 3. 适配数据:将需要进行降维的数据传入PCA对象的fit方法中,使PCA模型适配数据。 4. 转换数据:通过调用PCA对象的transform方法,可以将原始数据转换为降维后的数据。 5. 可选步骤:根据需要,可以调用PCA对象的其他方法,如explained_variance_ratio_,用于获取每个主成分所解释的方差比例。 使用PCA的优势在于可以减少特征空间的维度,从而简化数据集,并提高算法的效率。此外,PCA还可以去除冗余和噪音特征,提高模型的准确性。但需要注意的是,在使用PCA降维时,可能会损失一些原始数据的信息。 综上所述,sklearn中的PCA是一种常用的降维技术,适用于数据处理和特征选择。通过调整n_components参数,可以根据需要选择合适的降维维度。 ### 回答3: sklearn是一个流行的Python机器学习库,其中包含了众多的算法和工具,用于数据预处理、特征选择、建立模型和评估模型等机器学习任务。其中之一是PCA(Principal Component Analysis,主成分分析)。 PCA是一种常用的降维技术,可以将高维数据转化为低维数据,同时尽量保留原始数据的信息。它通过线性变换将原始数据映射到一组规范正交基上,从而得到新的特征空间,并将数据在新空间中的方差最大化。 在sklearn中,PCA的实现非常简单,可以通过导入sklearn.decomposition模块中的PCA类来使用。首先,需要创建一个PCA对象,并将希望降维的维度作为参数传入。然后,通过调用fit()方法,将原始数据传入进行训练。之后,可以使用transform()方法将原始数据转化为降维后的数据。 除了降维之外,PCA还可以用于可视化高维数据。通过将数据投影到二维或三维空间中,可以更好地理解数据集的结构和特征之间的关系。 在实际应用中,PCA有着广泛的应用。例如,在图像处理中,可以使用PCA压缩图像的维度,减少存储空间和计算复杂度。在人脸识别中,可以使用PCA降维来提取有效的特征,提高识别的准确性。同时,在数据预处理中,PCA也常用于去除数据中的冗余特征,以提高模型的训练效果。 总之,sklearn中的PCA提供了一个简单易用的方式来进行数据降维和可视化。它在机器学习任务中发挥着重要的作用,能够提高模型的性能,并帮助我们更好地理解数据集。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值