LDA线性判别分析

欢迎关注”生信修炼手册”!

线性判别分析,全称是Linear Discriminant Analysis, 简称LDA, 是一种属于监督学习的降维算法。与PCA这种无监督的降维算法不同,LDA要求输入数据有对应的标签。

LDA降维的基本思想是映射到低维之后,最大化类间均值,最小化类内方差,如下图所示

所以在衡量降维效果的好坏时,需要同时考虑以上两个因素。为了定量描述类间均值和类内方差的大小,引入了以下基本概念

1. within-class sctter matrix

称之为类内散度矩阵,用于衡量类内方差,以二分类数据为例,公式如下

0和1分别表示两个类别数据的协方差,进一步展开,可得如下结果

推广到K类数据,公式如下

2. between-class scatter matrix

称之为类间散度矩阵,用于衡量类间距离,以二分类数据为例,公式如下

μ表示每类数据的均值向量,推广到K类数据,公式如下

基于以上两个矩阵,提出了LDA算法的目标函数,称之为广义瑞利商。要理解广义瑞丽商,先来看下瑞丽商的定义,公式如下

x是非零向量,A为厄米特矩阵,即共轭对称的方阵,A的共轭转置矩阵等于它本身。这样的函数有一个性质,最大值等于矩阵A的最大特征值,最小值等于矩阵A的最小特征值

广义瑞丽商公式如下

其中x为非零向量,A和B都为厄米特矩阵,将上述函数转化为标准的瑞丽商函数,可以得到如下结果

根据瑞丽商函数的性质,我们只需要求以下矩阵的特征值就可以得到函数的最大值和最小值了

而该矩阵与以下矩阵等价

LDA算法也是通过类间散度矩阵和类内散度矩阵这两个矩阵来构建广义瑞丽商形式的优化函数,目标函数如下

要最大化类间距离,最小化类内方差,就是要求该优化函数的最大值,根据广义瑞丽商的性质,要求该函数的最大值,只需要求以下矩阵的最大特征值即可

在将数据投影到低纬度k时,只需要提取上述矩阵的前k个特征值对应的特征向量,构成投影矩阵w, 然后将原始的样本点通过该投影矩阵进行投影即可,公式如下

从上述推导可以看出,LDA降维的过程就是先计算类间和类内两个散度矩阵,然后计算特征值和特征向量,构建投影矩阵,最后投影即可。

在scikit-learn中,使用LDA降维的代码如下

>>> from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
>>> from sklearn import datasets
>>> iris = datasets.load_iris()
>>> X = iris.data
>>> y = iris.target
>>> lda = LinearDiscriminantAnalysis(n_components=2)
>>> X_r = lda.fit(X, y).transform(X)

和PCA降维相比,LDA降维是有限制的,最多降低到K-1的维度,K为样本的类别数。

·end·

—如果喜欢,快分享给你的朋友们吧—

原创不易,欢迎收藏,点赞,转发!生信知识浩瀚如海,在生信学习的道路上,让我们一起并肩作战!

本公众号深耕耘生信领域多年,具有丰富的数据分析经验,致力于提供真正有价值的数据分析服务,擅长个性化分析,欢迎有需要的老师和同学前来咨询。

  更多精彩

  写在最后

转发本文至朋友圈,后台私信截图即可加入生信交流群,和小伙伴一起学习交流。

扫描下方二维码,关注我们,解锁更多精彩内容!

一个只分享干货的

生信公众号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然,我可以为您提供一个LDA线性判别分析)的例题。假设我们有一组二维数据,其中包含两个类别。我们的目标是通过LDA找到一个投影方向,将数据映射到一维空间上,使得不同类别之间的距离最大化,同一类别内部的样本距离最小化。 假设我们有以下两个类别的样本数据: 类别1:(1, 2), (2, 3), (3, 3) 类别2:(2, 1), (3, 2), (4, 1) 首先,我们需要计算每个类别的均值向量。对于类别1,均值向量为: μ1 = ( (1+2+3)/3, (2+3+3)/3 ) = (2, 2.67) 对于类别2,均值向量为: μ2 = ( (2+3+4)/3, (1+2+1)/3 ) = (3, 1.33) 然后,我们计算类内散度矩阵Sw。类内散度矩阵的计算方式是每个类别内部样本与其均值向量之间的差异的协方差矩阵的和。 对于类别1,计算协方差矩阵为: S1 = ((1-2)^2 + (2-2.67)^2 + (3-2.67)^2)/3 = 0.89 对于类别2,计算协方差矩阵为: S2 = ((2-3)^2 + (3-1.***均值向量之间差异的协方差矩阵。 Sb = ((2-3)^2 + (2.67-1.33)^2)/2 = 1.56 接下来,我们需要计算投影方向的向量w。我们需要最大化类间散度矩阵Sb,并最小化类内散度矩阵Sw。 通过计算特征值和特征向量,我们可以得到投影方向的向量w。在这个例子中,由于是二维数据,投影方向是一维的。 假设w = (w1, w2)是投影方向的向量,其中w1是x轴方向的分量,w2是y轴方向的分量。 由于投影方向是一维的,所以我们可以假设w2 = 0,那么我们只需要找到w1即可。 通过计算Sw^-1 * Sb的特征值和特征向量,我们可以得到w1。 最后,我们可以将数据样本在投影方向上进行投影,并根据投影的结果来进行分类。 这就是一个简单的LDA线性判别分析的例题。希望可以帮助到您!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值