机器学习面经 - SVD、PCA、LDA

简介

当涉及到降维和特征提取时,PCA、LDA和SVD是三种常用的线性代数和机器学习算法。它们在不同的应用场景下有着各自的优势和用途,也是面试中常问的一些基础知识。一句话总结:PCA是一种无监督降维算法,通过保留数据的主要信息来减少特征维度。LDA是一种有监督降维算法,着重于最大化类别之间的可分性。SVD是一种数学分解技术,常用于矩阵分解和数据压缩。
下面是一些常见的面试题归纳:

Q:请介绍一下PCA?

答:PCA也叫主成分分析法,PCA旨在找到数据中的主成分,并利用这些主成分表征原始数据,从而达到降维的目的。PCA的本质目标就是最大化投影的方差,也就是让数据在主轴上投影的方差最大。在将数据中心化以后,我们可以找到一条主轴,在这条主轴上数据分布得更为分散,这也意味着数据在这个方向上方差更大。在信号处理领域,我们认为信号具有较大方差,噪声具有较小方差,信号与噪声之比称为信噪比。信噪比越大意味着数据的质量越好,反之,信噪比越小意味着数据 的质量越差。由此我们不难引出PCA的目标,即最大化投影方差,也就是让数据在主轴上投影的方差最大。

Q:PCA的主要步骤是什么?

答:假设有m条n维的数据,(1)对样本数据进行中心化处理。将每一行零均值化,也就是减去这一行的均值。(2)求样本协方差矩阵。(3)对协方差矩阵进行特征值分解,将特征值从大到小排列。(4)取特征值前d大对应的特征向量ω1,ω2,…,ωd,通过以下映射将n维样本映射到d维,相当于降维。

Q:PCA的优缺点是什么?

答:优点:(1)仅仅是以方差衡量数据信息,不受数据意外的其他因素影响。(2)各个主成分之间正交,可消除原始数据成分间的相互影响因素。(3)计算的方式比较简单,主要是通过特征值分解。缺点:(1)主成分各个特征维度的含义具有一定的模糊性,不如原样本特征的解释性强。(2)方差小的非主成分也可能包含了对样本差异的重要信息,因此降维丢失后可能对后续数据产生影响。(3)PCA属于有损压缩。

Q:请推导一下PCA?

  1. 首先假设有样本 [x1, x2, x3, x4,…. xn];
  2. 求出样本的均值然后对样本中每一个元素进行中心化处理,将每一行零均值化,也就是减去这一行的均值;
  3. 求出样本的协方差矩阵;
  4. 构造拉格朗日函数,然后对该函数求偏导,令偏导为0,然后就可以得到对应的特征值和特征向量;
  5. 然后将所有特征值进行排序,然后选择前k个最大的特征对应的特征向量,就可以得到W;
  6. Y = WX^t;

Q:请推导一下SVD,SVD是如何做矩阵分解的?

答:SVD它的推导其实是从特征值分解而来的,因为我们知道特征值分解它要求矩阵是一个方阵,而SVD它的矩阵不是一个方阵,那怎么对它进行分解呢?做法就是将它转换成方阵的形式,然后利用特征值分解。SVD是将一个mxn的矩阵分解成mxm、mxn、nxn三个矩阵,矩阵分解是要将mxn的矩阵分解成mxk、kxn的形式,那么我们只需要从中间的奇异值矩阵中取出TopK个,然后分别乘到两边的矩阵中,相当于做了压缩。

Q:SVD和PCA的关系是怎么样的?

答:回答这个问题,我想先介绍一下PCA的流程;PCA的流程是:1、求数据的协方差矩阵XtX;2、将XtX做特征分解,得到k个Top大的值(在这里相当于做降维,如果降成2维,则k=2);3、用这k个特征值做特征进行PCA,XtX对应的是SVD中使用的右奇异矩阵,相当于只有SVD的一半。现在很多库,比如sklearn,底层调用PCA逻辑,其实就是用SVD实现的,PCA相当于对列进行压缩(相当于对特征进行压缩),SVD不仅可以对列进行压缩,也可以对行进行压缩。

Q:请介绍一下LDA以及LDA的一般步骤?

答:LDA是一种有监督学习的算法,和PCA一样,一般也用来对数据进行将维,在PCA中,算法没有考虑数据的标签(类别),只是把原数据映射到一些方差比较大的方向上而已。LDA首先是为了分类服务的,因此它会找到一个投影方向,使得投影后的样本尽可能的按照原来的原始类别分开,中心思想就是最大化类间距离和最小化类内距离。 LDA的步骤:假设有m条n维的数据:

  1. 计算类内的散度矩阵Sw;
  2. 计算类间的散度矩阵Sb;
  3. 计算矩阵Sw^-1 Sb;
  4. 计算矩阵Sw^-1;
    Sb最大的k个特征值和对应的k个特征向量,得到了投影矩阵W(ω1,ω2,…,ωk);
  5. 将样本集中的每一个样本特征Xi,转换成新的样本
    Zi = W^T Xi;
  6. 得到输出样本集 D = (Z1, Y1),(Z2, Y2),(Z3, Y3)……(Zm, Ym);

Q:LDA的优缺点?

答:优点:(1)在降维过程中可以使用类别的先验知识经验,而像PCA这样的无监督学习则无法使用类别先验知识。(2)LDA在样本分类信息依赖均值而不是方差的时候,比PCA之类的算法较优。

缺点:(1)LDA不适合对非高斯分布样本进行降维,PCA也有这个问题。(2)LDA降维最多降到类别数k-1的维数,如果我们降维的维度大于k-1,则不能使用LDA。当然目前有一些LDA的进化版算法可以绕过这个问题。(3)LDA在样本分类信息依赖方差而不是均值的时候,降维效果不好。(4) LDA可能过度拟合数据。

Q:PCA和LDA的区别?

相同点:(1)两者均可以对数据进行降维。(2)两者在降维时均使用了矩阵特征分解的思想。(3)两者都假设数据符合高斯分布。

不同点:(1)LDA是有监督的降维方法,而PCA是无监督的降维方法。(2)LDA降维最多降到类别数k-1的维数,而PCA没有这个限制。(3)LDA除了可以用于降维,还可以用于分类。(4)LDA选择分类性能最好的投影方向,而PCA选择样本点投影具有最大方差的方向

持续更新中

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

azierrrrrr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值