PCA与Kernel PCA介绍与对比

1. 理论介绍

  PCA:是常用的提取数据的手段,其功能为提取主成分(主要信息),摒弃冗余信息(次要信息),从而得到压缩后的数据,实现维度的下降。其设想通过投影矩阵将高维信息转换到另一个坐标系下,并通过平移将数据均值变为零。PCA认为,在变换过后的数据中,在某一维度上,数据分布的更分散,则认为对数据点分布情况的解释力就更强。故在PCA中,通过方差来衡量数据样本在各个方向上投影的分布情况,进而对有效的低维方向进行选择。

  KernelPCA:是PCA的一个改进版,它将非线性可分的数据转换到一个适合对齐进行线性分类的新的低维子空间上,核PCA可以通过非线性映射将数据转换到一个高维空间中,在高维空间中使用PCA将其映射到另一个低维空间中,并通过线性分类器对样本进行划分。

  核函数:通过两个向量点积来度量向量间相似度的函数。常用函数有:多项式核、双曲正切核、径向基和函数(RBF)(高斯核函数)等。

2. 技术实现

  (1)在KernelPCA中,这个问题同样是求特征向量的问题,只不过目标矩阵是经过核变换之后的协方差矩阵;与前相同,这个问题解决的实质还是要求C矩阵的特征向量,但对C求特征向量的过程较为复杂,经过了几次矩阵变化,先求得与核变换有关的矩阵K 的特征向量a,再通过变换方程与a的点乘得到协方差矩阵的特征向量v。

  (2)Kernel版的PCA思想是比较简单的,我们同样需要求出Covariance matrix C,但不同的是这一次我们要再目标空间中来求,而非原空间。

如果令,则Φ(i)表示i被映射到目标空间后的一个列向量,于是同样有

C和XTX具有相同的特征向量。但现在的问题是Φ是隐式的,我们并不知道。所以,我们需要设法借助核函数K来求解XTX。

因为核函数K是已知的,所以XXT是可以算得的。

  (3)扼要总结如下:

Solve the following eigenvalue problem:

The projection of the test sample Φ(xj) on the i-th eigenvector can be computed by

所得之vTi·Φ(xj)即为特征空间(Feature space)中沿着vi方向的坐标。

  (4)最后我们给出的是一个KPCA的例子。其中左图是用传统PCA画出的投影。右图是在高维空间中找到投影点后又转换回原空间的效果。可见,加了核函数之后的PCA变得更加强大了。

具体推法:https://blog.csdn.net/zhangping1987/article/details/30492433

【模式识别与机器学习】——PCA与Kernel PCA介绍与对比的更多相关文章

  1. Probabilistic PCA、Kernel PCA以及t-SNE

    Probabilistic PCA 在之前的文章PCA与LDA介绍中介绍了PCA的基本原理,这一部分主要在此基础上进行扩展,在PCA中引入概率的元素,具体思路是对每个数据$\vec{x}_i$,假设$ ...

  2. K-means聚类算法的三种改进(K-means++,ISODATA,Kernel K-means)介绍与对比

      一.概述 在本篇文章中将对四种聚类算法(K-means,K-means++,ISODATA和Kernel K-means)进行详细介绍,并利用数据集来真实地反映这四种算法之间的区别. 首先需要明确 ...

  3. Kernel PCA 原理和演示

    Kernel PCA 原理和演示 主成份(Principal Component Analysis)分析是降维(Dimension Reduction)的重要手段.每一个主成分都是数据在某一个方向上的 ...

  4. 四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

    四大机器学习降维算法:PCA.LDA.LLE.Laplacian Eigenmaps 机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中.降维的本质是学习一个映 ...

  5. Kernel Methods (5) Kernel PCA

    先看一眼PCA与KPCA的可视化区别: 在PCA算法是怎么跟协方差矩阵/特征值/特征向量勾搭起来的?里已经推导过PCA算法的小半部分原理. 本文假设你已经知道了PCA算法的基本原理和步骤. 从原始输入 ...

  6. 机器学习(4)——PCA与梯度上升法

    主成分分析(Principal Component Analysis) 一个非监督的机器学习算法 主要用于数据的降维 通过降维,可以发现更便于人类理解的特征 其他应用:可视化.去噪 通过映射,我们可以 ...

  7. 机器学习笔记簿 降维篇 PCA 01

    降维是机器学习中十分重要的部分,降维就是通过一个特定的映射(可以是线性的或非线性的)将高维数据转换为低维数据,从而达到一些特定的效果,所以降维算法最重要的就是找到这一个映射.主成分分析(Princip ...

  8. Robust De-noising by Kernel PCA

    目录 引 主要内容 Takahashi T, Kurita T. Robust De-noising by Kernel PCA[C]. international conference on art ...

  9. Kernel PCA and De-Noisingin Feature Spaces

    目录 引 主要内容 Kernel PCA and De-Noisingin Feature Spaces 引 kernel PCA通过\(k(x,y)\)隐式地将样本由输入空间映射到高维空间\(F\) ...

随机推荐

  1. 《你还在写sql语句吗?》人生苦短,进入MybatisPlus的丝滑体验

    一.发展历程 依稀记得大学期间,类中写sql语句的日子,一个sql语句占据了大部分时间,到后来hibernate的出现算是解决了这一痛点.工作 后,我们又接触到了mybatis这样的框架,瞬间感觉这个 ...

  2. “我放弃了年薪20万的offer…”

    最近身边朋友换工作.转型的越来越多.爬到一定高度,或者说到了一定年龄,每个选择都显得尤为重要.不仅因为高昂的机会成本,还有大家对后续规划的多重考虑.有一个说法你可能听过:混职场,要拥有不可替代的能力. ...

  3. Ethical Hacking - POST EXPLOITATION(4)

    PIVOTING Use the hacked device as a pivot. Try to gain access to other devices in the network. Tool: ...

  4. NVIDIA GPU Volta架构简述

    NVIDIA GPU Volta架构简述 本文摘抄自英伟达Volta架构官方白皮书:https://www.nvidia.com/content/dam/en-zz/Solutions/Data-Ce ...

  5. scratch编程我的世界3D史蒂夫

    这个程序我们只能制作出一个3D模型而已,并不是真正的我的世界整个游戏: 效果很炫酷吧!现在我们就来看看是怎样编程的吧! 首先,这个模型是有无数个平面克隆体摞在一起,旋转后会产生一种立体的错觉,是不是有 ...

  6. python 中文乱码 list 乱码处理

    list 乱码 data_list = ["中文"] print str(data_list).decode("string_escape") mysql 获取 ...

  7. OceanBase安装和使用

    链接 https://mp.weixin.qq.com/s?spm=a2c6h.12873639.0.0.41f92c9bH5FL2Y&__biz=MzU3OTc2MDQxNg==&m ...

  8. Python爆火的原因与未来|内附Python学习书籍大礼包无偿领取|

    从12年到20年,python以肉眼可见的趋势超过了java,成为了当今It界人人皆知的编程语言. python为什么这么火? 网络编程语言搜索指数 适合初学者 Python具有语法简单.语句清晰的特 ...

  9. Python os.fpathconf() 方法

    概述 os.fpathconf() 方法用于返回一个打开的文件的系统配置信息.高佣联盟 www.cgewang.com Unix上可用. 语法 fpathconf()方法语法格式如下: os.fpat ...

  10. PHP defined() 函数

    实例 检查某常量是否存在: <?phpdefine("GREETING","Hello you! How are you today?");echo de ...