【降维方法】- 线性判别分析(LDA)

参考:refenrence

简介

线性判别分析(Linear Discriminant Analysis)作为一种监督式的降维方法,同时也用作分类器,它主要思想是:使得对原空间进行投影运算后,类间的样本点数据分布间隔大,而类内样本点数据分布方差小。

原理

有了上述思想后,我们尝试着自己一步步把这个思想具体化。最近在看《数学之旅》,王教授提到学习数学需要重要培养的一个能力:抽象能力。

数学就是现实世界的高度抽象,它容易抓住问题本质,比如图论中点和边的概念,这个概念注重抓住不同物体之间的拓扑关系,而非具体研究这个点是什么有多大,边是什么材质等等。所以,使用数学这个工具,可以方便地直接研究与解决问题,因为其强大的抽象能力。

下面看看我们如何把 【使得对原空间进行投影运算后,类间的样本点数据分布间隔大,而类内样本点数据分布方差小】这个思想进行抽象。

我们的研究对象是:数据集 D={(x1,y1),(x2,y2),...,(xm,ym)} D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } , 其中 xiRn x i ∈ R n yi{0,1} y i ∈ { 0 , 1 } 。定义 Nj(j=0,1) N j ( j = 0 , 1 ) 为第 j j 类样本的个数,Xj(j=0,1)为第 j j 类样本的集合,而μj(j=0,1)为第 j j 类样本的均值向量,定义j(j=0,1)为第 j j 类样本的协方差矩阵(严格说是缺少分母部分的协方差矩阵)。

其中,j 表示如下:

Σj=xXj(xμj)(xμj)T(j=0,1) Σ j = ∑ x ∈ X j ( x − μ j ) ( x − μ j ) T ( j = 0 , 1 )

首先,我们想让样本点投影后( xi=wxTi x i = w ⋅ x i T )两个类之间的间隔大,一种可行的抽象方式,或者说数学表达方式是:最大化 ||wTμ0wTμ1||22 | | w T μ 0 − w T μ 1 | | 2 2 。同时,同类样本点方差尽可能小,即最小化 wTΣ0w+wTΣ1w w T Σ 0 w + w T Σ 1 w ,最后结合两者就得到了需要优化的目标式:

argmaxwJ(w)=||wTμ0wTμ1||22wTΣ0w+wTΣ1w=wT(μ0μ1)(μ0μ1)TwwT(Σ0+Σ1)w a r g m a x ⏟ w J ( w ) = | | w T μ 0 − w T μ 1 | | 2 2 w T Σ 0 w + w T Σ 1 w = w T ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T w w T ( Σ 0 + Σ 1 ) w

上面的优化问题的求解,可以借助矩阵理论求出,这里直接给出结论:

w=S1w(μ0μ1) w = S w − 1 ( μ 0 − μ 1 )

其中
Sw=Σ0+Σ1=xX0(xμ0)(xμ0)T+xX1(xμ1)(xμ1)T S w = Σ 0 + Σ 1 = ∑ x ∈ X 0 ( x − μ 0 ) ( x − μ 0 ) T + ∑ x ∈ X 1 ( x − μ 1 ) ( x − μ 1 ) T

从上述一步步推导可以看出,最重要的还是使用数学工具对目标问题的抽象,我们需要学习多种常见的抽象方式,然后在实际问题中使用这些思想去解决新的问题。

算法流程(二分类问题)

输入:数据集 D={(x1,y1),(x2,y2),...,(xm,ym)} D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } ,其中任意样本 xi x i n n 维向量,yi{C0,C1},降维到的维度 d d

输出:降维后的样本集D

  • 计算类内散度矩阵 Sw S w
  • 计算类间散度矩阵 Sb=(μ0μ1)(μ0μ1)T S b = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T
  • 计算矩阵 S1wSb S w − 1 ⋅ S b
  • 计算 S1wSb S w − 1 ⋅ S b 的最大的 d d 个特征值和对应的d个特征向量 (w1,w2,...wd) ( w 1 , w 2 , . . . w d ) ,得到投影矩阵 W W
  • 得到输出样本集D={(z1,y1),(z2,y2),...,(zm,ym)}

代码:

Github

讨论

各降维方法的讨论:here

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值