文档章节

主成分分析(PCA)中的误差表示

JiaMing
 JiaMing
发布于 2015/03/17 01:33
字数 1328
阅读 1411
收藏 2
点赞 0
评论 0

给定nm维样本(1), X(2),…,X(n),假设我们的目标是将这n个样本从m维降低到k维,并且尽可能保证这种降维的操作不会产生很大的代价(重要信息的丢失)。换句话说,我们要把n个样本点从m维空间投影到k维空间。对于每一个样本点,我们都可以用下式表示此投影过程:

 

        Z=ATX                                                                       (1)

其中Xm维样本点, Z 是投影后得到的k维样本点,A是一个 m * k 的矩阵。

 

回顾一下,如果采用主成分分析法(PCA)来进行降维的话,我们首先求出样本的均值:

再求出散布矩阵(scatter matrix):

接着求得散布矩阵Sk大特征值所对应的特征向量s1,s2,…,sk,然后对s1,s2,…,skk个向量进行单位化,即使得||s1||=||s2||=…=||sk||=1,最后得到式(1)中的矩阵A

                                                                                                                (2)

 

例子: 为了更直观地从几何上理解式(1)的含义,我们以一组2维数据作为例子,在这个例子当中,我们使用PCA的方法将这组2维数组降到1维。矩阵A所存储的这些特征向量,实际上降维后的是新坐标轴,而在这个例子当中,我们得到的是一个新的1维坐标轴。如图1所示,图中的红色叉点代表2维样本点垂直投影到这个新坐标轴上的点。对于每一个2维空间上的样本点X,只要我们将它代入式(1)就可以计算出其降维后的表达(在这个例当中,则是一个1维的向量,即一个值):

                                                 (3)

 

      

                                            图1  10个样本点在2维空间上的表达


而式(3)算出来的这个值,实际上是这些投影点离原点的距离。因此,我们可以画出一个数轴来表示这个新的坐标轴,再根据式(3)算出来的这些值,在数轴上标出它们的位置,如图2所示。

       

                                           图2  10个样本点降到1维空间后的表达

这一组样本点降维后所产生的损失,可以通过下式来计算:

                                                                                             (4)

为了理解式(4),我们首先需要理解AATX(i)。回顾刚刚所说的,计算ATX(i)所得到的,实际上是样本点在低维空间上的表达(参考图2)。相对而言,X(i)是样本点在高维空间上的表达。然而,我们知道不同纬度空间的点是无法做比较的,举例来说,一个在2维空间上的点(x1, x2)是无法跟一个在1维空间上(y1)的点做比较的,因为它们纬度不一样(它们的所存在的世界不一样,它们不在同一个世界里)。

 

为了对2个不同纬度的样本点作比较,我们需要将它们放在同一个纬度空间下。一种合理的做法是,将低维空间上的点投影到高维空间,并假设高纬度的值为0。AATX(i)所做的工作就是把降维后的样本点反投影到高维空间上。以刚刚所举的例子来说,ATX(i)是图2上的叉点,而AATX(i)实际上是图1中直线(新坐标轴)上的叉点。

      值得注意的是,图2和图1上的这些叉点是一一对应的,无论在高维空间上还是在低维空间上,它们离原点的距离是不变的(仔细观察图1和图2中叉点离原点的距离)。我们仍然可以围绕这个例子,从理论上证明这一点,首先假设其中一个样本点 X降维后的表达为 Z=[s1x1+s2x2],那么对它从低维到高维(在此例中,是从1维到2维)的反向投影为:

 

                                                  (5)

 

现在,我们来证明式(5)中的Xapprox所表示的就是图1中的叉点。要证明这一点,我们需要证明两样东西:①Xapprox到原点的距离与Z到原点的距离相等,即||X||=||Z|| ②Xapprox在高维空间的超平面上(在此例中,高维空间是2维空间,低维空间是1维空间,超平面是一条直线)。

 

证明

                      

 

由于s经过单位化,即||s||=s12+s22=1,所以||Xapproax||=(s1x1+s2x2)2=||Z||,证毕.

证明

首先要得到超平面的一般表达式,而要得到超平面的一般表达式,就要计算出超平面所对应的法向量n,在此例中,法向量满足nTs=0,其中sT=[s1, s2]。我们可以得到n=[-s2/s1, 1],则超平面的一般表达式为(-s2/s1)x­1+x2=0。将XapproxT=[s1(s1x1+s2x2), s2(s1x1+s2x2)]代入(-s2/s1)x­1+x2,得到(-s2/s1)*s1(s1x1+s2x2)+s2(s1x1+s2x2)=-s2(s1x1+s2x2)+s2(s1x1+s2x2)=0,说对于任意的Xapprox,都在超平面上,证毕.

回到式(4)当中,L所计算的是每个样本点在高维空间投影到低维空间后的距离总和。

 

 

 

© 著作权归作者所有

共有 人打赏支持
JiaMing
粉丝 8
博文 37
码字总数 13983
作品 0
广州
吴恩达《机器学习》课程总结(14)降维

14.1动机一:数据压缩 将特征进行降维,如将相关的二维降到一维: 三维变二维: 以此类推把1000维数据降成100维数据。 14.2动机二:数据可视化 如50个维度的数据是无法进行可视化的,使用降维...

youaremyall
07/04
0
0
HAWQ + MADlib 玩转数据挖掘之(六)——主成分分析与主成分投影

一、主成分分析(Principal Component Analysis,PCA)简介 在数据挖掘中经常会遇到多个变量的问题,而且在多数情况下,多个变量之间常常存在一定的相关性。例如,网站的“浏览量”和“访客数...

wzy0623
2017/08/03
0
0
Principal Components Analysis

以前对PCA算法有过一段时间的研究,但没整理成文章,最近项目又打算用到PCA算法,故趁热打铁整理下PCA算法的知识。本文观点旨在抛砖引玉,不是权威,更不能尽信,只是本人的一点体会。 主成分...

langb2014
2015/09/15
0
0
【机器学习】主成分(PCA)算法分析

AI 机器学习 - 主成分分析(Principal Compoent Analysis, PCA)。 今天趁下班后看了一会主成分分析算法介绍,其实之前有参加TK同事Machine Learning的系列分享,正好今天看到,现学现卖。 ...

l70ashc3q50
2017/12/18
0
0
人工智障学习笔记——机器学习(11)PCA降维

一.概念 Principal Component Analysis(PCA):主成分分析法,是最常用的线性降维方法,它的目标是通过某种线性投影,将高维的数据映射到低维的空间中表示,即把原先的n个特征用数目更少的m个...

sm9sun
2017/12/09
0
0
Hinton是如何理解PCA?

前言 “深度学习名校课程大全” 里面给出了很多深度学习的课程, 但是说到书的话, 还是推荐 Ian Goodfellow的 “Deep Learning”, 张志华老师带来学生有翻译成中文版本。 里面就提到了Hin...

史春奇
2017/11/14
0
0
PCA、NMF、KNN在实战中的算法解析

我们用一些工具对数据进行降维,看看结果会怎样,PCA(主成分分析—对高维数据降维)会解决这个问题。NMF(非负矩阵分析—对高维数据降维,并且对事物的局部特性有很好的解释)在分解图像时经...

【方向】
2017/12/18
0
0
《Scikit-Learn与TensorFlow机器学习实用指南》第8章 降维

第8章 降维 来源:ApacheCN《Sklearn 与 TensorFlow 机器学习实用指南》翻译项目 译者:@loveSnowBest 校对:@飞龙 很多机器学习的问题都会涉及到有着几千甚至数百万维的特征的训练实例。这不...

wizardforcel
04/19
0
0
论文[基于WiFi信号的人体行为感知技术研究综述]阅读-知识补充

非视距 非视距最直接的解释是,通信的两点视线受阻,彼此看不到对方,菲涅尔区大于50%的范围被阻挡 。 在有障碍物的情况下,无线信号只能通过反射,散射和衍射方式到达接收端,我们称之为非视...

散人lins
04/13
0
0
你见过最全的主成分分析PAC与梯度上升法总结

主成分分析一个非监督学习算法,主要用于数据降维,通过降维可以发现数据更容易理解的特征,其他作用也有可视化、降噪等。 假设现有样本的分布如图。 样本有两个特征,如果对样本进行降维,首...

Chuck_Hu
06/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Tomcat内存设置

第一步骤: 1、路径是Tomcat目录下的/bin/catalina.bat文件 打开catalina.bat文件 加入下面这句代码: set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128M -XX:MaxPermSize=512m 2、路径是...

一梦心草
8分钟前
0
0
IDEA 及 Gradle 使用总结

IDEA 及 Gradle 使用总结 自动编译组件 目前Android开发的主流开发工具是 Eclipse 和 IDEA 目前主流的自动化打包工具时 ant,maven,gradle。 maven工具中有自己的依赖仓库维护,很多开源支持...

舒文joven
8分钟前
0
0
lombok 引入后,测试类始终找不到get,set方法。

开发环境为idea,jdk1.7,maven3.5. 网上直接搜出来的方法有: 1、在setting里安装lombok的plugins; 2、如下图,勾选enable annocation processing选项 3、升级maven plugins插件 我尝试了以...

Kidult
10分钟前
0
0
Duang,HUAWEI DevEco IDE全面升级啦

想感受全新UI带来的视觉及交互体验、 HiKey970开发板调测、 HiAI API推荐和收藏、 深度AI模型分析等新功能, 体验高清晰度和流畅度的远程AI真机调测吗? 全新的UI设计 采用最优秀的视觉及交互...

华为终端开放实验室
19分钟前
0
0
阻止事件冒泡,阻止默认事件

1.event.stopPropagation()方法 这是阻止事件的冒泡方法,不让事件向documen上蔓延,但是默认事件任然会执行,当你掉用这个方法的时候,如果点击一个连接,这个连接仍然会被打开, 2.event....

闫亚亚
21分钟前
0
0
网络监控工具类

package com.guorentong.learn.organ.utils;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.net.ConnectivityManage......

王先森oO
21分钟前
0
0
命令

sudo nginx -s reload 重启nginx sudo lsof -i -P | grep -i "listen" 查看端口占用

那个猴子
25分钟前
0
0
用scrapy-redis爬去新浪-以及把数据存储到

需求:爬取新浪网导航页(http://news.sina.com.cn/guide/)所有下所有大类、小类、小类里的子链接,以及子链接页面的新闻内容。 准备工作: a.安装redis(windows或者linux) b.安装Redis Des...

丁典
25分钟前
0
0
PHP常用函数篇

1.为什么要使用函数? 除了内建的PHP函数,我们可以创建我们自己的函数。 函数是可以在程序中重复使用的语句块。 使代码逻辑更清晰 避免过多的全局变量 封装后避免相同逻辑重复代码,只需调用...

天地有涯风有信_大海无量不见人
26分钟前
0
0
对List分组

在日常工作中会遇到这样的情景,我们需要对List按照List中对象的一个值进行分组。比如一个Human的List,我们要根据性别分组,传统的方法是做双层循环,逐个对比,今天我要介绍一种详单简单的...

珂jack
28分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部