Linear discriminant analysis (LDA) 线性判别分析也是机器学习中常用的一种降维算法,与 PCA 相比,

LDA 是属于supervised 的一种降维算法。PCA考虑的是整个数据集在高维空间的分散性,PCA降维之后依然要让数据在低维空间尽可能地分散。而LDA考虑的是类与类之间的差别(用距离来衡量)。

我们考虑两类情况下的LDA,

给定一个训练集 D={xi∈Rd},i=1,2,...N, 假设其中有 n1 个属于第一类 c1,n2 个属于第二类c2,N=n1+n2, LDA 希望可以找到一个投影关系,使得原来的特征向量 xi 投影到低维空间之后,类间的距离尽可能地大,而类内距离尽可能地小。

我们可以计算每一类的均值向量:

u1=1n1∑x∈c1xu2=1n2∑x∈c2x

假设投影为 w,投影后为 y, 那么 y=wTx, 我们也可以求出投影后的均值:

v1=1n1∑y∈c1y=1n1∑x∈c1wTx=wTu1
v2=1n2∑y∈c2y=1n2∑x∈c2wTx=wTu2

那么,我们可以设立如下的目标函数:

J=|v1−v2|=|wTu1−wTu2|

上面的目标函数,保证了映射之后类间距离尽可能大,但是无法保证类内距离尽可能小,为了让类内距离尽可能小,我们可以进一步定义:

s21=∑y∈c1(y−v1)2

s22=∑y∈c2(y−v2)2

s21,s22 可以用来度量映射后每一类与类中心的分散程度。所以,最终的目标函数是:

J=|v1−v2|2s21+s22

我们可以定义投影前的向量 x 与类中心的分散程度:

Si=∑x∈ci(x−ui)(x−ui)T

SW=S1+S2

我们可以看到:

s2i=∑y∈ci(y−vi)2=∑x∈ci(wTx−wTui)2=wTSiw
s21+s22=wTSWw

同样的,我们有:

(v1−v2)2=(wTu1−wTu2)2=wT(u1−u2)(u1−u2)Tw=wTSBw
SB=(u1−u2)(u1−u2)T

所以最终的目标函数是:

J(w)=wTSBwwTSWw

最终得到的投影w⋆:

w⋆=argmax[wTSBwwTSWw]=S−1W(u1−u2)

对于多类的LDA, 我们不能简单地将原来的向量 x 投影到一个标量y,我们需要投影到一个低维的向量 y 上。一个有C类的训练集 D={x∈Rd} 含有N 个样本, N=∑ni. 我们需要找到一个投影矩阵W, 使得 y=WTx。

我们可以先定义

Sw=∑i=1cSiSi=∑x∈ci(x−ui)(x−ui)T
SB=∑i=1cNi(ui−u)(ui−u)Tu=1N∑x

那么目标函数可以写成:

J(W)=|WTSBW||WTSWW|

最后的投影矩阵可以表示为: W=[w1,w2,...wk], 其中 wi 满足如下关系:

SBwi=λiSWwi→S−1WSBwi=λiwi

wi 是矩阵 S−1WSB 的特征向量, 所以简单来说,可以先对矩阵 S−1WSB 做特征值分解,然后取前 k 个大的特征值所对应的特征向量,组成投影矩阵。但是由于 S_{B} 的秩不会超过 c−1,所以 k 最大也就是 c−1,取前面k 个特征向量组成投影矩阵。对于两类的情况, c=2, k=1, 所以两类的情况下,LDA投影得到的是一个标量。

机器学习: Linear Discriminant Analysis 线性判别分析的更多相关文章

  1. LDA(Linear discriminate analysis)线性判别分析

    LDA 线性判别分析与Fisher算法完全不同 LDA是基于最小错误贝叶斯决策规则的. 在EMG肌电信号分析中,... 未完待续:.....

  2. 线性判别分析(Linear Discriminant Analysis, LDA)算法分析

    原文来自:http://blog.csdn.net/xiazhaoqiang/article/details/6585537 LDA算法入门 一. LDA算法概述:       线性判别式分析(Lin ...

  3. 线性判别分析(Linear Discriminant Analysis,LDA)

    一.LDA的基本思想 线性判别式分析(Linear Discriminant Analysis, LDA),也叫做Fisher线性判别(Fisher Linear Discriminant ,FLD) ...

  4. 线性判别分析(Linear Discriminant Analysis, LDA)算法初识

    LDA算法入门 一. LDA算法概述: 线性判别式分析(Linear Discriminant Analysis, LDA),也叫做Fisher线性判别(Fisher Linear Discrimin ...

  5. 机器学习中的数学-线性判别分析(LDA), 主成分分析(PCA)

    转:http://www.cnblogs.com/LeftNotEasy/archive/2011/01/08/lda-and-pca-machine-learning.html 版权声明: 本文由L ...

  6. Linear Discriminant Analysis Algorithm

    线性判别分析算法. 逻辑回归是一种分类算法,传统上仅限于两类分类问题. 如果有两个以上的类,那么线性判别分析算法是首选的线性分类技术.LDA的表示非常直接.它包括数据的统计属性,为每个类计算.对于单个 ...

  7. Max-Mahalanobis Linear Discriminant Analysis Networks

    目录 概 主要内容 Pang T, Du C, Zhu J, et al. Max-Mahalanobis Linear Discriminant Analysis Networks[C]. inte ...

  8. 线性判别分析(Linear Discriminant Analysis)转载

    1. 问题 之前我们讨论的PCA.ICA也好,对样本数据来言,可以是没有类别标签y的.回想我们做回归时,如果特征太多,那么会产生不相关特征引入.过度拟合等问题.我们可以使用PCA来降维,但PCA没有将 ...

  9. 线性判别分析(Linear Discriminant Analysis)

    1. 问题 之前我们讨论的PCA.ICA也好,对样本数据来言,可以是没有类别标签y的.回想我们做回归时,如果特征太多,那么会产生不相关特征引入.过度拟合等问题.我们可以使用PCA来降维,但PCA没有将 ...

随机推荐

  1. 【bootstrap】Bootstrap Notify的使用步骤

    Bootstrap Notify说明文档:http://bootstrap-notify.remabledesigns.com/ Bootstrap Notify的GitHub地址:https://g ...

  2. SilverLight:基础控件使用(4)-日期显示和选择类控件

    ylbtech-SilverLight-Basic-Control:基础控件使用(4)-日期显示和选择类控件 Calendar,DatePicker 1.A,返回顶部 Calendar控件(日期控件) ...

  3. 5.4 heapq--堆队列算法

    本模块实现了堆队列算法,也叫作优先级队列算法.堆队列是一棵二叉树.而且拥有这样特点,它的父节点的值小于等于不论什么它的子节点的值,假设採用数组array实现,能够把它们的关系表示为:heap[k] & ...

  4. 通过jstl判断是否给value 赋值

    <input type="text" name="saler.password" id="password"  value=" ...

  5. ionic 修改应用名称 、启动页出现黑白屏 及 修改百度离线地图 点聚合 图标

    1.ionic 修改应用名称 2.启动页打开后会在图片消失会出现一小段黑屏的时间 解决方法: 首先,启动页的图片消失时间默认是在config.xml配置的 <preference name=&q ...

  6. PHP 实现Word,excel等转换pdf

    近期做一个项目,须要将用户上传的word,excel文档转成PDF文档保存并打印.在网上找了非常多资料.并不全面,所以自己写了一份比較全面的教程来分享. 以下是操作步骤: 1.        安装免费 ...

  7. 微型企业如何使用odoo

    作者 jeffery Q913547235 保留所有权利     Odoo可以帮助微型企业提升运营效率,做到电子化,信息化. 管理仓库进销存,建立收货单.交货单,并基于收货.交货情况确认应收款和应付款 ...

  8. Solaris之单用户模式

    1.TERM 表示终端 vt100 是简单的终端模式 export TERM=vt100 在此模式下,方向键无效,用字母键 有很多环境变量,PATH .PS1 .TERM 一般在屏幕上写的都是暂时的, ...

  9. freescale-sdk linux移植一搭建编译环境脚本host-prepare.sh分析

    接下来使用自己的课外歇息时间,对基于PowerPC架构freescale-sdk,进行linux移植和分析.主要參考官方文档freescale linux sdk START_HERE.html,首先 ...

  10. vue directive demo

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...