StatQuest生物统计学专题 - LDA
LDA的思想LDA的实际例子LDA与PCA的异同
LDA的思想
LDA(Linear Discriminant Analysis,线性判别分析)是一种经典的降维方法。
它是一种有监督的的考虑样本类别的降维方法。有监督的意思是LDA进行计算之前需要知道样本的分类结果,不同于PCA(主成分分析)的无监督,PCA不需要知道样本的类别,直接根据降维变量的数据趋势,计算出所有的主成分。
LDA的基本思想就是将数据降维投影,以最大化的区分样本类别。
举例来说,假设有2种类别的样本:小鼠肝脏和小鼠脾脏细胞的RNA-seq数据,为了简单起见,假设只有2个基因的RNA-seq数据,如下图所示,蓝色为肝脏细胞,红色为脾脏细胞。
LDA就是尽最大化的区分开两种生物样本:肝脏细胞和脾脏细胞。为了完成这项工作,它会将2维散点图投影到1维直线上,并获得最大的区分效果,如下图左LDA所示。
有监督在此处就代表,它会将数据点的分类情况(肝脏或脾脏细胞)纳入计算,获得最佳的分类效果,如上图左,尽可能的分开两个细胞群。而无监督则是完全不管数据的分类情况,如PCA就是直接根据数据趋势,先找到数据变异最大的方向(也就是PC1),再在垂直于PC1的方向上找变异最大的PC2,在这个过程中,PCA完全忽略数据的分类情况,只根据基因Read值来计算,如上图右。
LDA的降维最大可以到分类数-1
维,如本例就是2个分类-1=1维
。
PCA的降维数等于降维变量的数目(此处为基因,两个基因),由于PCA中往往只需要2-3个主成分就可以解释80%以上的数据变异,所以使用2维或3维表征数据也就是相当于降维到2维或3维。
LDA的实际例子
以一个生物例子为例,假定现在正在开发一项肿瘤药物,但是它对一些病人有特效,对另一些病人的疗效却很糟糕。那么如何确定此药的受众人群?也许可以考虑基因表达来区分有效与无效的病人。
2分类的情形
先看只有一个Gene的情况:
基因X低表达的人对此药物有较好的反应,基因X高表达的人对此药物无反应。但是基因X中度表达的人中并没有出现一个明确的cutoff值。
再增加一个Gene数据,如下图左,已经可以很好的区分两种病人。
增加Gene到3个时,如下图右,两种病人可以完全得到区分。
我们有理由相信随着纳入考虑的Gene数目越来越多,分类的效果会更好。但是这种分类过程在超过3维之后就已经无法通过图形展示了,也很难通过解析的方式来直接理解它,有没有一种方法可以通过降维而完好的呈现这种思想?
LDA就是一种最简单的表征上述思路的方法。
将2基因图中的数据点投影到图中所示的直线上,则可以最大化的区分两个分类。
LDA是如何完成这个过程的呢?
LDA会最大化两个分类的均值差,同时最小化两个分类的方差。也就是令(μ1-μ2)^2/(s1^2+s2^2) = d^2/(s1^2+s2^2)
最大。
令d^2
尽可能大,同时令s1^2+s2^2
尽可能小时很有意义的。比如以下情形:如果只考虑均值差的话,那么投影方向差不多是竖直的,稍微向左倾斜,结果就是无法很好区分;而如果同时考虑两个分类的方差的话,那么投影方向差不多是水平的,稍微向左倾斜,结果就是可以很好的区分两个分类。
三个基因的情形是类似的,LDA的降维轴数是分类数-1
,由于共两种分类(有效与无效),所以降维轴数为1,也就是说不管Gene数增加到多少,最后的降维轴均为1,均是投影到一条直线上,具体如下:
算法思想仍然是最大化两个分类之间的均值差方((μ1-μ2)^2 = d^2
),并最小化两个分类的方差之和(s1^2+s2^2
)。
3分类的情形
如果是三分类的情形,结果就会稍微复杂一下,因为此时降维轴数为2,如下图左,为一组三分类数据。
LDA的算法仍然是最大化距离,最小化方差。计算总体均值和各分类均值,三个分类的距离就是各个分类均值和总体均值的差方((μ1-μ)^2
,(μ2-μ)^2
,(μ3-μ)^2
),最后令距离最大,方差和最小。
最终结果如下图右,通过两个轴将数据进行分类。
由于初始是两个轴,最终降维结果也是两个轴,所以看起来并没有太大变化。
然而实际上一个RNA-seq数据会有成千上万的基因,将如此多的基因降维到只有2个轴,并尽可能的区分3个分类就很有意义了。
LDA与PCA的异同
都是根据重要性对降维轴进行排序
PCA按照对数据波动的解释程度从大到小排序,分别是PC1、PC2、PC3…等等,LDA同样也是这样,按照对分类的解释程度从大到小排列:LD1、LD2…等等;
降维轴的意义不同
LDA的降维轴LA1、LA2等代表的意义是最大化区分分类的方向,PCA的降维轴PC1、PC2等代表的意义是最大化解释降维变量自有的数据波动的降维变量的线性组合,同分类没有太大关系;
是否需要监督
LDA是一种有监督的降维方法,它需要提前知道数据的分类情况才能进行计算,PCA是无监督的降维方法,即便有分类数据,它也会忽略数据的分类情况,只根据降维变量的数据趋势进行降维运算;
降维轴数不同
LDA的降维轴数和分类数有关,分类数固定,LDA降维后的轴数也固定,其轴数是
分类-1
;PCA的降维是根据主成分来定的,理论上降维变量有多少个,就有多少个主成分(基因为降维变量,有1000个基因,就有1000个主成分),由于很多时候,只需要2-3个主成分就可以很好地解释原数据变异,所以就只使用2个或3个主成分来去表征原始数据,如此也就表现为降维的形式;实际意义
LDA由于是有监督的分类降维算法,因此一般可以较好的符合数据分类的需要,容易解释其实际意义。PCA不考虑真实分类,虽然PCA的结果(PCA图)往往也会分群,但是这个分群不一定和目前关注的分类情况重合。
专题以往文章
参考资料
StatQuest课程:https://statquest.org/video-index/
线性判别分析LDA原理总结:https://www.cnblogs.com/pinard/p/6244265.html
猜你喜欢
生信菜鸟团-专题学习目录(6)
生信菜鸟团-专题学习目录(7)
还有更多文章,请移步公众号阅读
▼ 如果你生信基本技能已经入门,需要提高自己,请关注下面的生信技能树,看我们是如何完善生信技能,成为一个生信全栈工程师。
▼ 如果你是初学者,请关注下面的生信菜鸟团,了解生信基础名词,概念,扎实的打好基础,争取早日入门。