zoukankan      html  css  js  c++  java
  • 主成分分析PCA与核主成分分析KPCA

    来源:http://blog.travel.ifeng.com/article/15992868.html

    主成分分析的经典图像如下

    直观的解释就是,在长箭头方向上,数据点要比短箭头方向上分散。如果用长箭头的方向来区分样本点,基本上就能代表长短两个方向。那么我们就可以用长箭头作为分类、回归或者聚类的标准。上面例子中,维度从2(长短两个箭头)降到了1(长箭头)。
     
    这里边箭头长短就是数据点在这个分量上的方差,设想一个数据点有很多维,我们就可以通过计算每一维的方差,然后从小到大排列这些方差,计算累计方差贡献,就可以从大到小选择方差大的维。例如对于8维的数据,使用前2维就能得到90%以上的方差,这样的PCA效果就极好,同样对于8维的数据,采用前4维仅能得到60%的方差,PCA效果就不太好(这句话中的数据就是个形象的对比,不必认真)。
     
    下一个问题就是如何将原始的数据投影到新的坐标上。因为低维的坐标下,坐标值实际上是原坐标系中坐标值的线性组合(代数不愧是数学三大基础之一,另外两个是几何和分析),因此需要得到变换矩阵的特征向量。这个通过简单的运算就可以进行,计算出来这些线性组合,就完成了坐标投影。因为使用矩阵的幂乘可以依次得到特征向量,所以可以不用对矩阵进行特征值分解,这样在矩阵很大的时候就可以降低运算的复杂度。
     
    那么什么情况会导致变换矩阵很大呢?当然是拜核方法(Kernel Trick)所赐了。核方法能够通过升维将非线性的数据变为线性,从而解决了部分的非线性问题。常见的核有多项式核、径向基函数核、sigmoid核等等。数据的维度高了,变换矩阵自然就大了。
     
    参考:
    基于核主成分分析的特征提取方法,韦振中
    基于核函数的主成分分析及应用,吴今培
    一种解决大规模数据集问题的核主成分分析算法,史卫亚等
  • 相关阅读:
    Python进程、线程
    Maven项目的坐标GroupId和ArtifactId
    java中的变量
    java中new一个对象的执行过程及类的加载顺序
    java中string和int互相转化
    什么是设计模式?
    Mybatis解决了JDBC编程哪些问题
    SQL注入、占位符拼接符
    JDBC、事务和连接池
    关于Spring配置文件xml文档的schema约束
  • 原文地址:https://www.cnblogs.com/xiaoming123abc/p/5830631.html
Copyright © 2011-2022 走看看