PCA降维原理和作用

降维的作用

①数据在低维下更容易处理、更容易使用;
②相关特征,特别是重要特征更能在数据中明确的显示出来;如果只有两维或者三维的话,更便于可视化展示;
③去除数据噪声
④降低算法开销

降维通俗点的解释

一些高维度的数据,比如淘宝交易数据,为便于解释降维作用,我们在这假设有下单数,付款数,商品类别,售价四个维度,数据量上百万条,对于下单数和付款数,我们可以认为两者是线性相关的,即知道下单数,我们可以得到付款数,这里很明显这两个属性维度有冗余,去掉下单数,保留付款数,明显能再保证原有数据分布和信息的情况下有效简化数据,对于后面的模型学习会缩短不少时间和空间开销。这就是降维,当然并不是所有数据中都会有过于明显线性相关的属性维度,我们降维后最终的目标是各个属性维度之间线性无关。

PCA降维步骤原理*

首先既然要度量那些是否存在相关的属性,我们就要用到协方差,在博客相关分析中有介绍,这里不再赘述,协方差衡量的是2维属性间的相关性,对于n个维度的属性,就需要协方差矩阵,其对角线为各维度的方差。

步骤:

                   设有m条n维数据。

                  1)将原始数据按列组成n行m列矩阵X

                  2)将X的每一行(代表一个属性字段)进行零均值化,即减去这一行的均值

                  3)求出协方差矩阵

                  4)求出协方差矩阵的特征值及对应的特征向量r

                  5)将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P

                  6)即为降维到k维后的数据

关于维数k的选择*

使用一个公式error=,表示压缩后的误差,m所有特征的个数,然后确定一个阈值x,比如0.01,选取一个K,使得error < x则我们认为这个m可以接受,否则尝试其他.

     from sklearn.decomposition import PCA
        import numpy as np
        from sklearn.preprocessing import StandardScaler
         
        x=np.array([[10001,2,55], [16020,4,11], [12008,6,33], [13131,8,22]])
         
        # feature normalization (feature scaling)
        X_scaler = StandardScaler()
        x = X_scaler.fit_transform(x)
         
        # PCA
        pca = PCA(n_components=0.9)# 保证降维后的数据保持90%的信息
        pca.fit(x)
        pca.transform(x)

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
高光谱数据是指由大量波段组成的数据集,每个波段对应一个能量值。由于波段数量较多,高光谱数据通常具有高维特征,给数据处理和分析带来了困难。PCA(Principal Component Analysis,主成分分析)是一种常用的降维方法,可以应用于高光谱数据。 PCA通过找到数据中最具信息量的主成分,将高维数据映射到低维空间,从而实现数据的降维PCA的具体步骤如下: 1. 对高光谱数据进行标准化处理,使得每个波段的均值为0,方差为1,以消除各个波段之间的尺度差异。 2. 计算协方差矩阵,该矩阵反映了数据中各个波段之间的相关关系。 3. 对协方差矩阵进行特征值分解,得到特征值和对应的特征向量。特征向量表示了数据中的主成分或主要变化方向,而特征值则表示了特征向量的重要程度。 4. 根据特征值的大小,选择前k个最大的特征值对应的特征向量作为主成分。这些主成分能够有效地保留原始数据集中的大部分信息。 5. 将原始高维数据通过与选取的主成分相乘的方式,映射到低维空间。 通过PCA降维,可以减少高光谱数据中的噪声和冗余信息,提取出数据中最具代表性的特征,降低了数据复杂性。降维后的数据集可以在保持较高信息量的同时,减少计算和存储的开销,并且可以更便捷地进行后续的数据处理、分析和可视化。 总之,高光谱数据的PCA降维可以帮助我们从各个波段的维度中提取主要成分,减少数据的维度,从而方便后续的分析和应用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值