一.PCA

在讲PCA之前,首先有人要问了,为什么我们要使用PCA,PCA到底是干什么的?这里先做一个小小的解释,举个例子:在人脸识别工作中一张人脸图像是60*60=3600维,要处理这样的数据,计算量肯定很大,为了能降低后续计算的复杂度,节约时间,我们在处理高维数据的时候,在“预处理”阶段通常要先对原始数据进行降维,而PCA就是做的这个事。本质上讲,PCA就是讲高维的数据通过线性变换投影到低维空间上去,这个投影可不是随便投投,我们要找出最能代表原始数据的投影方法,亦即不失真,可以这么理解,被PCA降掉的那些维度只能是那些噪声或者是冗余数据。

下面就先讲一下PCA算法的主要过程:

主成分分析(Principal Component Analysis,PCA),是寻求有效的线性变换的经典方法之一,它的目的是在最小均方意义下寻找最能代表原始数据的投影方向,从而达到对特征空间进行降维的目的。

这里,我们首先做一些简单的定义。对于一个人脸样本集,模式类别有C个:ω1,ω2,...,ωc,第i类有训练样本ni个:ξi1,ξi2,...,ξim,每个样本是m*n向量。

1.把所有的图像矩阵按列进行列向量化;

首先,什么是向量化矩阵呢?我们定义A=(A1,A2,...,Am)€Rm*n,定义mn*1的向量

这里,样本图像构成一个m*n的图像矩阵 I,可以将图像矩阵 I转化为mn*1的图像向量ξ,即ξ=Vec(I)。

2.计算平均列向量,列向量中心化;

第i类训练样本的均值为:

设训练样本个数为N,则全体训练样本的均值为:

3.计算协方差矩阵S;

类间散布矩阵为:

这里,P(wi)是第i类样本的先验概率。简单解释一下,例如我们又2个类,第一个类有40个样本,第二个类有60个样本,那么

P(1)=40/(40+60)=0.4

P(2)=60/(40+60)=0.6

我们可以知道St的实际意义是一个协方差矩阵,这个矩阵所刻画的是该类与样本总体之间的关系,其中该矩阵对角线上的函数所代表的的是该类相对样本总体的方差(即分散度),而非对角线上的元素所代表的是该类样本总体均值的协方差(即该类和总体样本的相关联度或称冗余度)。

4.计算写协方差矩阵S的特征值和特征向量,保留d个最大的特征值,以及这d个特征值所对应的特征向量,且要把这些特征向量正交标准化,从而就构成了新的子空间的基矩阵;

定义准则函数:

J(X)=XTS1X

最大化该准则函数的单位向量X称为最优投影向量,其物理意义是:图像向量在X方向上投影后得到的特征向量的总体散度程度最大。事实上,该最优投影向量即为类间散步矩阵S1的最大特征值所对应的单位特征向量。一般来说,在样本类别数较多的情况下,单一的投影方向是不够的,需要寻找一组满足标准正交条件且极大化准则函数的最优投影向量X1,X2,...,Xd。

最优投影向量组X1,X2,...,Xd,可取为S1的d个最大特征值所对应的标准正交的特征向量。

令W=[X1,X2,...,Xd],W€Rm*n称为最优投影矩阵。

5.将训练样本和测试样本投影到这个子空间上,然后我们选择合适的分类器和相异度测试公式对测试样本进行分类。

最优投影向量组X1,X2,...,Xd可用于特征提取。对已知的样本图像向量ξ,令:

Y=XkTξ(k=1,2,...,d)

投影特征X1,X2,...,Xd称为向量ξ的主成分(Principal component),利用获得的主成分可构成ξ的d维的特征向量B=[Y1,Y2,...,Yd]T,即B=WTξ。

6.分类

接下来就是分类了,对于一个测试样本,我们寻找投影后它跟哪些训练样本投影后靠得比较近,那么我们就可以把他们归于一类。

常用的分类方法有最近邻法,最小距离法,这里就不做介绍了。

好了,终于讲完了PCA算法的主要过程,但是估计还会有人问为什么只提取特征值较大的几个特征值对应的特征向量就可以近似代替原样本矩阵呢?其实我们知道了矩阵的特征值和特征向量的数学意义,这个问题就很好解释了。

以二维矩阵A=[1 0;0 0.01]为例,容易得到A的两个特征值λ1=1,e1=[1 0]T,λ2=0.01,e2=[0 1]T,那么x=[2 3]T经过A变换为Bx=[2 0.03]T,如果我们认为λ2太小忽略掉时,Bx≈[2 0]T。

例如,平面上一个短轴远小于长轴的椭圆,那么椭圆上的点在短轴上的分布明显弱于长轴,我们可以认为他近似于一条直线,也就是说我们用PCA降掉了短轴这一维。

二.LDA

线性判别式分析(Linear Discriminant Analysis,LDA),也叫做Fisher线性判别(Fisher Linear Discrininant,FLD),是模式识别的经典算法,它是在1996年有Belhumeur引入模式识别和人工智能领域的。线性鉴别分析的基本思想是将高维的模式样本投影到最佳鉴别矢量空间,以达到抽取分类信息和压缩特征空间维数的效果,投影后保证模式样本在新的子空间(即投影后)具有最大的类间距离和最小的类内距离,也就是说样本在该空间上有最佳的可分离性。

下面,我们就来具体看一下LDA算法的主要步骤:

与PCA不同的是,LDA是有监督学习,需要用到样本类信息,即训练样本是带有类标签的,也就是说我事先知道样本类别。

1.把所有图像矩阵按列进行列向量化;

2.计算平均列向量;

3.列向量中心化;

这3步呢,与PCA一样,都是算法的数据预处理过程,就不做多说了。

4.计算Sb,Sw;

Sb代表类间协方差矩阵:

Sw代表类内协方差矩阵:

St代表总体协方差矩阵:

可以证明St=Sb+Sw。

5.利用Fisher准则计算特征值和特征向量;

Fisher鉴别准则函数定义:

从上式我们可以看出Fisher鉴别准则函数将样本在投影矢量上的类间散度和类内散度结合在一起,为我们确定最优投影方向提供了一个准则。我们选取是的准则函数J(X)达到最大的矢量X作为我们的投影方向,这就是最佳投影向量,这个最佳投影向量的物理意义是:投影后的样本具有最大的类间散度,同时具备最小的类内散度。

6.保留d个最大的特征值,及这d个特征值所对应的特征向量,且要把这些特征向量正交标准化,从而就构成了新的子空间的基矩阵;

在实际应用中经典的Fisher线性鉴别分析最优投影轴族,即最优的投影矩阵W的列向量X1,X2,...,Xd一般取为广义特征方程SbX=λSwX的d个最大的特征值所对应的特征项。即X1,X2,...,Xd满足一下条件:

SbXj=λjSwXj,j=1,2,...,d,其中X1≥...≥Xd

由于SbX=λSwX之多存在C-1个非零特征向量,故最优投影的个数d≤C-1,也就是说若有10类人脸样本,那么d≤9。

注:在PCA算法中,d

7.将训练样本和测试样本投影到这个子空间上,然后我们选择合适的分类器和相异度测试公式对样本进行分类。

这一部分跟PCA一样,就不在累赘了。

缺陷:研究表明,特征脸方法随着光线,角度和人脸尺寸等因素的引入,识别率急剧下降,PCA和LDA提取的特征向量集,强调的是不同人脸差异而不是人脸表情、照明条件等条件的变化,因此特征脸方法用于人脸识别还存在很多缺陷。

本文中有任何问题或漏洞,欢迎不吝指正,谢谢大家!

转载请注明出处:http://www.cnblogs.com/Rosanna/p/3270113.html

PCA与LDA的区别与联系

由于涉及内容较多,这里转载别人的博客: http://blog.csdn.net/sunmenggmail/article/details/8071502 其实主要在于:PCA与LDA的变换矩阵不同, ...

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

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

【转】四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

最近在找降维的解决方案中,发现了下面的思路,后面可以按照这思路进行尝试下: 链接:http://www.36dsj.com/archives/26723 引言 机器学习领域中所谓的降维就是指采用某种映 ...

PCA和LDA降维的比较

PCA 主成分分析方法,LDA 线性判别分析方法,可以认为是有监督的数据降维.下面的代码分别实现了两种降维方式: print(__doc__) import matplotlib.pyplot as ...

matlab 工具之各种降维方法工具包,下载及使用教程,有PCA, LDA, 等等。。。

最近跑深度学习,提出的feature是4096维的,放到我们的程序里,跑得很慢,很慢.... 于是,一怒之下,就给他降维处理了,但是matlab 自带的什么pca( ), princomp( )函数, ...

PCA与LDA介绍

PCA(主成分分析) PCA是一种无监督降维方式,它将数据投影到一组互相正交的loading vectors(principal axes)之上,并保证投影后的点在新的坐标轴上的方差最大 记数据集\( ...

特征选取方法PCA与LDA

一.主成分分析(PCA)介绍 什么是主成分分析?   主成分分析是一种用于连续属性降维的方法,把多指标转化为少数几个综合指标. 它构造了原始属性的一个正交变换,将一组可能相关的变量转化为一组不相关的变 ...

线性判别分析(LDA), 主成分分析(PCA)及其推导【转】

前言: 如果学习分类算法,最好从线性的入手,线性分类器最简单的就是LDA,它可以看做是简化版的SVM,如果想理解SVM这种分类器,那理解LDA就是很有必要的了. 谈到LDA,就不得不谈谈PCA,PCA ...

随机推荐

React(JSX语法)-----JSX基本语法

JSX------HTML tags vs React Components: 1.To render a html tag,just use lower-case tag names in JSX; ...

文档批量格式化之word技能

一.在条目末尾添加# Ctrl + H 然后将 ^p替换为#^p 二.繁体字转换为简体字 在word 审阅-->简转繁(繁转简)都可以相互互转 三.将表格的变成字典或者规则的字符串格式 结合Ex ...

Scala class的构造方法与继承

有java背景的人,很清楚java是如何定义构造方法以及继承的.在scala里面,继承和java有些相似.但是构造方法的定义,就不大一样了,应该说是差别还是很大的.在java里面,定义构造方法,就是定 ...

工大助手--C#之DataGrid

工大助手 基本内容 工大助手(桌面版) 实现登陆.查成绩.计算加权平均分等功能 团队人员 13070002 张雨帆 13070003 张帆 13070004 崔巍 13070006 王奈 130700 ...

Creating a new Signiant Transfer Engine because the previous transfer had to be canceled.

From: http://stackoverflow.com/questions/10548196/application-loader-new-weird-warning-about-signian ...

MSSQL存储过程接收另一个存储过程返回列表

CREATE TABLE #tmp(m_Meter_ID varchar(20),low_Voltage int,num_Attack int,num_DER int,company_id int,a ...

windows程序设计(三)

MFC所有封装类一共200多个,但在MFC的内部技术不只是简单的封装 MFC的内部总共有六大关键技术,架构起了整个MFC的开发平台 一.MFC的六大关键技术包括: a).MFC程序的初始化过程 b). ...

Mybatis的mapper代理开发dao方法

看完了之前的mybatis原始的dao开发方法是不是觉得有点笨重,甚至说没有发挥mybatis 作为一个框架的优势.总结了一下,原始的dao方法有以下几点不足之处 dao接口实现方法中存在大量的模板方 ...

JsonCPP库使用

1.使用环境DevC++ a.建立C++工程,并添加.\JsonCPP\jsoncpp-master\jsoncpp-master\src\lib_json中源文件到工程中. b.添加头文件路径 2. ...

非阻塞connect:Web客户程序

一.web.h #include #include #include #include

lda 吗 样本中心化 需要_PCA和LDA相关推荐

  1. lda 吗 样本中心化 需要_PCA 与 LDA 分析

    PCA-主成分分析经常用于我们数据学习处理数据时对数据进行降维处理,因为我们的数据集中经常存在一些"无关紧要"的信息. 举一个简单的例子,如果你选择一个心仪的新车,你的选择可能会根 ...

  2. lda 吗 样本中心化 需要_机器学习 —— 基础整理(四):特征提取之线性方法——主成分分析PCA、独立成分分析ICA、线性判别分析LDA...

    本文简单整理了以下内容: (一)维数灾难 (二)特征提取--线性方法 1. 主成分分析PCA 2. 独立成分分析ICA 3. 线性判别分析LDA (一)维数灾难(Curse of dimensiona ...

  3. 【机器学习】【线性代数】均值,无偏估计,总体/样本方差,样本标准差,矩阵中心化/标准化、协方差,正/不/负相关等,协方差矩阵

    本篇是概念讲解,协方差以及协方差矩阵的Python实现代码详见:[机器学习][线性代数]协方差+协方差矩阵的多种求解方法的Python实现(公式法 + 样本集中心化方法 + np.cov()法等) 0 ...

  4. 机器学习:样本去中心化目的

    作者:Spark 链接:https://www.zhihu.com/question/37069477/answer/132387124 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商 ...

  5. 用区块链改变人工智能:去中心化带来数据新范式

    近年,从围棋到人类水平的语音识别,人工智能(AI)研究者终于在他们几十年一直努力探索的领域取得了突破.取得突破进展的关键一点是研究者们可以收集巨量的数据并「学习」这些数据,从而将错误率降低到可接受范围 ...

  6. 数据的中心化和标准化

    简介: 意义:数据中心化和标准化在回归分析中是取消由于量纲不同.自身变异或者数值相差较大所引起的误差. 原理:数据标准化:是指数值减去均值,再除以标准差: 数据中心化:是指变量减去它的均值. 目的:通 ...

  7. 基于区块链的去中心化抗量子密钥管理系统

    摘要: 区块链技术在2008年被提出被称为比特币(我觉得应该是翻译为比特币应用了区块链技术),区块链技术是一种分布式的数据库.公钥基础设施PKI(Public Key Infrastructure)系 ...

  8. 标准化、归一化、中心化

    标准化.归一化.中心化 数据分析及挖掘中常提到的几个概念(数据的 标准化.归一化.中心化),虽然经常在用,但可能还是有一些比较生僻的知识容易搞混淆,所以在十月国庆大家都出门上高速堵车的时候抽了点时间对 ...

  9. 几种数据预处理方法汇总(标准/中心化、归一化、正则化)+Python代码

    1. 数据的标准化(规范化/归一化) 数据标准化是将样本的属性缩放到某个指定的范围. 数据标准化的原因: 某些算法要求样本具有零均值和单位方差: 需要消除样本不同属性具有不同量级时的影响:①数量级的差 ...

最新文章

  1. CentOS下Redis的安装
  2. python快速入门课堂笔记_Python 快速入门笔记(10):文件及目录操作
  3. java 反射 私有成员_Java对类私有变量的暴力反射技术讲解
  4. Tomcat监控xml ,当修改xml后,不用重启tomcat
  5. 登录验证应该是进行在客户端还是服务器端_网站登录认证方式
  6. 计算机词汇查询,计算机辅助英语词汇查询系统的设计.doc
  7. Xshell远程管理Linux
  8. resultMap标签与resultType的异同
  9. java垃圾收集器、Serial收集器、ParNew收集器、Parallel Scavenge收集器、Serial Old 收集器、CMS收集器、G1收集器、如何查看GC日志
  10. LoRa无线网络技术概述
  11. PSF 点扩展函数 (from WikiPedia)
  12. vs2010 中文版发布及下载地址
  13. 在上海乐字节学习CRM项目管理
  14. 201771010112罗松《面向对象程序设计(java)》第十八周学习总结
  15. 2019 FeatherNets: Convolutional Neural Networks as Light as Feather for Face Anti-spoofing
  16. C++11 学习笔记(持续更新)
  17. IDEA2020安装教程
  18. Wire Load Model (线负载模型)
  19. Python ImportError: cannot import name XXX from XXX 问题的一个起因和解决方案
  20. MongoDB文档翻译-聚集-对邮编数据集进行聚集

热门文章

  1. 原生js判断iPhoneX系列手机型号
  2. 模块RLM01 DCS冗余链路模块3BDZ000398R1
  3. c++/c 招聘JD
  4. 使用maven构建一个基于Java的spark应用程序用于统计唐诗三百首中各汉字出现的次数
  5. 美国无线通信共同美分TeLexFREE多帐号批量贴广告助手程序下载
  6. 使Outlook停止使用Internet Explorer的RSS源
  7. 计算机在矿山企业中的应用,计算机在矿山中的应用.doc
  8. 使用Visual Studio 2017 创建第一个Python web应用程序
  9. 加油站可燃气检测 无线可燃气检测 低功耗红外传感器 慧感
  10. Ant Design Vue 2.x+ 支持所有的现代浏览器。