核PCA投影平面公式推导
样本方差推导
样本方差公式\[S = \frac{1}{n-1}\sum_{i=1}^n(x_i-\mu_i)^2\]
扩展开来得到\[S = \frac{1}{n-1}[(X-\frac{1}{n}X^TI_nI_n^T)^T(X-\frac{1}{n}X^TI_nI_n^T)]\]
\[S = \frac{1}{n-1}X^T(I_n - \frac{1}{n}I_nI_n^T)(I_n - \frac{1}{n}I_nI_n^T)X\]
令\(H = I_n - \frac{1}{n}I_nI_n^T\)得\[S = \frac{1}{n-1}X^THX\]
其中H为等幂矩阵HH=H和中心矩阵\(H_n*I_n = 0\)
核PCA推导
核函数:设X是输入空间(\(R^n\)的子集或离散子集),又F为特征空间(希尔伯特空间),如果存在一个从X到F的隐射\[\phi (X):X -> F\]使得对所有x,z\in X,函数K(x,z)满足条件\[K(x,z) = \phi (x)\bullet \phi (z)\]
下面推导F投影到的主成分定义的平面,根据F样本方差的特征值分解得(为推导方便去掉前面的(\(\frac{1}{n-1}\))\[F^THFV_i = \lambda _i V_i\]由于H为等逆矩阵,则\[F^THHFV_i = \lambda _i V_i\]
由于想得到F很难,我们换一种思路将求F转移求K上,根据AA^T与A^TA的关系:非零特质值相同,得到\[HFF^THU_i = \lambda _iU_i \]
两边同时乘以\(F^TH\)得到\[F^THHFF^THU_i = \lambda _iF^THU_i\]
从上式可以得到\(F^THU_i\)为\(F^THHF\)的特征向量
将\(F^THU_i\)进行归一化\[U_{normal} = \frac{F^THU_i}{{||U_i^THFF^THU_i||}_2}\]
由于\(HFF^TH = HKH = \lambda _i\),则\[U_{normal} = \lambda ^{-\frac{1}{2}}F^THU_i\]
F投影到\(U_normal\)定义的平面\[P = F_{center} U_{normal}\]
\[P= (F-\frac{1}{n}\sum_{i=1}^nF_i)(\lambda ^{-\frac{1}{2}}F^THU_i)\]
\[P= (F-\frac{1}{n}F^TI_n)(\lambda ^{-\frac{1}{2}}F^THU_i)\]
\[P= \lambda ^{-\frac{1}{2}}(K - \frac{1}{n}K(x,x_i))HU_i\]
核PCA投影平面公式推导的更多相关文章
- PRML读书会第十二章 Continuous Latent Variables(PCA,Principal Component Analysis,PPCA,核PCA,Autoencoder,非线性流形)
主讲人 戴玮 (新浪微博: @戴玮_CASIA) Wilbur_中博(1954123) 20:00:49 我今天讲PRML的第十二章,连续隐变量.既然有连续隐变量,一定也有离散隐变量,那么离散隐变量是 ...
- Python机器学习:5.6 使用核PCA进行非线性映射
许多机器学习算法都有一个假设:输入数据要是线性可分的.感知机算法必须针对完全线性可分数据才能收敛.考虑到噪音,Adalien.逻辑斯蒂回归和SVM并不会要求数据完全线性可分. 但是现实生活中有大量的非 ...
- 核PCA与PCA的精髓和核函数的映射实质
1.PCA简介 遭遇维度危机的时候,进行特征选择有两种方法,即特征选择和特征抽取.特征选择即经过某种法则直接扔掉某些特征,特征抽取即利用映射的方法,将高维度的样本映射至低维度.PCA(或者K-L变换) ...
- 机器学习基础与实践(三)----数据降维之PCA
写在前面:本来这篇应该是上周四更新,但是上周四写了一篇深度学习的反向传播法的过程,就推迟更新了.本来想参考PRML来写,但是发现里面涉及到比较多的数学知识,写出来可能不好理解,我决定还是用最通俗的方法 ...
- 模式识别(1)——PCA算法
作者:桂. 时间:2017-02-26 19:54:26 链接:http://www.cnblogs.com/xingshansi/articles/6445625.html 声明:转载请注明出处, ...
- 机器学习算法总结(九)——降维(SVD, PCA)
降维是机器学习中很重要的一种思想.在机器学习中经常会碰到一些高维的数据集,而在高维数据情形下会出现数据样本稀疏,距离计算等困难,这类问题是所有机器学习方法共同面临的严重问题,称之为“ 维度灾难 ”.另 ...
- 【资料收集】PCA降维
重点整理: PCA(Principal Components Analysis)即主成分分析,是图像处理中经常用到的降维方法 1.原始数据: 假定数据是二维的 x=[2.5, 0.5, 2.2, 1. ...
- 核方法(Kernel Methods)
核方法(Kernel Methods) 支持向量机(SVM)是机器学习中一个常见的算法,通过最大间隔的思想去求解一个优化问题,得到一个分类超平面.对于非线性问题,则是通过引入核函数,对特征进行映射(通 ...
- PCA降维2
前言 本文为模式识别系列第一篇,主要介绍主成分分析算法(Principal Component Analysis,PCA)的理论,并附上相关代码.全文主要分六个部分展开: 1)简单示例.通过简单的例子 ...
随机推荐
- Python3.x:Linux下退出python命令行
Python3.x:Linux下退出python命令行 退出命令: quit() #或者 exit() #或者 Ctrl-D
- 跳出弹窗页面禁止滚动(PC端和手机端)
pc端如何实现 1.当弹窗显示时,为body元素添加属性:overflow:hidden, 当关闭弹窗时移除该属性即可2.在弹窗的div上设置 @scroll.stop.prevent 3.前端页面弹 ...
- python——动态类型简介
动态类型简介 类型属于对象,而不是变量 每一个对象都有两个标准的头部信息:类型标志符和引用计数器. 对象的垃圾收集,就是通过引用计数器实现的.可以在脚本中任意使用对象而不需要考虑释放内存空间. 循环饮 ...
- Kotlin 取 MAC 地址
package com.example.ybs.myapplication import android.annotation.SuppressLint import android.net.wifi ...
- php数组元素去空,测试奇数偶数
<?php//返回奇数 function test_odd($var) { return($var & 1); } $a1=array("a","b&quo ...
- RabbitMQ初体验
这里官方使用的Pom是4.0.2版本 <dependencies> <dependency> <groupId>com.rabbitmq</groupId&g ...
- 关于Android中根据ID名动态获取资源的两个方法
在开发中, 我们习惯了类似下面这种方式去实现引用资源: context.getResources().getDrawable(R.drawable.flower); 但是,当我们提前知道这个资源的id ...
- struts2提交文件时,出现页面重置又无法返回input现象,我没有解决这个问题
查看资料得知,是因为我使用的tomcat是8的原因,调整到6就可以了.但我没有改变Tomcat的版本,不知道该怎么解决这个问题.
- srm开发(基于ssh)(3)
联系人管理 (1)客户和联系人一对多配置(重点) (2)新增联系人 -新增功能实现 -Struts2实现文件上传 (3)联系人列表 -no session问题 (4)客户和联系人级联删除 联系人管理模 ...
- java reflect反射---Java高级开发必须懂的
理解反射对学习Java框架有很大的帮助,如Spring框架的核心就是使用Java反射实现的,而且对做一些Java底层的操作会很有帮助. 一.Class类的使用 1.万事万物皆对象,( ...