让你惊艳的PCA
来源:互联网 发布:多管火炮升级数据 编辑:程序博客网 时间:2024/04/27 18:18
我一直误以为自己记述了这个历程,今天翻开博客发现竟然没有任何记录。事情从很早前的一个失眠的夜晚说起,一个数据集假设有d个特征属性,但是我想使用d’ < d个特征属性来尽可能的表示这个特征,那我要怎么做,那么我如何尽可能多的保留原始数据的信息呢。暂且以二维数据d=2为例,后面会扩展到多维d > 2。
如下图所示,这些二维的数据,可以通过两个坐标轴的数值完完全全的反映数据的信息。那么我能不能通过一个数值完完全全反映一个二维数据的信息呢,肯定是不行的。这时候会想到,这些数据在某一个方向上面十分集中,而在另一个方向上十分离散,集中的方向反映了这些数据的共性,离散的方向反映数据的特异性,假如把数据映射到这两个方向上,也就是映射到了一个新的二维空间,新的二维空间中,一个坐标的值代表了特异性,一个坐标代表共性。当然要求这两个坐标是互相垂直的。
使用两条垂直的直线来代表这两个坐标的方向,line1:w1*x = 0,line2: w2 * x = 0,w1 * w2 = 0。从这两个直线的定义可以知道这两条直线全部过原点,我们要找的是直线所在的方向,跟直线没有关系,为了尽可能用少的变量来表示这两条直线,那就找那两条过原点的直线吧。
点x在line1直线上投影距离原点的距离是多少呢,line1的法向量是w1,方向向量肯定是w2了, |w2*x|/||w2||, 当然x到line2直线上投影距离原点的距离就是 |w1 * x|/||w1||, 其实到在直线上的投影到原点的距离也就是在新空间的两个坐标值,假设||w1|| = ||w2|| = 1,这个作为约束项,好求得唯一的一组w1 w2。 不妨假设line1是表示特异性的坐标轴,line2表示的是共性坐标轴,我们的目标是 min( |w1 * x|/||w1|| - ave1)2的同时max (|w2 * x|/||w2|| - ave2)2,ave1表示的是 所有数据在line2上面坐标的均值。其实目标就是在共性上面希望方差最小,在特异性方向上希望方差最大。如果数据集X在各个属性上是经过归一化处理的统一减去均值,那么ave1、ave2就会等于0。此时就变成了
min(w1XX’w1’)且max (w2XX’w2’),||w1|| = ||w2|| = 1。
这时候求得的结果就会是我们想要的结果。但是对于两个目标一个约束条件显得手足无措,如何求解w1和w2呢。
但是无论如何去求,我们得到的w1和w2必定是目标函数对其求偏导并等于0得来的结果。
下面就用笔算代替吧,这样编辑着实在费时间,还不容易描述清楚。一个简单的降维想法,无意中竟然发现与PCA完全吻合,当时的我感到无比惊奇,今天看周志华的机器学习西瓜书的时候,在介绍PCA的过程中回想起了以往的推导,可能PCA出现的一个原因就是这个吧。
下面是引入核技巧的Kernel PCA
在这个地方,我不太确定,之所以这么写是在台大林轩田教授课程里面讲到当最优化的目标里面包含W二次范式的时候,W就可以用所有样本线性表示,详细原因个人能力有限,尚不清楚。我们最优化的式子里面没有明显的W二次范式,但是有Wi*Wi * Aij的累加,所以在这里假设这种条件下,W也可以用样本的线性组合来表示。(日后会完善这个地方)
从上面的结论可以看出,引入和技巧之后,变化不过是原来的解是d*d(样本维度)矩阵的特征值和特征向量,引入核技巧的解释m * m(m是样本数量)矩阵特征值和特征向量的解。(翻开书验证了一下结论,自己得出的结果没错,捏了一把冷汗)。其实学习的过程,不是看了多少,想了多少更重要。
- 让你惊艳的PCA
- 500年一遇的惊艳
- Crazy!惊艳的bash
- 15种CSS混合模式让图片产生令人惊艳的效果
- 准新人不可错过:让婚纱照惊艳的七个小秘密
- C++基础——tricks,让人惊艳的那些代码
- 理解C# 4 dynamic(4) – 让人惊艳的Clay
- 惊艳的“学长帮我修电脑” VS “我想作你的下一行code”
- KOOCAN的影视资讯——那些惊艳到你的女鬼
- 算法之美---100幅由程序生成的图像,总有一幅让你感到惊艳[上]
- 20个小技巧教你设计惊艳的三折页[…
- 关于一小时前惊艳亮相的Tesla Semi卡车,你需要知道得更多
- 有哪些算法惊艳到了你?
- 貌不惊人,但味道一定惊艳你
- 那些惊艳死人的句子
- 惊艳的D3图表效果
- 唯美的古风句子 惊艳。。。。。
- 一组惊艳的NodeJs包
- redis集群
- 软考新思维--2017年上半年信息系统项目管理师上午试题分析与答案(试题6-10题)
- spring+mybatis启动NoClassDefFoundError异常分析三部曲之一:稳定重现问题
- Leetcode Week16
- SonicOperator之傅里叶变换9
- 让你惊艳的PCA
- 当我们说到maven(sbt)等项目管理工具时,到底在说啥?
- request和response的setCharacterEncoding()方法
- gradle离线安装包
- 整数排序
- PB 数据窗口导出PDF,同一个数据窗口多次调用保存方法,合并到一个PDF中
- SonicOperator之傅里叶变换10
- 29---iptables 原理与应用
- 安卓学习网站和资源