LDA(线性判别分类器)学习笔记
Linear Discriminant Analysis(线性判别分类器)是对费舍尔的线性鉴别方法(FLD)的归纳,属于监督学习的方法。
LDA的基本思想是将高维的模式样本投影到最佳鉴别矢量空间,以达到抽取分类信息和压缩特征空间维数的效果,投影后保证模式样本在新的子空间有最大的类间距离和最小的类内距离,即模式在该空间中有最佳的可分离性。因此,它是一种有效的特征抽取方法。使用这种方法能够使投影后模式样本的类间散布矩阵最大,并且同时类内散布矩阵最小。就是说,它能够保证投影后模式样本在新的空间中有最小的类内距离和最大的类间距离,即模式在该空间中有最佳的可分离性。
预备知识
协方差与协方差矩阵
协方差
协方差分为随机变量的协方差和样本的协方差。
随机变量的协方差
跟数学期望、方差一样,是分布的一个总体参数。协方差是对两个随机变量联合分布线性相关程度的一种度量。两个随机变量越线性相关,协方差越大,完全线性无关,协方差为零。定义如下。
$$cov\left(X,Y\right)=E\left[\left(X-E\left[X\right])(Y-E\left[Y\right]\right)\right]$$
因为变量尺度不同,所以不能用若干协方差的大小作为相关性强弱的比较。因此引入相关系数,本质上是对协方差进行归一化。
$$\eta=\frac{cov\left(X,Y \right )}{\sqrt{var\left(X \right )\cdot var\left(Y \right )}}$$
取值范围[-1,1]。
样本的协方差
对于现有的m个样本,每个样本均具有n维属性,每一维属性我们都可以将其看作是一个随机变量。每一个样本$x_j =\left[x_{1j} ,...,x_{nj} \right ]$。那么我们就可以考察样本集中,两个随机变量(两属性)间的线性关系。计算和随机变量的协方差一致。
$$q_{ab}=\frac{\sum_{j=1}^{m}\left(x_{aj}-\bar{x}_a \right )\left(x_{bj}-\bar{x}_b \right )}{m-1}$$
因为在这里我们只有样本,随机变量的数学期望未知,用样本均值代替,所以自由度减一得到m-1。
协方差矩阵
多维随机变量的协方差矩阵
考虑多维随机变量,那么原先的两变量之间的协方差就可以扩展为多维随机变量中任意两变量之间的协方差,并进一步构造成协方差矩阵。
$$\Sigma_{i,j}=cov\left(X_i,X_j \right )\\ \Sigma=E\left[\left(X-E\left[X \right ] \right )\left(X-E\left[Y \right ] \right )^T \right ]$$
此时对角线上是各维度的方差,其余均为两维度之间的协方差。
一般来说,我们希望各维度之间可以相互比较,换言之需要对样本进行归一化。
那么定义
$$z_{j\cdot}=\frac{x_{i\cdot}-\bar{x}_i}{\sigma_i}$$
$\bar{x}_i$表示样本整体在维度i的均值,$\sigma_i$表示维度i上的方差。
$$\hat{\Sigma}=\frac{1}{m-1}\sum_{j=1}^m{z_{\cdot j}{z_{\cdot j}}^T}$$
这样矩阵内的元素就具有可比性!
散度矩阵
散度矩阵表示为
$$S_i=\sum_{j=1}^m{z_{\cdot j}{z_{\cdot j}}^T}$$
也就是不除以自由度的协方差矩阵。
类内散度矩阵$S_W=S_i+S_j$
类间散度矩阵$S_B=\left(\vec{\mu_i}-\vec{\mu_j} \right )\left(\vec{\mu_i}-\vec{\mu_j} \right )^T$
算法解释
LDA本质上是要$\max\limits_w {\frac{w^TS_Bw}{w^TS_Ww}}$,将类内散度矩阵和类间散度投影到直线上,并得出到原点的距离。选择合适的向量使得比值最大。
求解
设
$$J\left(w \right )=\frac{w^TS_Bw}{w^TS_Ww}$$
因为分子分母都为w的二次项,那么与的w模长无关。
不妨设
$$w^TS_Ww$$
可以得出
$$\min \limits_{w}{-w^TS_Bw}\\s.t.\quad w^TS_Ww=1$$
可以运用拉格朗日乘子法
$$l\left(w,\lambda \right )=-w^TS_Bw+\lambda\left(w^TS_Ww-1 \right )\\\frac{\partial l\left(w,\lambda \right )}{\partial w}=-\left(S_B+{S_B}^T\right)w+\lambda\left(S_W+{S_W}^T \right )w=0\\S_Bw=\lambda S_Ww$$
注意到$S_B=\left(\vec{\mu_i}-\vec{\mu_j}\right)\left(\vec{\mu_i}-\vec{\mu_j}\right)^T$
$$\left(\vec{\mu_i}-\vec{\mu_j}\right)\left(\vec{\mu_i}-\vec{\mu_j}\right)^Tw=\lambda S_Ww$$
$\left(\vec{\mu_i}-\vec{\mu_j}\right)^Tw$得到的是一个标量,$\lambda$也是标量,所以
$$w\propto {S_W}^{-1}\left(\vec{\mu_i}-\vec{\mu_j} \right )$$
因为我们只需要知道w的方向,所以具有原始样本的均值和方差就可以得到答案。
LDA(线性判别分类器)学习笔记的更多相关文章
- LDA-作为线性判别 分类器 推导
LDA, 即 Linear Discriminant Analysis, 中文翻译为, 线性判别分析. 比较有趣的一点是:LDA 既可以直接用作分类算法, 也可作为特征降维的方法. 给人感觉, 这是将 ...
- BZOJ 2818: Gcd [欧拉函数 质数 线性筛]【学习笔记】
2818: Gcd Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 4436 Solved: 1957[Submit][Status][Discuss ...
- 高斯消元 & 线性基【学习笔记】
高斯消元 & 线性基 本来说不写了,但还是写点吧 [update 2017-02-18]现在发现真的有好多需要思考的地方,网上很多代码感觉都是错误的,虽然题目通过了 [update 2017- ...
- 「线性基」学习笔记and乱口胡总结
还以为是什么非常高大上的东西花了1h不到就学好了 线性基 线性基可以在\(O(nlogx)\)的时间内计算出\(n\)个数的最大异或和(不需要相邻). 上述中\(x\)表示的最大的数. 如何实现 定义 ...
- 最长子序列(线性DP)学习笔记
子序列和子串不一样.子串要求必须连续,而子序列不需要连续. 比如说\(\{a_1,a_2\dots a_n\}\),他的子串就是\(\{a_i,a_{i+1},\dots, a_j|1\leq i\l ...
- UI设计学习笔记(7-12)
UI学习笔记(7)--扁平化图标 认识扁平化 Flat Design 抛弃传统的渐变.阴影.高光等拟真视觉效果,打造看上去更平的界面.(颜色.形状) 扁平化图标有什么优缺点 优点: 简约不简单.有新鲜 ...
- 机器学习降维方法概括, LASSO参数缩减、主成分分析PCA、小波分析、线性判别LDA、拉普拉斯映射、深度学习SparseAutoEncoder、矩阵奇异值分解SVD、LLE局部线性嵌入、Isomap等距映射
机器学习降维方法概括 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u014772862/article/details/52335970 最近 ...
- LDA主题模型学习笔记5:C源代码理解
1.说明 本文对LDA原始论文的作者所提供的C代码中LDA的主要逻辑部分做凝视,原代码可在这里下载到:https://github.com/Blei-Lab/lda-c 这份代码实现论文<Lat ...
- UFLDL深度学习笔记 (五)自编码线性解码器
UFLDL深度学习笔记 (五)自编码线性解码器 1. 基本问题 在第一篇 UFLDL深度学习笔记 (一)基本知识与稀疏自编码中讨论了激活函数为\(sigmoid\)函数的系数自编码网络,本文要讨论&q ...
随机推荐
- JS对象、构造器函数和原型对象之间的关系
一.基本概念 1.对象:属性和方法的集合,即变量和函数的封装.每个对象都有一个__proto__属性,指向这个对象的构造函数的原型对象. 2.构造器函数:用于创建对象的函数,通过new关键字生成对象. ...
- 【转】福利大放送--不止是Android,Github超高影响力开源大放送,学习开发必备教科书
[福利大放送]不止是Android,Github超高影响力开源大放送,学习开发必备教科书 目录 一.写在前面 1.free-programming-books 2.oh-my-zsh 3.awes ...
- ld命令
ld 用于把目标代码文件连接为可执行文件或者库文件 参数 -b: 指定目标代码输入文件的格式 -Bstatic: 只使用静态库 -Bdynamic: 只使用动态库 -Bsymbolic: 把引用捆绑到 ...
- A Boring Question (打表)
题意:由m个0到n组合的数的相邻两项的组合数的乘积. 思路:好好打表!!!找规律!!! #include<bits/stdc++.h> using namespace std; typed ...
- OSM自建服务
1. 安装PostgreSQL. 2. 安装PostGis(安装目录为PostgreSQL目录). 3. 安装osm2pgsql. osm2pgsql下载地址:http://customdebu ...
- Android界面跳转几种情况
Android界面简单跳转, Intent intent =new Intent(MainActivity.this,SecondActivity.class); startActivity(inte ...
- 翻译 | Placing Search in Context The Concept Revisited
翻译 | Placing Search in Context The Concept Revisited 原文 摘要 [1] Keyword-based search engines are in w ...
- CEF 支持的命令行参数
参考:https://peter.sh/experiments/chromium-command-line-switches/ List of Chromium Command Line Switch ...
- 关于Tomcat启动时,长时间停在Initializing Spring root webApplicationContext处的原因
1.大家肯定经常会遇到这样的问题,以前启动tomcat都不会出问题.现在一起动就会卡到Initializing Spring root webApplicationContext处,tomcat会报连 ...
- 复旦大学2017--2018学年第二学期高等代数II期末考试情况分析
一.期末考试成绩班级前十名 张菲诺(95).刘宇其(95).魏一鸣(93).郭宇城(92).程梓兼(91).葛珈玮(90).汪子怡(90).余张伟(90).张昰昊(89).朱柏青(89) 二.总成绩计 ...