降维算法2_LDA

作者: 我还是霸霸 | 来源:发表于2020-10-30 11:46 被阅读0次

LDA(线性判别分析)基本原理

LDA思想

LDA是监督学习的降维、分类技术,可以用一句话概括思想:投影后类内方差最小,类间方差最大。

如下图所示,给定数据样例集,设法将样例投影到直线上,使得同类样例投影点尽可能近、异类样例的投影点尽可能远离:

图 1. LDA 二维示意图

下图的两种投影方式,那一种满足我们的标准?

图 2. 两种不同的投影方式  

右图,原因是投影后,蓝色和红色数据各自较为集中,且类别之间的距离明显。(左图在边界处数据混杂

LDA如何用来分类?

在对新的样本进行分类时,将其投影到同样的投影线上,再根据投影点的位置来确定样本的类别。

LDA原理及流程

对于具体数据的实例

目标:求解投影向量\mathbf{w}​ ,二维情况下​\mathbf{w}=\begin{pmatrix}w_{11}\\w_{12}\end{pmatrix}\mathbf{X}=\begin{pmatrix}x_{11}&x_{21}&...&x_{m1}\\x_{12}&x_{22}&...&x_{m2}\end{pmatrix}

X​,shape:(2,m)表示样本矩阵,即2个维度,m个样本。每一列表示一个样本,每一行表示该样本在这一维度上的取值。例如:\mathbf{x}​中的第一列表示第一个样本在第一个维度上的取值​,在第二个维度上的取值为​,以此类推。

对第​个样本\mathbf{x}​:​\mathbf{x}=\begin{pmatrix}x_{i1}\\x_{i2} \end{pmatrix}

图中的y可计算,对于样本在投影向量上的投影结果的值为:y=\mathbf{w}^T\mathbf{x}=|\mathbf{w}|*|\mathbf{x}|*cos(\theta)=|\mathbf{x}|*cos(\theta)​,​\mathbf{w}可以理解为这条过原点直线的单位方向向量,​\theta\mathbf{w、x}的夹角。

给定两个类别:

X1 : shape:(m,2)一般将样本按行排列,每列表示维度,可以理解为\mathbf{x}​的转置,表示m个样本,2两个维度,图中每个点表示

X2 :    描述同X1

均值向量\mu_i​: shape:(2,1) 将m个样本取每个维度的均值,按列排列,得到均值均值向量​ \mu_i

协方差矩阵\sum_i​: \frac{1}{m-1}X_i^TX_i​ shape:(2,2) (维度x维度)

样本中心在直线上的投影\mathbf{w}^T\mu_i​ :shape:(1,2)x(2,1)= (1,1)常量

同类样本投影点的协方差:\mathbf{w}^T\sum_i\mathbf{w}​:shape:(1,2)x(2,2)x(2,1) = (1,1)常量 ,表示将同类样本投影后,两个维度的协方差。

对于n维情况,由于我们是多维向低维投影,则此时投影到的低维空间就不是一条直线,而是一个超平面了。假设我们投影到的低维空间的维度为d,对应的基向量为(w_1,w_2,...,w_d)​,基向量组成的矩阵为​\mathbf{w}_{(n,d)}

此时同类样本投影点的协方差\mathbf{w}^T\sum_i\mathbf{w} ​  shape: (d,n)x(n,n)x(n,d)=(d,d) ,表示投影后dxd的协方差矩阵。

程序

算法流程总结

输入:数据集D={\{(x_1,y_1),(x_2,y_2),...,(x_m,y_m)\}},​,其中任意样本​x_i为n维向量,​y_i\in{\{C_1,C_2,...,C_k\}}为样本对应的标签,降维到的维度d。

输出:降维后的样本集​D^`

1) 计算类内散度矩阵​S_w

2) 计算类间散度矩阵​S_b

3) 计算矩阵​S_w^-S_b

4) 计算​的S_w^-S_b最大的​d个特征值对应的​个特征向量(w_1,w_2,...,w_d)​,得到投影矩阵​W

5) 对样本集中的每一个样本特征x_i​,转换为新的样本​z_i=W^Tx_i

6) 得到输出样本集​D^`={\{(z_1,y_1),(z_2,y_2),...,(z_m,y_m)\}}

实际上LDA除了可以用于降维以外,还可以用于分类。一个常见的LDA分类基本思想是假设各个类别的样本数据符合高斯分布,这样利用LDA进行投影后,可以利用极大似然估计计算各个类别投影数据的均值和方差,进而得到该类别高斯分布的概率密度函数。当一个新的样本到来后,我们可以将它投影,然后将投影后的样本特征分别带入各个类别的高斯分布概率密度函数,计算它属于这个类别的概率,最大的概率对应的类别即为预测类别

PCA、LDA区别

相同点:

1)两者均可以对数据进行降维。

2)两者在降维时均使用了矩阵特征分解的思想。

3)两者都假设数据符合高斯分布

不同点

1.LDA是有监督的降维方法,而PCA是无监督的降维方法n

2.LDA降维最多降到类别数k-1的维数,而PCA没有这个限制。

3.LDA除了可以用于降维,还可以用于分类。

4.LDA选择分类性能最好的投影方向,而PCA选择样本点投影具有最大方差的方向。这点可以从下图形象的看出,在某些数据分布下LDA比PCA降维较优。

当然,某些某些数据分布下PCA比LDA降维较优,如下图所示:

相关文章

  • 降维算法2_LDA

    LDA(线性判别分析)基本原理 LDA思想 LDA是监督学习的降维、分类技术,可以用一句话概括思想:投影后类内方差...

  • PCA

    PCA降维 一、算法原理 降维算法 还原算法 二、算法实现 三、scikit-learn PCA 四、PCA降噪 ...

  • 降维算法之PCA

    机器学习降维算法

  • Sklearn中的降维究竟是如何实现的

    sklearn中的降维算法 1. PCA与SVD sklearn中降维算法都被包括在模块decomposition...

  • 吴恩达机器学习-Chapter 15 降维

    目的:降维的应用、概念、及算法。降维的3个目的:数据压缩、加速算法(缩小特征变量)、数据可视化。降维本身也是一种无...

  • 基于Spark的机器学习实践 (十) - 降维

    通过讲解PCA算法的原理,使大家明白降维算法的大致原理,以及能够实现怎么样的功能。结合应用降维算法在分类算法使用之...

  • PCA算法实现

    前言 PCA算法是数据降维中最常用的算法之一,利用PCA算法实现的数据降维能够有效减少算法运行时间和算法对硬件的消...

  • 降维算法应用——PCA算法

    之前总结了聚类算法,然后我们这一课来简单学习一下降维算法,常用的降维算法有PCA算法。 主成分分析 Princip...

  • ML-主成分分析PCA与梯度上升法

    算法特点非监督机器学习算法,主要用于数据降维;降维可以提高算法效率,同时帮助可视化,以便于人类理解更好的理解数据;...

  • 降维算法

    维度的理解 对于数组和series来说,shape返回的数字的而个数就是维度。比如:有行列之分的叫做二维,也称作一...

网友评论

    本文标题:降维算法2_LDA

    本文链接:https://www.haomeiwen.com/subject/csorvktx.html