PCA算法个人总结

本文介绍了降维技术的重要性,包括PCA、因子分析和独立成分分析。重点讲述了PCA的原理,如何通过数据的协方差矩阵及特征值计算主成分,并提供了一段PCA算法的伪代码。接着,通过一个半导体制造数据的例子,展示了PCA在处理高维数据并降低计算复杂度方面的效果,分析表明保留前6个主成分即可捕获96.8%的方差。
摘要由CSDN通过智能技术生成

降维技术

由于之前我们所分析的数据都只有两维,而在实际生活中我们获取到的数据不仅如此。有时候我们会展示三维图像或者只显示其相关特征,但是数据往往会有许多的特征。数据显示并非是大规模数据下的唯一难题,对数据进行化简还有以下原因:

  • 使得数据集更容易使用
  • 降低很多算法的计算开销
  • 去除噪声
  • 使得结果更易懂

下面介绍几种常用的降维技术:

  1. 主成分分析(PCA)。在PCA中,数据从原来的坐标系转换到了新的坐标系,新坐标系的选择是由数据本身决定的。第一个新坐标轴选择的是原始数据方差最大的方向,第二个新坐标的选择和第一个坐标正交且具有最大方差的方向。该过程一直重复,重复次数为原始数据中特征的数目。我们可以看到大部分的方差都包含在前几个新坐标轴中。因此我们可以忽略余下的坐标,即对数据进行了降维处理。
  2. 因子分析。在因子分析中,我们假设在观察数据的生成中有一些观察不到的隐变量。假设观察数据是这些隐变量和某些噪声的线性组合。那么隐变量的数据可能会比观察数目的数据少,就是说可以通过找到隐变量就可以实现数据的降维。
  3. 独立成分分析(ICA)。ICA假设数据是从N个数据源生成的,这一点和因子分析有些类似。假设数据为多个数据的混合观察结果,这些数据之间在统计上是相互独立的,而在PCA中只假设数据是不相关的。同因子分析一样,如果数据源的数目少于观察数据的数目,则可以实现降维。

在上述三种降维办法中,PCA的使用最为广泛,下面主要介绍PCA的实现技术。

PCA

根据上面的介绍,PCA中第一个主成分是从数据集差异性最大的方向提取出来的,第二个主成分则来自于数据差异性次大的方向,并且与第一个主成分方向正交。通过数据集的协方差矩阵及其特征值分析,我们就可以求得这些主成分的值。
一旦得到了协方差矩阵和特征向量,我们就可以保留最大的N个值。这些特征向量也给出了N个最重要的特征的真实结构。我们可以通过数据乘上这N个特征向量而将它转换到新的空间。

算法实现

将数据转换成前N个主成分的伪代码如下:

去除平均值
计算协方差矩阵
计算协方差矩阵的特征值和特征向量
将特征值降序排列
保留前N个特征向量
将数据转换到上述N个特征向量构建的新空间中

具体的代码实现如下:

def pca(dataMat,topN=9999999):
    '''
    :param dataMat: 原始数据集
    :param topN: 获取前N个最大特征向量
    :return: 降维后的数据集和原始数据重构后的数据
    '''
    meanVals
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值